第4章 类和对象-Java程序设计与项目案例教程-梁立新-清华大学出版社
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.3.4 方法的参数传递
方法分为有参数的方法和无参数的方法。在调用一个有参(参数 称为形式参数)方法时,必须给方法提供实际参数,完成实际参 数向形式参数的传值,就是参数传递。
计算机语言为子程序传递参数提供两种方式。第一种方式是值传 递(pass-by-value)。这种方式将一个参数值(value)复制成为 子程序的参数,这样,对子程序参数的改变不影响调用它的参数。 第二种方式是引用传递(pass-by-reference)。在这种方式中, 参数的引用(而不是参数值)被传递给子程序参数。在子程序中, 该引用用来访问调用中指定的实际参数,这样,对子程序参数的 改变将可能会影响调用子程序的参数。
public static void main(String args[]) { int a = 10; System.out.println("a and b before call: " +a ); ParamPass ob=new ParamPass(); ob.add(a); System.out.println("a and b after call: " +a );
} }
4.3.5 类成员的访问控制符
修饰符 public
同一个类 同一个包中 不同包中的子类 全局
中
中
Yes
Yes
Yes
Yes
protected
Yes
Yes
Yes
No
default
Yes
Yes
No
No
(friendly)
private
Yes
No
No
No
4.4 类的实例化
创建对象 对象成员的使用 对象资源的回收
}
public static void main(String[] args){ StringTest st = new StringTest (); st.changeString("Hello Lixin"); st.printString();
} }
4.3 类的定义及访问
类的定义 成员变量的定义及修饰字 方法的定义及修饰字 方法的参数传递 类成员的访问控制符
【例】类的创建
package sample; class StringTest{
private String s; public void printString(){ System.out.println(s); }
public void changeString(String str){ s = str;
Hale Waihona Puke Baidu
4.3.1 类的定义
基本语法如下:
[类修饰符] class 类名称 [extends 父类名称][implements 接 口名称列表] {
成员变量定义及初始化; 方法定义及方法体; }
类的定义由类声明和类体组成。其中,类声明 包含关键字class、类名称及类的属性。 类的修饰符有:public、abstract 、final和friendly 四种,默认方式为friendly。
第四章 类和对象
本章主要内容
面向对象的程序设计思想 类和对象的关系 类的定义及访问 类的实例化 类的封装、继承和多态
4.1 面向对象程序设计思想
4.1.1 OOP思想
面向对象的分析(OOA, Object-Oriented Analysis); 面向对象的设计(OOD, Object-Oriented Design); 面向对象的程序设计(OOP, Object-Oriented Program)。
4.4.1 创建对象
对象的生成包括声明、实例化和初始化。基本语法如下: 类名称 对象名 //声明对象 对象名= new 类名([<参数列表>]); //创建对象
4.4.2 对象成员的使用
对象的使用是通过运算符"."实现对变量的访问和方法的 调用。变量和方法可以通过设定访问权限来限制其它对象 对它的访问。基本语法如下:
Java对于基本数据类型的参数,它是“值传递”方式。对于引用类 型的参数,它也是“值传递”方式,只不过传递的是引用的值(有 些书籍中称为引用传递。)因此,引用本身无法改变,而引用指 向的对象内容可以被改变。
【例】参数的传递方式
package sample; class ParamPass {
void add(int i) { i += 5; }
外部访问,必须通过构造函数间接进行。 (3)Protected:受保护类型,子类访问受到限制。
4.3.3 方法的定义及修饰字
基本格式如下:
[方法修饰符] 返回类型 方法名称(参数1,参数2,…) [throws 异常类]
{
方法体
}
其中,方法修饰符有:[public | protected | private ] [static] [final | abstract] [native] [synchronized]。
4.1.2 面向对象程序设计方法特点
与人类习惯的思维方法一致,稳定性好,可重用性好,易于 开发大型软件产品,可维护性好
4.2 类和对象的关系
类(Class): 具有相同或相似性质的对象 的抽象就是类。忽略事物的非本质特征, 只注意那些与当前目标有关的本质特征, 从而找出事物的共性,把具有共同性质的 事物划分为一类,得出一个抽象的概念。 因此,对象的抽象是类,类的具体化就是 对象,也可以说类的实例是对象。
对象名.成员变量名 对象名.成员方法名([<参数列表>]);
【例】类的定义及成员方法的使用
package sample; public class Person {
int age; public void pout() {
System.out.println("My age is" + age); } public static void main(String args[]) { Person p1 = new Person(); Person p2 = new Person(); p1.age = 20; p2.age=18; p1.pout(); p2.pout(); } }
4.3.2 成员变量的定义及修饰字
成员变量:指类的一些属性定义,标志类的静态特征,它的基本 语法如下:
[变量修饰符] 变量数据类型 变量名1,变量名2[=变量初值]…; 对于一个成员变量,可以有访问说明符有public、private和
protected三种: (1)public:省略时默认为公有类型,可以由外部对象进行访问。 (2)private:私有类型,只允许在类内部的方法中使用,若从