《Java程序设计》电子课件.ppt
《《Java程序设计》电子课件.ppt》由会员分享,可在线阅读,更多相关《《Java程序设计》电子课件.ppt(124页珍藏版)》请在三一文库上搜索。
1、Java程序设计电子课件,宋波,李晋,李妙妍,张悦,2019/11/30,宋波,李晋,李妙妍,张悦,第1篇 核心基础篇,第 3 章 Java面向对象特性,2019/11/30,宋波,李晋,李妙妍,张悦,本章内容,3.1 类与对象 3.2 隐藏和封装 3.3 类的继承与多态 3.4 数组,2019/11/30,宋波,李晋,李妙妍,张悦,学习目标,掌握对象与类的基本概念 了解对象的生命周期 熟练掌握类的定义及实例化 理解隐藏与封装 熟练掌握类的继承与多态 掌握数组的应用,2019/11/30,宋波,李晋,李妙妍,张悦,本章概要,Java中类和对象的定义; Java对OOP三个主要特性封装、继承和多
2、态的支持机制; Java中的对象数组这种数据结构。,2019/11/30,宋波,李晋,李妙妍,张悦,3.1 类与对象,类与对象的定义 成员变量与局部变量 成员方法 对象的创建 对象的使用 对象的消除 方法重载 this 构造方法,2019/11/30,宋波,李晋,李妙妍,张悦,3.1.1 类和对象的定义,Java程序是由一个或若干个类组成,类是Java程序的基本组成单位,包括: 成员变量:描述对象的属性 成员方法:描述对象的行为,2019/11/30,宋波,李晋,李妙妍,张悦,类定义的结构,2019/11/30,宋波,李晋,李妙妍,张悦,1. 类的声明格式,public abstract |
3、final class extends superClassName implements interfaceNameList,类的访问权限及其属性,类定义关键字,类名,继承某个父类的关键字,实现接口的关键字,2019/11/30,宋波,李晋,李妙妍,张悦,2. 类体,构造和初始化新对象的构造方法; 表示类及其对象状态的变量; 实现类及其对象的方法; 进行对象清除的finalize()方法。,2019/11/30,宋波,李晋,李妙妍,张悦,3.1.2 成员变量与局部变量,成员变量(类): 在类体中声明的变量,且不属于任何一个方法时。 局部变量: 在方法体中声明的变量以及方法的参数则统称为方法的
4、局部变量。,2019/11/30,宋波,李晋,李妙妍,张悦,【例3-1】成员变量示例,public class Apple public String color; / 公共变量color public static int num; / 静态变量num public final boolean MATURE=true; / 常量MATURE并赋值 public static void main(String args) System.out.println(“苹果数量:“+Apple.num); Apple apple=new Apple(); System.out.println(“苹果颜
5、色:“+apple.color); System.out.println(“苹果是否成熟:“+apple.MATURE); ,num是类变量(即静态变量),可通过类名直接访问,2019/11/30,宋波,李晋,李妙妍,张悦,2. 局部变量,final ;,指定局部变量为常量,局部变量的参数类型,局部变量的名称,2019/11/30,宋波,李晋,李妙妍,张悦,【例3-2】局部变量的使用,public class Apple String color=“Red“; float price; public String getColor() return color; public float co
6、unt() int num; if(num0) return 0; else return price*num; ,成员变量,错误语句,因为局部变量num还没有被赋值就使用,2019/11/30,宋波,李晋,李妙妍,张悦,public static void main(String args) Apple apple=new Apple(); System.out.println(“苹果总价钱:“+apple.count(); ,2019/11/30,宋波,李晋,李妙妍,张悦,概念: 指该变量在程序代码中的作用区域,在该区域外不能直接访问变量。 生命周期: 指从声明一个变量并分配内存空间、使用
7、变量开始,然后释放该变量并清除所占用内存空间的一个过程。,3. 变量的有效范围,2019/11/30,宋波,李晋,李妙妍,张悦,变量的种类: 成员变量类体中声明的成员变量在整个类中有效。 局部变量在方法内或方法内的复合代码块(方法内部,“”与“”之间的代码)声明的变量。,2019/11/30,宋波,李晋,李妙妍,张悦,【例3-3】变量的有效范围,public class Olympics1 private int medal_All=800; public void China() int medal_CN=100; if(medal_CN1000) int gold=50; medal_CN
8、+=30; medal_All-=130; ,成员变量,代码块外、方法体内的局部变量,代码块的局部变量,允许访问本方法的局部变量,允许访问本类的成员变量,2019/11/30,宋波,李晋,李妙妍,张悦,3.1.3 成员方法,返回值类型,方法名称, /方法开始标记, /方法结束标记,方法主体,(参数1,参数2, 参数n),2019/11/30,宋波,李晋,李妙妍,张悦,注意:,方法体中定义的局部变量的作用域只在方法内部; 如果局部变量的名字和类的成员变量名字相同,则类的成员变量被屏蔽; 如果要在方法中使类的成员变量有效,则可以使用this关键字。,2019/11/30,宋波,李晋,李妙妍,张悦,
9、public class Olympics2 private int gold=0; private int silver=0; private int copper=0; public void changeModel(int a,int b,int c) gold=a; / 给类的成员变量赋值 int silver= b; / 使同名类成员变量silver隐藏 int copper= 50; / 使同名类成员变量copper隐藏 System.out.println(“In changModel:”+“金牌 =”+gold+“ 银牌=”+silver+“ 铜牌“+copper); this
10、.copper=c; / 给类成员变量z赋值 ,2019/11/30,宋波,李晋,李妙妍,张悦,String getModel( ) return “金牌 = ”+gold+“ 银牌 =”+silver+“ 铜牌=“+copper; ,2019/11/30,宋波,李晋,李妙妍,张悦,public static void main( String args ) Olympics2 o2=new Olympics2( ); System.out.println(“Before changModel:“+o2.getModel(); o2.changeModel(100,100,100); Syst
11、em.out.println(“After changeModel:“+o2.getModel(); ,Befor changModel: 金牌=0 银牌=0 铜牌=0,gold=100 silver=100 copper=50,In changModel: 金牌=100 银牌=100 铜牌=50,After changModel: 金牌=100 银牌=0 铜牌=100,如果在方法中对成员变量的值进行了修改,则这种修改将是永久的。,gold=0 silver=0 copper=0,2019/11/30,宋波,李晋,李妙妍,张悦,3.1.4 对象的创建,一个对象的生命周期包括三个阶段: 对象的创
12、建 对象的使用 对象的消除,2019/11/30,宋波,李晋,李妙妍,张悦,创建对象,创建对象,声明,实例化,初始化,类,对象名称, new,构造方法(参数),public class Point int x=1; int y=1; public Point(int x,int y) this.x=x; this.y=y; ,/实例化Point类,创建对象pt Point pt = new Point(2,3);,2019/11/30,宋波,李晋,李妙妍,张悦,Point pt = new Point(2,3);,2019/11/30,宋波,李晋,李妙妍,张悦,3.1.5 对象的使用,引用对象
13、的变量 objectReference.variableName; 调用对象的方法 objectReference.methodName(argumentList),2019/11/30,宋波,李晋,李妙妍,张悦,【例3-6】对象使用的示例,public class Point int x=1; int y=1; public void setXY(int x,int y) public int getXY() public static void main(String args) Point pt=new Point(); pt.x=2; System.out.println(“x与y的乘
14、积为:“+pt.getXY(); pt.setXY(3,2); System.out.println(“x与y的乘积为:“+pt.getXY(); ,成员变量,成员方法,声明并创建Point类的对象pt,访问对象pt的成员变量x,调用成员方法,2019/11/30,宋波,李晋,李妙妍,张悦,3.1.6 对象的消除,在C+中,程序员要显式地删除不用的对象,即手动释放对象占用的存储空间。 Java提供了垃圾回收(garbage collection)机制:自动判断对象是否还在使用,并自动销毁不再使用的对象,回收对象所占用的资源。,2019/11/30,宋波,李晋,李妙妍,张悦,Java垃圾回收器执
15、行机制的生命周期,2019/11/30,宋波,李晋,李妙妍,张悦,3.1.7 方法的重载,在同一个类中定义了多个同名而内容不同的成员方法。 classScreen public void print( int i) public void print( float i) public void print( int i, String str ) ,2019/11/30,宋波,李晋,李妙妍,张悦,方法重载,原则: 参数表必须不同: 方法参数的个数不同 参数类型不同 返回类型、修饰符 返回类型,2019/11/30,宋波,李晋,李妙妍,张悦,【例3-7】方法重载的示例,public class
16、Calculate final float PI=3.14159f; public float getArea(float r) return PI*r*r; public float getArea(float l,float w) return l*w; public void draw(int num) System.out.println(“画“+num+“个任意形状的图形“); public void draw(String shape) System.out.println(“画一个“+shape); ,方法重载,方法重载,2019/11/30,宋波,李晋,李妙妍,张悦,publi
17、c static void main(String args) Calculate c=new Calculate(); /创建Calculate类的对象 float l=20; float w=40; System.out.println(“求长为“+l+“宽为“+w+“的矩形面积是:“+c.getArea(l,w); float r=6; System.out.println(“求半径为“+r+“的圆形面积是:“+c.getArea(r); int num=8; c.draw(num); c.draw(“矩形”); ,通过传递的参数判断调用哪个方法,通过传递的参数判断调用哪个方法,2019
18、/11/30,宋波,李晋,李妙妍,张悦,3.1.8 关键词this,用来指向对象自身 用来访问当前对象的数据成员; 用来访问当前对象的成员方法; 重载构造方法时,用来引用同类的其他构造方法。,2019/11/30,宋波,李晋,李妙妍,张悦,【例3-8】this关键字的使用,public class Fruit String color=“绿色“; double price; int num; public double count(double price, int num) this.price=price; this.num=num; return price*num; ,成员变量,将参数
19、值赋值给成员变量,即指向对象自身。,2019/11/30,宋波,李晋,李妙妍,张悦,3.1.9 类的构造方法,功能:初始化类的成员变量 特点: 名称必须与类名相同 不能有返回值 必须用new自动调用,2019/11/30,宋波,李晋,李妙妍,张悦,【例3-9】在类Apple中定义两个构造方法,public class Apple private int num; private double price; public Apple() num=10; price=2.34; public Apple(int num,double price) this.num=num; this.price=
20、price; public static void main(String args) Apple a1=new Apple(); Apple a2=new Apple(50,3.15) ,参数化构造方法,2019/11/30,宋波,李晋,李妙妍,张悦,2. 缺省构造方法,如果在类定义中无构造函数,在编译时可缺省加入构造方法。如: public Apple( ) ; 一旦在类中有一个自己声明的构造函数,则缺省的构造函数将不被加到源程序中。,2019/11/30,宋波,李晋,李妙妍,张悦,3. 构造方法的重载,功能: 使类对象具有不同的初始值,为对象的初始化提供方便。 可以使用this调用重载的
21、构造方法。,2019/11/30,宋波,李晋,李妙妍,张悦,【例3-10】对类Apple的构造方法进行重载 class Apple private String color; private int num; public Apple(String c, int n) color = c ; num = n; public Apple( String c) this(c,0); ,调用两个参数的构造方法,2019/11/30,宋波,李晋,李妙妍,张悦,class Apple private String color; private int num; public Apple( String
22、c) this(c,0); public Apple( ) this(“Unknown“); ,调用一个参数的构造方法,2019/11/30,宋波,李晋,李妙妍,张悦,class Apple private String color; private int num; public String getColor() return color; public int getNum() return num; ,2019/11/30,宋波,李晋,李妙妍,张悦,public class AppleDemo public static void main(String args) Apple app
23、lee = new Apple(); System.out.println(“苹果颜色: ”+e.getColor(); System.out.println(“苹果数量: ”+e.getNum(); ,调用无参数:this(“Unknown”); 1个参数:this(c,0);2个参数的构造方法,2019/11/30,宋波,李晋,李妙妍,张悦,3.2 隐藏与封装,封装 访问控制 package和import,2019/11/30,宋波,李晋,李妙妍,张悦,3.2.1 封装,封装,是指将对象的数据与操作数据的方法相结合,通过方法将对象的数据与实现细节保护起来。 在类的定义中设置访问对象属性及方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计 Java 程序设计 电子 课件
链接地址:https://www.31doc.com/p-4721252.html