Java课件.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
main
x5
change
x 53
p.change(x);
●
参数传递
Java使用传值调用 ●引用数据类型的参数传递
● 方法中对引用变量的修改不会回传 ● 方法中对引用变量标识的对象的修改会被保留
public Employee(String n, double s, int year, int month, int day) {
name = n; salary = s; GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day); hireDay = calendar.getTime(); }
String name; public Person(String name) { =name; } }
class Person {
String name; int age; public Person(String name ) {
=name; } public Person(String name, int age) {
例:EmployeeTest.java
●
类与对象
●对象的产生和使用 ● 创建:类名 欲创建的对象名(引用变量) = new 类名( 参数表 ) ; ● 引用: 对象名.方法(参数)
注意:编译之后,对于源文件中的每一个类生成一个.class文件。
Employee p1= new Employee("Carl Cracker", 75000, 1987, 12, 15); Employee p2 = new Employee( );
this(name); this.age=age; } }
●
finalize方法
● 对象被当成垃圾从内存中释放前调用 ● 不可靠(对象可能不被垃圾回收)
注意:不等于c++中的析构函数
●
参数传递
Java使用传值调用 ●基本数据类型的参数传递
● 方法中对参数的修改不会回传
例:PassPrimitiveVariable.java
p1.raiseSalary(5);
●
类与对象
Employee p1 = new Employee("Carl Cracker", 75000, 1987, 12, 15 )
p1 0x3000
0x3000 Employee
name:Carl Cracker salary:75000 hireDay:1987-12-15
class Test { }
class Test {
public Test(){ } }
class Test {
int age; public Test(int x) { age=x; } }
●
this
● 方法的形参与成员变量相同 ● 在构造方法中调用其他重载的构造方法
class Person {
setXxx
getXxx ● 优点:可以改变内部实现;set方法可以进行错误检查
● 私有方法 (private) ● 与类的使用者无关的方法 ● 如果类的实现改变了,不容易维护的方法
●
构造方法
●构造方法的定义与作用 ● 方法名与类名相同 ● 没有返回类型(注意:void ) ● 不能直接引用(new,this) ● 创建类的新的对象时自动执行,一般完成初始化操作
●对象(实例instance):实际个体 •创建某个类的具体对象
例如: String s = new String( “Hello!” ) ;
●
类与对象
●类的定义
[ 类修饰符] class 类名 [ extends 超类名 ] [ implements 接口名 ] {
成员变量(数据成员)定义; 构造方法(constructor); 方法定义(method); } 注意:如果方法中有与成员变量同名的局部变量,该方法对这 个变量名的引用是局部变量;多个类可以放在一个源文件中, 也可以位于不同的源文件,每个源文件只包括一个public类;类 中成分的位置可根据个人的书写习惯调整。
Employee p2 = p1;
p1 0x3000 p2 0x3000
0x3000 Employee
name:Carl Cracker salary:75000 hireDay:1987-12-15
●
类与对象
● 对象的产生和使用 ● 创建 ● 引用 ● 变成垃圾的几种情况 离开引用变量的作用域 引用变量=null
●
构造方法
●构造方法的重载 ● 重载(overloading): 指类中多个方法享有相同的名字,方法的参数不同(不能用
返回类型区别) ● 重载构造方法可以完成不同的初始化操作
注意:在构造方法中没有明确赋值的成员变量会自动地赋以默认 值,但这不是一种好的做法。
例:OverloadTest.java,EmployeeTest.java
public Employee(String n, double s, int year, int month, int day) public Employee()
●
构造方法
●构造方法的其他特点 ● 如果一个类没有定义构造方法,则系统自动生成一个默认的
构造方法 ● 如果定义了构造方法,则系统不再提供默认的构造方法 ● 如果定义了构造方法,一般需要提供一个无参数的构造方法 ● 构造方法一般为pubic
{ Employee p1=new Employee( ); Employee p2=p1; p1=null; …
}
{ Employee p1=new Employee( ); …
}
{ Employee p1=new Employee( ); … p1=null; …
}
●
类与对象
● 实现类的封装 ● 成员变量使用private修饰符 ● 通过public的方法访问成员变量
第三章 对象和类
● 面向对象程序设计 ● 类与对象 ● 构造方法 ● 参数传递 ● static ●包 ● 文档注释
● 面向对象程序设计
过程式程序设计
函数
函数
函数
函数
公共数据
算法+数据结构
OOP程序设计
消息
方法
数据
数据
方法
对象+类+继承+ 消息
●
类与对象
汽车设计图
第一辆
第二辆
第三辆
●
类与对象
●类:抽象的集合概念 •系统类库中已定义好的类 •用户自定义的类