《Java程序设计》电子课件精品课程

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

宋波,李晋,李妙妍,张悦
3. 变量的有效范围
• 概念:
➢ 指该变量在程序代码中的作用区域,在 该区域外不能直接访问变量。
• 生命周期:
➢ 指从声明一个变量并分配内存空间、使 用变量开始,然后释放该变量并清除所 占用内存空间的一个过程。
2021/1/27
宋波,李晋,李妙妍,张悦
• 变量的种类:
① 成员变量——类体中声明的成员 变量在整个类中有效。
this.copper=c; // 给类成员变量z赋值
}
2021/1/27
宋波,李晋,李妙妍,张悦
String getModel( ) { return “金牌 = ”+gold+“ 银牌
=”+silver+“ 铜牌="+copper; }
2021/1/27
宋波,李晋,李妙妍,张悦
public static void main( String args[ ]) {
1. public class Point { 2. int x=1;
成员变量
3. int y=1;
4.
public void setXY(int x,int y) { … … }
成员方法
5. public int getXY() { … … }
6. public static void main(String[ ] args) {
Olympics2 o2=new Olympics2( );
System.out.println("Before changModel:"+o2.getModel());
o2.changeModel(100,100,100);
System.out.println("After changeModel:"+o2.getModel());
2021/1/27
宋波,李晋,李妙妍,张悦
2. 类体
① 构造和初始化新对象的构造方法; ② 表示类及其对象状态的变量; ③ 实现类及其对象的方法; ④ 进行对象清除的finalize()方法。
2021/1/27
宋波,李晋,李妙妍,张悦
3.1.2 成员变量与局部变量
• 成员变量(类):
➢ 在类体中声明的变量,且不属于任何 一个方法时。
public final boolean MATURE=true; // 常量MATURE并赋值
public static void main(String[ ] args) {
System.out.println("苹果数量:"+Apple.num);
Apple apple=new Apple();
2021/1/27
宋波,李晋,李妙妍,张悦
Java垃圾回收器执行机制的生命周期
new语句 可触及状态
生命周期的开始 不再被引用 当前对象或其它对象的finalize()方法
可复活状态
当前对象或其它对象的finalize()方法 不可触及状态 回收内存
生命周期的终止
2021/1/27
宋波,李晋,李妙妍,张悦
《Java程序设计》电子课件
2021/1/27
第1篇 核心基础篇
第 3 章 Java面向对象特性
2021/1/27
宋波,李晋,李妙妍,张悦
本章内容
3.1 类与对象 3.2 隐藏和封装 Biblioteka Baidu.3 类的继承与多态 3.4 数组
2021/1/27
宋波,李晋,李妙妍,张悦
学习目标
1. 掌握对象与类的基本概念 2. 了解对象的生命周期 3. 熟练掌握类的定义及实例化 4. 理解隐藏与封装 5. 熟练掌握类的继承与多态 6. 掌握数组的应用
int x=1;
int y=1;
public Point(int x,int y){
this.x=x;
this.y=y;
}
}
2021/1/27
//实例化Point类,创建对象pt Point pt = new Point(2,3);
宋波,李晋,李妙妍,张悦
Point pt = new Point(2,3);
3.1.3 成员方法
返回值类型 方法名称 (参数1,参数2,…… 参数n) { //方法开始标记
方法主体
} //方法结束标记
2021/1/27
宋波,李晋,李妙妍,张悦
注意:
① 方法体中定义的局部变量的作用域只
在方法内部; ② 如果局部变量的名字和类的成员变量
名字相同,则类的成员变量被屏蔽;
③ 如果要在方法中使类的成员变量有效 ,则可以使用this关键字。
7.
Point pt=new Point();
声明并创建Point类的对象pt
8.
pt.x=2;
访问对象pt的成员变量x
9.
System.out.println("x与y的乘积为:"+pt.getXY());
10. pt.setXY(3,2);
11. System.out.println("x与y的乘积为:"+pt.getXY());
② 局部变量——在方法内或方法内 的复合代码块(方法内部,“{”与 “}”之间的代码)声明的变量。
2021/1/27
宋波,李晋,李妙妍,张悦
【例3-3】变量的有效范围
1. public class Olympics1 { 2. private int medal_All=800;
成员变量
3. public void China() { 4. int medal_CN=100;
类体
public class Apple {
String color; float price; int num; public Apple(){
color="Red"; price=8.34f; num=10; } public float count(){ return price*num; } public static void main(String[] args) { Apple apple=new Apple(); System.out.println("苹果颜色:"+apple.color); System.out.println("苹果总价钱:"+apple.count()); } }
宋波,李晋,李妙妍,张悦
14. public static void main(String[] args) { 15. Apple apple=new Apple(); 16. System.out.println("苹果总价钱:
"+apple.count()); 17. } 18. }
2021/1/27
代码块外、方法 体内的局部变量
5. if(medal_CN<1000) {
6.
int gold=50;
代码块的局部变量
7.
medal_CN+=30;
8.
medal_All-=130;
允许访问本方法的 局部变量
9. } 10. }
允许访问本类的成员变量
11. }
2021/1/27
宋波,李晋,李妙妍,张悦
12. }
13. }
调用成员方法
2021/1/27
宋波,李晋,李妙妍,张悦
3.1.6 对象的消除
• 在C++中,程序员要显式地删除不用的对 象,即手动释放对象占用的存储空间。
• Java提供了垃圾回收(garbage collection)机制:自动判断对象是否还在 使用,并自动销毁不再使用的对象,回收 对象所占用的资源。
2021/1/27
宋波,李晋,李妙妍,张悦
public class Olympics2 {
private int gold=0;
private int silver=0;
private int copper=0;
public void changeModel(int a,int b,int c) {
2021/1/27
宋波,李晋,李妙妍,张悦
3.1.4 对象的创建
• 一个对象的生命周期包括三个 阶段:
① 对象的创建 ② 对象的使用 ③ 对象的消除
2021/1/27
宋波,李晋,李妙妍,张悦
创建对象
类 对象名称 = new 构造方法(参数)
声明
实例化 创建对象
初始化
public class Point {
}
}
g如o果ld在=1方0法0中si对lv成er员=变10量0的c值op进p行e了r=修50改,则 这种修go改ld将=是0永s久ilv的e。r=0 copper=0
BIAenfoctehrraccnhhgaaMnngogMdMeoold:de金el:l:牌金金=牌牌10==001银银00牌牌银==牌100铜=00牌铜铜=牌牌0==51000
• 局部变量:
➢ 在方法体中声明的变量以及方法的参
数则统称为方法的局部变量。
2021/1/27
宋波,李晋,李妙妍,张悦
【例3-1】成员变量示例
public class Apple {
public String color;
// 公共变量color
public static int num;
// 静态变量num
gold=a;
// 给类的成员变量赋值
int silver= b; // 使同名类成员变量silver隐藏
int copper= 50; // 使同名类成员变量copper隐藏
System.out.println(“In changModel:”+“金牌 =”+gold+“ 银牌 =”+silver+“ 铜牌"+copper);
引用空间
内存空间
pt null
x0 y0
x1 y1
x2 y3
x2 pt 0x3a478b
y3
(a)为Point类对 象pt分配引用 空间,并初始
化为null。
(b)为对象pt分 配内存空间, 并进行默认初
始化。
(c)执行显示 初始化。
(d)执行Point 类构造方法。
(e)将内存空间首地址赋 值给引用空间。
宋波,李晋,李妙妍,张悦
1. 类的声明格式 类的访问权限及其属性
[public] [abstract | final]
class <className>
类名
[extends superClassName]
[implements interfaceNameList]
类定义关键字
继承某个父类的关键字
实现接口的关键字
5. return color;
6. }
7. public float count(){ 8. int num; 9. if(num<0)
• 错误语句,因为局 部变量num还没有
10. return 0;
被赋值就使用
11. else
12. return price*num;
13. } 2021/1/27
3.1.7 方法的重载
• 在同一个类中定义了多个同名而内容
2021/1/27
宋波,李晋,李妙妍,张悦
3.1.1 类和对象的定义
• Java程序是由一个或若干个类组 成,类是Java程序的基本组成单 位,包括:
➢ 成员变量:描述对象的属性 ➢ 成员方法:描述对象的行为
2021/1/27
宋波,李晋,李妙妍,张悦
类定义的结构
类声明 成员变量 构造方法
方法
2021/1/27
System.out.println("苹果颜色:"+apple.color);
System.out.println("苹果是否成熟:"+apple.MATURE);
}
}
num是类变量(即静态变量),可通过类名直接访问
2021/1/27
宋波,李晋,李妙妍,张悦
2. 局部变量
[final] <type> <varibleName>;
• 局部变量的名称 • 局部变量的参数类型
• 指定局部变量为常量
2021/1/27
宋波,李晋,李妙妍,张悦
【例3-2】局部变量的使用
1. public class Apple {
2. String color="Red"; 3. float price;
• 成员变量
4. public String getColor() {
2021/1/27
宋波,李晋,李妙妍,张悦
本章概要
1. Java中类和对象的定义; 2. Java对OOP三个主要特性——封装
、继承和多态的支持机制; 3. Java中的对象数组这种数据结构。
2021/1/27
宋波,李晋,李妙妍,张悦
3.1 类与对象
1. 类与对象的定义 2. 成员变量与局部变量 3. 成员方法 4. 对象的创建 5. 对象的使用 6. 对象的消除 7. 方法重载 8. this 9. 构造方法
2021/1/27
宋波,李晋,李妙妍,张悦
3.1.5 对象的使用
1. 引用对象的变量
• objectReference.variableName;
2. 调用对象的方法
• objectReference.methodName( argumentList)
2021/1/27
宋波,李晋,李妙妍,张悦
【例3-6】对象使用的示例
相关文档
最新文档