精品计算机课件Java程序基础教程第讲对象的初始化.pdf
文本预览下载声明
Java 语言程序设计
第五讲 对象的初始化
主要内容
用构造方法确保初始化
方法的重载
this 关键字
类中成员变量的默认值
对象的初始化过程
用构造方法确保初始化
缺省构造方法
javap.exe 观察类框架
在 JDK 安装目录下的bin 目录下,有一个文件javap.exe,它是一个反编译
的类察看器,可用它来观察类框架。如:
D:\Javawork\Lesson4javap Person
Compiled from Person.java
class Person extends java.lang.Object{
int sex;
int salary;
Person();
void employed();
}
观察:类框架中多了哪一项?
构造方法的初步认识
构造方法的名字和类名相同,无类型修饰,没有返回值;
所有类都有构造方法,如果程序中没定义,编译器会自动提供缺省的构
造方法;
构造方法可带参数,以接收用来初始化的数据。但缺省的构造方法不带
参数,不能接收数据,并且方法体为空。
主动在类中引入构造方法
例:阅读程序,理解构造方法。
Java 语言程序设计
class Flower{
static int num=0; //静态变量
Flower(){ //构造方法
num++;
System.out.println(num+朵花开了!);
}
public static void main(String[] args){
new Flower();
new Flower();
new Flower();
}
}
思考
1. 构造方法有什么用?
2. 每个类都有构造方法吗?
3. 构造方法的命名和类型修饰?
4. 构造方法的执行时机?
5. 如果希望创建对象时,传递给对象中的变量初值,怎么
实现?
6. 回顾new 运算,new 类名(参数),其中的参数什么时候
带,什么时候不带?
7. 如果一个类定义了带参的构造方法,可以用new 类名()
创建该类的对象吗?
说明:构造方法不可声明返回类型(包括void)。如说明编译器将把它看作
为一个一般的方法,而不是构造方法。
练习:构造一个可接受半径Circle 类,并含有求圆面积的方法getS 和求圆
周长的方法getL。通过Circle 类的实例化对象,分别求半径为:2、3.5 的圆面
积和圆周长。
class CleverCircle{
}
class Test{
Java 语言程序设计
public static void main(
显示全部