JAVA2实用教程(第5版)第四章

第4章 类与对象

4.1.3 面对对象语言

➊封装性

❷继承

❸多态

4.2 类

4.2.1 类声明

class People{

...

}

4.2.2 类体

类的目的是抽象出一类事物共有的属性和行为

●变量的声明:用来存储属性的值(体现对象的属性)。

●方法的定义:方法可以对类中声明的变量进行操作,既给出算法。

4.2.3成员变量

➊成员变量的类型

成员变量的类型可以JAVA 中向任何一种数据类型,包括基本类型:整型,浮点型、特型、逻辑类型、引用类型;数组、对象和接口

❷成员变量的有效范围

成员变量在整个类内都有效

❸编程风格

(1)一行只声明一个变量

(2)变量的名字除了符合标识符规定外,名字的首单同时音字时使用小写,如果由多个单词组成,从第二个单词开始的其他单词首字母使用大写

(3)变量名字见名知意

4.2.4 方法

方法头{

方法体的内容}

注:如果局部变量和成员变量的名字相同,那么成员变量被隐藏。

局部变量没有默认值

4.3构造方法与对象的建造

4.3.1构造方法

构造方法是类中的一种特殊方法,当程序用类创建对象时遇使用它的构造方法。类中的构造方法的名字必须与它所在的类的名字完全相同,而且没有类型。允许在一个类中编写若干个构造方法,但必须保证它们的参数不同,参数不同是指:参数的个数不同,或参数个数相同,但参数列表中对应的某个参数的类型不同。

需要注意的是, 如果类中没有编写构造方法,系统会默认该类只有一个构造方法,该默认的构造方法是无参数的,且方法体中没有语句。

➊默认构造方法与自定义构造方法

❷构造方法没有类型

4.3.2 创建对象

➊对象的声明

一般格式:

类的名字 对象名字;

例如:Lader lader;

❷为声明的对象分配变量

使用 new运算符和类的构造方法为声明的对象分配变量,即创建对象。如果类中没有构造方法,系统会调用默认的构造方法,默认的构造方法是无参数的,且方法体中没有语句。

❸对象的内存模型

(1)声明对象的内存模型

(2)为对象分配变量后的内存模型

(3)创建多个不同的对象

4.3.3使用对象

➊对象操作自己流变量

❷对象调用类中的方法

❸体现封装

4.3.4对象的引用和实体

(1)避免使用空对象

(2)一个类的声明的两个对象如果具有相同的引用,二者就具备相同的变量

(3)一个类的声明的两个对象如果具有相同的引用,二者就具备完全相同的实体,系统就会释放多余内存。

4.5 参数传值(不影响原件)

4.5.4 可变参数(使用...表示)

4.6 对象的组合

4.6.1组合与复用

如果一个对象a组合了对象b.那么对象a就可以委托对象b调用其方法组合的方式复用对象b的方法。

通过组合对象来复用方法有以下特点。

(D通过组合对象来复用方法也称“黑盒”复用,因为当前对象只能委托所包含的对象调用其方法,这样一来,当前对象对所包含的对象的方法的细节(算法的细节)是一无所知的。

(2)当前对象随时可以更换所包含的对象,即对象与所包含的对象属于弱耦合关系。

4.6.2 类的关联关系和依赖关系的 UML图

➊关联关系

如果A类中的成员变量是用B类声明的对象,那么A和B的关系是关联关系,称A类的对象关联于B类的对象或A类的对象组合了B类的对象。

❷依赖关系

如果A类中某个方法的参数是用B类声明的对象或某个方法返回的数据类型是B类对象,那么A和B的关系是依赖关系,称A依赖于B.

4.7实例成员与类成员

4.7.1 实例变量与 类变量(static 修饰)

区别:   ➊不同对象的实例变量互不相同

   ❷所有对象共享类变量

   ❸通过类名直接访问类变量

4.7.3实例方法与类方法

区别: ➊对象调用实例方法

❷类名调用类方法

4.8方法重载(多态性)

要求: ➊参数个数不同

❷参数个数相同,类型不同

4.9 this关键字

(1)构造方法中代表对象

(2)实例方法中代表当前对象

4.10包(package)

4.11import语句(引入库/自定义中的的类)

4.12

➊不能用protected和private修饰类。

❷访问限制修饰符按访问权限从高到低的排列顺序是public(公有)、 protecte(保护)、友好的、private(私有)。

4.18 小结

(I)类是组成Java源文件的基本元素,一个源文件是由若干个类组成的。(2)类体可以有两种重要的成员:成员变量和方法。

(3)成员变量分为实例变量和类变量。类变量被该类的所有对象共享,不同对象的实例变量互不相同。

(4)除构造方法外,其他方法分为实例方法和类方法。类方法不仅可以由该类的对象调用,也可以用类名调用:而实例方法必须由对象来调用。

(5) 实例方法既可以操作实例变量也可以操作类变量,当对象调用实例方法时,方法中的成员变量就是指分配给该对象的成员变量,其中的实例变量和其他对象的不相同,即占有不同的内存空间:而类变量和其他对象的相同,即占有相同的内存空间。类方法只能操作类变量,当对象调用类方法时,方法中的成员变量一定都是类变量,也就是说,该对象和所有的对象共享类变量。

(6) 通过对象的组合可以实现方法复用。

(7)在编写Java源文件时,可以使用import语句引入有包名的类。

(8)对象访问自己的变量以及调用方法受访问权限的限制。

猜你喜欢

转载自blog.csdn.net/weixin_40909604/article/details/84997148