《Java程序设计》电子课件.ppt
《《Java程序设计》电子课件.ppt》由会员分享,可在线阅读,更多相关《《Java程序设计》电子课件.ppt(148页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JavaJava程序设计程序设计电子课件电子课件宋波,李晋,李妙妍,张悦宋波,李晋,李妙妍,张悦2023/2/4宋波,李晋,李妙妍,张悦第第1篇篇 核心基础篇核心基础篇第第 3 3 章章 JavaJava面向对象特性面向对象特性2023/2/4宋波,李晋,李妙妍,张悦本章内容本章内容3.1 类与对象类与对象3.2 隐藏和封装隐藏和封装3.3 类的继承与多态类的继承与多态3.4 数组数组2023/2/4宋波,李晋,李妙妍,张悦学习目标学习目标1.掌握对象与类的基本概念掌握对象与类的基本概念2.了解对象的生命周期了解对象的生命周期3.熟练掌握类的定义及实例化熟练掌握类的定义及实例化4.理解隐藏与封
2、装理解隐藏与封装5.熟练掌握类的继承与多态熟练掌握类的继承与多态6.掌握数组的应用掌握数组的应用2023/2/4宋波,李晋,李妙妍,张悦本章概要本章概要1.Java中类和对象的定义;中类和对象的定义;2.Java对对OOP三个主要特性三个主要特性封装、封装、继承和多态的支持机制;继承和多态的支持机制;3.Java中的对象数组这种数据结构。中的对象数组这种数据结构。2023/2/4宋波,李晋,李妙妍,张悦本章概要本章概要1.Java中类和对象的定义;中类和对象的定义;2.Java对对OOP三个主要特性三个主要特性封装、封装、继承和多态的支持机制;继承和多态的支持机制;3.Java中的对象数组这种
3、数据结构。中的对象数组这种数据结构。2023/2/4宋波,李晋,李妙妍,张悦3.1 类与对象类与对象1.类与对象的定义类与对象的定义2.成员变量与局部变量成员变量与局部变量3.成员方法成员方法4.对象的创建对象的创建5.对象的使用对象的使用6.对象的消除对象的消除7.方法重载方法重载8.this9.构造方法构造方法2023/2/4宋波,李晋,李妙妍,张悦3.1.1 类和对象的定义类和对象的定义Java程序是由程序是由一个或若干个类一个或若干个类组成,组成,类是类是Java程序的程序的基本组成单位基本组成单位,包,包括:括:成员变量:描述对象的属性成员变量:描述对象的属性成员方法:描述对象的行为
4、成员方法:描述对象的行为2023/2/4宋波,李晋,李妙妍,张悦类定义的结构类定义的结构2023/2/4宋波,李晋,李妙妍,张悦1.类的声明格式类的声明格式publicabstract|finalclassextendssuperClassNameimplementsinterfaceNameList类的访问权限及其属性类的访问权限及其属性类定义关键字类定义关键字类名类名继承某个父类的关键字继承某个父类的关键字 实现接口的关键字实现接口的关键字 2023/2/4宋波,李晋,李妙妍,张悦2.类体类体构造和初始化新对象的构造方法;构造和初始化新对象的构造方法;表示类及其对象状态的变量;表示类及其对
5、象状态的变量;实现类及其对象的方法;实现类及其对象的方法;进行对象清除的进行对象清除的finalize()finalize()方法。方法。2023/2/4宋波,李晋,李妙妍,张悦2.类体类体构造和初始化新对象的构造方法;构造和初始化新对象的构造方法;表示类及其对象状态的变量;表示类及其对象状态的变量;实现类及其对象的方法;实现类及其对象的方法;进行对象清除的进行对象清除的finalize()finalize()方法。方法。2023/2/4宋波,李晋,李妙妍,张悦3.1.2 成员变量与局部变量成员变量与局部变量成员变量(类):成员变量(类):在类体中声明的变量,且不属于任何在类体中声明的变量,且
6、不属于任何一个方法时。一个方法时。局部变量:局部变量:在方法体中声明的变量以及方法的参在方法体中声明的变量以及方法的参数则统称为方法的局部变量。数则统称为方法的局部变量。2023/2/4宋波,李晋,李妙妍,张悦【例3-1】成员变量示例publicclassApplepublicStringcolor;/公共变量colorpublicstaticintnum;/静态变量numpublicfinalbooleanMATURE=true;/常量MATURE并赋值publicstaticvoidmain(Stringargs)System.out.println(苹果数量:+Apple.num);Ap
7、pleapple=newApple();System.out.println(苹果颜色:+apple.color);System.out.println(苹果是否成熟:+apple.MATURE);num是类变量(即静态变量),可通过类名直接访问是类变量(即静态变量),可通过类名直接访问2023/2/4宋波,李晋,李妙妍,张悦2.局部变量局部变量final;指定局部变量为常量指定局部变量为常量局部变量的参数类型局部变量的参数类型局部变量的名称局部变量的名称2023/2/4宋波,李晋,李妙妍,张悦【例例3-2】局部变量的使用局部变量的使用1.publicclassApple2.Stringcol
8、or=Red;3.floatprice;4.publicStringgetColor()5.returncolor;6.7.publicfloatcount()8.intnum;9.if(num0)10.return0;11.else12.returnprice*num;13.成员变量成员变量错误语句,因为局错误语句,因为局部变量部变量num还没有还没有被赋值就使用被赋值就使用2023/2/4宋波,李晋,李妙妍,张悦14.public static void main(String args)15.Apple apple=new Apple();16.System.out.println(苹果
9、总价钱:苹果总价钱:+apple.count();17.18.2023/2/4宋波,李晋,李妙妍,张悦14.public static void main(String args)15.Apple apple=new Apple();16.System.out.println(苹果总价钱:苹果总价钱:+apple.count();17.18.2023/2/4宋波,李晋,李妙妍,张悦概念:概念:指该变量在程序代码中的指该变量在程序代码中的作用区域作用区域,在,在该区域外该区域外不能直接访问不能直接访问变量。变量。生命周期:生命周期:指从声明一个变量并指从声明一个变量并分配内存空间分配内存空间、使
10、使用变量开始用变量开始,然后,然后释放释放该变量并该变量并清除清除所所占用内存空间的一个占用内存空间的一个过程过程。3.变量的有效范围变量的有效范围2023/2/4宋波,李晋,李妙妍,张悦变量的种类:变量的种类:成员变量成员变量类体中声明的成员类体中声明的成员变量在整个类中有效。变量在整个类中有效。局部变量局部变量在方法内或方法内在方法内或方法内的复合代码块的复合代码块(方法内部,方法内部,“”与与“”之间的代码之间的代码)声明的变量。声明的变量。2023/2/4宋波,李晋,李妙妍,张悦【例例3-3】变量的有效范围变量的有效范围 1.publicclassOlympics12.privatei
11、ntmedal_All=800;3.publicvoidChina()4.intmedal_CN=100;5.if(medal_CN1000)6.intgold=50;7.medal_CN+=30;8.medal_All-=130;9.10.11.成员变量成员变量代码块外、方法代码块外、方法体内的局部变量体内的局部变量代码块的局部变量代码块的局部变量允许访问本方法的允许访问本方法的局部变量局部变量允许访问本类的成员变量允许访问本类的成员变量2023/2/4宋波,李晋,李妙妍,张悦3.1.3 成员方法成员方法2023/2/4宋波,李晋,李妙妍,张悦注意:注意:方法体中定义的方法体中定义的局部变量
12、局部变量的作用域只的作用域只在方法内部;在方法内部;如果局部变量的名字和类的成员变量如果局部变量的名字和类的成员变量名字相同,则名字相同,则类的成员变量类的成员变量被屏蔽;被屏蔽;如果要在方法中使类的成员变量有效,如果要在方法中使类的成员变量有效,则可以使用则可以使用this关键字。关键字。2023/2/4宋波,李晋,李妙妍,张悦注意:注意:方法体中定义的方法体中定义的局部变量局部变量的作用域只的作用域只在方法内部;在方法内部;如果局部变量的名字和类的成员变量如果局部变量的名字和类的成员变量名字相同,则名字相同,则类的成员变量类的成员变量被屏蔽;被屏蔽;如果要在方法中使类的成员变量有效,如果要
13、在方法中使类的成员变量有效,则可以使用则可以使用this关键字。关键字。2023/2/4宋波,李晋,李妙妍,张悦publicclassOlympics2privateintgold=0;privateintsilver=0;privateintcopper=0;publicvoidchangeModel(inta,intb,intc)gold=a;/给类的成员变量赋值intsilver=b;/使同名类成员变量silver隐藏intcopper=50;/使同名类成员变量copper隐藏System.out.println(“InchangModel:”+“金牌=”+gold+“银牌=”+silv
14、er+“铜牌+copper);this.copper=c;/给类成员变量z赋值2023/2/4宋波,李晋,李妙妍,张悦StringgetModel()return“金牌=”+gold+“银牌=”+silver+“铜牌=+copper;2023/2/4宋波,李晋,李妙妍,张悦publicstaticvoidmain(Stringargs)Olympics2o2=newOlympics2();System.out.println(BeforechangModel:+o2.getModel();o2.changeModel(100,100,100);System.out.println(Afterc
15、hangeModel:+o2.getModel();BeforchangModel:金牌=0银牌=0铜牌=0gold=100silver=100copper=50InchangModel:金牌=100银牌=100铜牌=50AfterchangModel:金牌=100银牌=0铜牌=100如果在方法中对成员变量的值进行了修改,则这种修改将是永久的。gold=0silver=0copper=02023/2/4宋波,李晋,李妙妍,张悦3.1.4 对象的创建对象的创建一个对象的生命周期包括三个一个对象的生命周期包括三个阶段:阶段:对象的创建对象的创建对象的使用对象的使用对象的消除对象的消除 2023/2
16、/4宋波,李晋,李妙妍,张悦创建对象创建对象public public classclass Point Point int x=1;int x=1;int y=1;int y=1;public Point(int x,int y)public Point(int x,int y)this.x=x;this.x=x;this.y=y;this.y=y;/实例化实例化Point类,创建对象类,创建对象ptPoint pt Point pt=newnew Point(Point(2,32,3););2023/2/4宋波,李晋,李妙妍,张悦创建对象创建对象public public classcla
17、ss Point Point int x=1;int x=1;int y=1;int y=1;public Point(int x,int y)public Point(int x,int y)this.x=x;this.x=x;this.y=y;this.y=y;/实例化实例化Point类,创建对象类,创建对象ptPoint pt Point pt=newnew Point(Point(2,32,3););2023/2/4宋波,李晋,李妙妍,张悦Point pt=new Point(2,3);2023/2/4宋波,李晋,李妙妍,张悦3.1.5 对象的使用对象的使用1.引用对象的变量引用对象的
18、变量objectReference.variableName;2.调用对象的方法调用对象的方法objectReference.methodName(argumentList)2023/2/4宋波,李晋,李妙妍,张悦【例例3-6】对象使用的示例对象使用的示例 1.publicclassPoint2.intx=1;3.inty=1;4.publicvoidsetXY(intx,inty)5.publicintgetXY()6.publicstaticvoidmain(Stringargs)7.Pointpt=newPoint();8.pt.x=2;9.System.out.println(x与y的
19、乘积为:+pt.getXY();10.pt.setXY(3,2);11.System.out.println(x与y的乘积为:+pt.getXY();12.13.成员变量成员变量成员方法成员方法声明并创建声明并创建Point类的对象类的对象pt访问对象访问对象pt的成员变量的成员变量x调用成员方法调用成员方法2023/2/4宋波,李晋,李妙妍,张悦3.1.6 对象的消除对象的消除在在C+中中,程序员要显式地删除不用的对,程序员要显式地删除不用的对象,即手动释放对象占用的存储空间。象,即手动释放对象占用的存储空间。Java提供了垃圾回收提供了垃圾回收(garbage collection)机制机
20、制:自动判断对象是否还在:自动判断对象是否还在使用,并自动销毁不再使用的对象,回收使用,并自动销毁不再使用的对象,回收对象所占用的资源。对象所占用的资源。2023/2/4宋波,李晋,李妙妍,张悦Java垃圾回收器执行机制的生命周期垃圾回收器执行机制的生命周期2023/2/4宋波,李晋,李妙妍,张悦Java垃圾回收器执行机制的生命周期垃圾回收器执行机制的生命周期2023/2/4宋波,李晋,李妙妍,张悦3.1.7 方法的重载方法的重载在同一个类中定义了多个在同一个类中定义了多个同名而内容同名而内容不同不同的成员方法。的成员方法。classScreen public void print(int i
21、)public void print(float i)public void print(int i,String str)2023/2/4宋波,李晋,李妙妍,张悦方法重载方法重载原则:原则:参数表必须不同:参数表必须不同:方法参数的个数不同方法参数的个数不同参数类型不同参数类型不同返回类型、修饰符返回类型、修饰符返回类型返回类型2023/2/4宋波,李晋,李妙妍,张悦【例3-7】方法重载的示例1.publicclassCalculate2.finalfloatPI=3.14159f;3.publicfloatgetArea(floatr)4.returnPI*r*r;5.6.publicfl
22、oatgetArea(floatl,floatw)7.returnl*w;8.9.publicvoiddraw(intnum)10.System.out.println(画+num+个任意形状的图形);11.12.publicvoiddraw(Stringshape)13.System.out.println(画一个+shape);14.方法重载方法重载方法重载方法重载2023/2/4宋波,李晋,李妙妍,张悦15.publicstaticvoidmain(Stringargs)16.Calculatec=newCalculate();/创建Calculate类的对象17.floatl=20;1
23、8.floatw=40;19.System.out.println(求长为+l+宽为+w+的矩形面积是:+c.getArea(l,w);20.floatr=6;21.System.out.println(求半径为+r+的圆形面积是:+c.getArea(r);22.intnum=8;23.c.draw(num);24.c.draw(“矩形”);25.26.通过传递的参数判通过传递的参数判断调用哪个方法断调用哪个方法通过传递的参数判通过传递的参数判断调用哪个方法断调用哪个方法2023/2/4宋波,李晋,李妙妍,张悦3.1.8 关键词关键词this用来指向对象自身用来指向对象自身 用来访问当前对象
24、的数据成员用来访问当前对象的数据成员;用来访问当前对象的成员方法用来访问当前对象的成员方法;重载构造方法时,用来引用同类的重载构造方法时,用来引用同类的其他构造方法。其他构造方法。2023/2/4宋波,李晋,李妙妍,张悦3.1.8 关键词关键词this用来指向对象自身用来指向对象自身 用来访问当前对象的数据成员用来访问当前对象的数据成员;用来访问当前对象的成员方法用来访问当前对象的成员方法;重载构造方法时,用来引用同类的重载构造方法时,用来引用同类的其他构造方法。其他构造方法。2023/2/4宋波,李晋,李妙妍,张悦【例3-8】this关键字的使用1.publicclassFruit2.Str
25、ingcolor=绿色;3.doubleprice;4.intnum;5.14.publicdoublecount(doubleprice,intnum)15.this.price=price;16.this.num=num;17.returnprice*num;18.19.23.成员变量成员变量将参数值赋值给成员变将参数值赋值给成员变量,即指向对象自身。量,即指向对象自身。2023/2/4宋波,李晋,李妙妍,张悦3.1.9 类的构造方法类的构造方法功能:功能:初始化类的成员变量初始化类的成员变量特点:特点:名称必须与类名相同名称必须与类名相同不能有返回值不能有返回值必须用必须用new自动调用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计 Java 程序设计 电子 课件
限制150内