第4章 类、对象和包 总结

第4章 类、对象和包

万物皆对象,对象因我的关注而存在。
类 has 属性

理解结构化编程和面向对象编程的区别
掌握如何编写Java类
掌握如何实例化对象
掌握如何访问对象的属性和方法
理解this引用
掌握如何使用包组织类

4.1 结构化编程与面向对象编程

结构化编程

程序员会编写一个主过程来启动程序流程,
随后根据程序流程走向,调用想要的其它过程。
这种类型的程序设计被称为结构化编程。

面向对象编程
(Object Oriented Programming,简称OOP)开始流行。
OOP采用了一种完全不同的方法来开发计算机应用程序。
在这种方法中,程序不是围绕着要解决的任务来设计,
而是围绕着要解决的题中的对象来设计。对于每个对象,
我们会编写一个类来描述对象的属性和行为。类是对象的描述。

同样,

 对象是类的实例。对象由属性和行为组成。
 属性是对象所具有的特征,而行为是对象可以做的动作。
 对象的每个属性被表示为类中的一个成员变量。
 对象的每个行为成为类中的一个方法。


在Java中,过程被称为方法。Java中的方法出现在类之中。
而结构化编程语言中的过程通常以全局的形式出现,
这样就可以在任何地方调用它们。

注意:

面向对象编程与结构化编程一样,都是通过方法之间的调用来传递数据,
但是二者之间有相当大的区别。


4.2   编写一个Java类


 Java中的类用关键字class声明。

Java源代码文件中只能包含一公用(public)类,
文件名必须与公用类的类名相同,文件扩展名为“.java”。

在一个.java文件中我们可以声明多个类,
但是只有一个类可以为声明为public。
源代码文件的文件名必须与公用类的类名匹配。
如果在源代码文件中没有公用类, 文件名可以是任意的。
4.2.1   向类中添加成员变量

  对象的属性成为相关类中的成员变量。
  类中的一个成员变量由如下部分组成:
  访问修饰符。
  可以是public、private或protected;如果省略了访问修饰符,

将使用默认访问修饰符。

数据类型。

成员变量名称。

成员变量名称必须是一个有效的标识符,后面用分号结束。
关于访问修饰符,我们将在后面章节中详细讨论。
在这里,我们都用public访问修饰符。

    必须记住的是,

    如果我们在类中对某个成员变量或方法指定public修饰符,
    那么该成员变量或方法将可以被任何其它对象访问。


    如下的类Employee有五个成员变量:
    name、address、number、SSN和salary。当一个Employee     
    对象在内存中初始化时,系统会为这五个成
    员变量分配内存:
public class Employee {
    public String name;     //姓名
    public String address;     //邮寄地址
    public int number;     //员工号
    public int SSN;          //社保号
    public double salary;     //员工的工资
     }



必须记住:

类描述对象看起来是什么。Employee类用于描述公司中的员工。
Employee类中出现的成员变量代表需要计算报酬的员工的信息。
例如,一个员工有姓名和地址,所以Employee类就有一个name成员变量和一个address成员变量。
每个员工还有其它的属性,例如,身高、体重等等。但是,这些程序与计算工资的示例程序无关,

所以我们不会将这些属性包含进来。如果我们要将员工类用于其它用途,
那么它可能就与 现在的类有很大区别。

4.2.2 向类中添加方法
一个对象的行为成为相关类中的方法。
类中的一个方法典型地由如下部分组成:
 访问修饰符
 返回值》返回类型
 方法名称,必须是一个有效的标识符
 参数列表,在括号中出现
 方法的定义

在Java中,方法的定义(通常称为方法体)必须出现在方法声明后的大括号中。
我们注意到在Employee类中,mailCheck()方法打印员工的姓名和邮寄地址要使用该类的name和address成员变量。同样,computePay()方法要访问salary成员变量。
最后,我们可以看到Employee类中包含如下内容:
 类的名称是Employee。
 类有五个public成员变量。
 类有两个public方法。
Employee类以文件名Employee.java形式出现,编译的字节码以文件名Employee.class形式出现。

4.3实例化对象
类是模板,对象才是真正的具体存在!
怎么样产生对象?
Employee e;
e=new Employee();
等效于:
Employee e= new Employye();

猜你喜欢

转载自blog.csdn.net/qq_43039235/article/details/82116948