课时11:综合实战:简单Java类
摘要:本次分享的主题是综合实战:简单 Java 类。主要分为两个部分:
1.简单 Java 类的含义
2.简单 Java 类的开发
接下来看一个综合性的例子,称之为“简单 Java 类”。实际上简单 Java 类的概念是非常重要的。在大家今后进行项目开发与设计的过程中,简单 Java 类将作为一个不可或缺的组成部分存在。
当逐渐接触到正规的项目设计时,会发现简单 Java 类无处不在。虽然在实际应用中可能会产生一系列的变化,但总的来说只要有编写程序的地方简单 Java 类就会存在,并且会一直伴随着我们。
01.简单 Java 类的含义
那么什么叫简单 Java 类呢?简单来阐述一下这个概念。关于这个概念的基本内容之前已经讨论过了,现在主要想结合这个程序来进一步说明。所谓的简单 Java 类指的是能够描述某一类信息的程序实体。
比如描述一个人的信息、一本书的信息、一个部门的信息,或者一个雇员的信息,这样的实体并不需要包含特别复杂的逻辑操作。也就是说它可能不会包含复杂的 For 循环或其他复杂的条件判断,而只是作为一个信息存储的媒介存在。那么仅作为一种信息存储的媒介,这就是简单 Java 类的一个基本概念。
02.简单 Java 类的开发
那么到底如何进行简单 Java 类的开发呢?接下来简要地讨论一下。对于简单 Java 类而言其核心的开发结构如下,这是第一部分结构,后续还会有扩充,到时候再详细说。
那么关于其主要的核心结构,第一点请记住类名称一定要有意义,能够明确地描述某一类产品或某一类事物。第二点类中的所有属性都必须使用 Private 关键字进行封装。同时封装后的属性必须提供对应的 Setter 和 Getter 方法。
注意这里说的“必须”指的是在简单 Java 类的规范中这是必要的,不要片面地认为简单 Java 类就是简单地写写 Setter 和Getter 方法就过去了。简单 Java 类的核心在于它是对一些事物或概念的抽象描述。
那么类中可以提供无数个构造方法,但是必须保留一个无参构造方法。并且类中不允许出现任何的输出语句,所有内容的获取必须通过返回语句来实现。
举个例子来说,假如我现在碰到一个人,他是个小偷,我正在抓他,我问他叫什么名字,他却在心里默念。这是什么意思呢?就像我问你问题,寻求信息,而你却只在心里自己回答,没有告诉我一样。你应该告诉我:“我叫姜家正。”然后我再根据这个信息去判断。
所以说这边你要把信息交给我,而不是自己在心里默念。因此所有人员提供的信息内容必须通过返回语句交给我。
接下来可以提供一个非可选但非必需的方法,用于获取对象的详细信息。现在暂时将这个方法的名称定义为 GetInfo 。完成这个定义后来看一个简单的 Java 示例,您来检查一下。请允许我定义一个简单的 Java 类。“那么现在来写这个代码。先写一个简单的Class Dept ,请注意类名应该能够清晰地描述出它所代表的事物。
比如一看到这个类名就知道它是关于 Dept 的某个事物,但是曾经有个学生给我写过一个特别让人费解的类名,他居然写了个叫‘高登’的类名。这里不采用这样的命名方式。”之后现在再次回到这里。现在要在这里为它定义几个属性。
按照之前所说的所有的属性需要使用私有封装,即 Private ,也就是 Long Deptno 接下来定义一个字符串类型的属性 String Dname ,以及另一个字符串类型的属性 String Loc 。还有之前提到过的一个类中虽然可以提供无数个方法,但有一点必须要记住,那就是必须提供无参。
class Dept { // 类名称可以明确描述出某类事物 } public class JavaDemo { public static void main(String args[]){ } }
class Dept { // 类名称可以明确描述出某类事物 private long deptno ; private string dname ; private string loc ; } public class JavaDemo { public static void main(String args[]){ } }
实际上现在已经留下了不少疑问。第一个问题是关键字 New 到底做了什么?第二个问题是 GC 是如何工作的?第三个问题是为什么需要 Setter 和 Getter 方法?第四个问题是为什么要用无参构造方法?不过无论是否存在无参构造方法都可以提供其他类型的构造方法。例如可以提供一个有参构造方法。
现在再为 String Loc 添加一个属性,叫做 This.deptno ,其等于Deptno 。接着设置其他属性: This.Dname 等于 dname ,This.loc 等于 Loc 。现在完成这些赋值操作后,按照接下来的步骤应该开始编写 Setter 和 Getter 方法了。这是面向对象编程中常见的封装实践,用于控制对对象属性的访问。请记住在刚开始学习编程的时候,强烈建议大家操作代码必须要熟练掌握。
也就是说要达到这样的程度:每写完一个程序,都能保证一次性全部正确。不要觉得“老师,这个代码我写得磕磕绊绊,但一次性全对的几率有 95% ”就满足了。有的人可能会说:“老师,我写完代码后一次性全对的几率可能只有 10% ”。这样同学们的能力此消彼长,慢慢就会发现如果不能做到完全独立,即脱离任何工具去写代码,那么对语法的掌握将不会透彻。
尤其是对于初学者而言,这个过程会非常棘手。接下来跟上 Dname ,并直接在 Return 后面跟上 Dname ,然后再找到一个名为 StringGetLoc 的函数。之后直接在这里找到Return 语句,并将这四点关于 Loc 的信息写完。信息填写完毕后,按照之前的讨论现在需要一个返回新信息的方法,可以将其命名为GetInfo ,那么是否可以直接在其后添加部门信息呢?当然可以。
首先要找到一个名为部门编号的字段,然后加上一个 This.Teptno ,接着加上部门名称,这次使用 Dname ,最后还要找到一个叫做部门位置的字段。在添加部门位置时跟上一个标识,假设它是 This.Roc 。这样就写完了。这个过程其实很简单,并且加入这些信息其实并不复杂。简单来说在这段代码中如要进行操作。首先要创建一个新的 Deptno 对象,并将其赋值给变量 DEP 。
例如可以给这个新对象设置一个名称,比如“技术部”,并假设其位置是“北京网上”。接下来使用 Alt.print 来打印出 DEP 对象的GetInfo 方法返回的信息。当完成这些信息的设置后将使用 Java 编译器来编译代码,并随后运行编译后的 Java 程序。如果你们能够一次性正确完成这些步骤,那就说明你们已经达到了初学者应该具备的水平。
public void setDname (String dname){ this.dname=dname; } public void setLoc(String loc) { this.loc =1oc; } public long getDeptro()( return this.deptno; } public String getDname (){ return this,dname ; } publia String getLoc(){ return this.loc ; } } public class JavaDemo { public statie void main(String args[]){
而且这种简单的 Java 类实际上融合了现在所接触到的几乎所有重要概念。比如数据类型的划分、类的定义、 Private 关键字的封装作用、构造方法的实现以及方法的定义和对象的实例化等。
在整个过程中是不是基本上已经接触到了所有可能的关键要素?因此可以说简单的 Java 程序虽然易于理解,但它却涵盖了编程的基础,这一点非常重要。所以请务必重视这些基础知识,不要到了需要应用时却写不出来。
class Dept { // 类名称可以明确描述出某类事物 private long deptno ; private string dname; private String loc ; public Dept() {} // 必须提供有无参 public Dept(long deptno,string dname,String loc) { this.deptno =deptno; this,dname =dname; this.loc=loc; } public String getInfo(){ return".[部门信息]部门编号:"+ this.deptno +"、部门名称: } public void setDeptno(long deptno){ this .deptno =deptno; } public void setDname(String dname) { this .dname =dname ;