《Java程序设计》电子ppt课件模板.pptx
《《Java程序设计》电子ppt课件模板.pptx》由会员分享,可在线阅读,更多相关《《Java程序设计》电子ppt课件模板.pptx(125页珍藏版)》请在三一办公上搜索。
1、Java程序设计电子课件,2019-5-11,1,谢谢观赏,第1篇 核心基础篇,第 3 章 Java面向对象特性,2019-5-11,2,谢谢观赏,本章内容,3.1 类与对象3.2 隐藏和封装3.3 类的继承与多态3.4 数组,2019-5-11,3,谢谢观赏,学习目标,掌握对象与类的基本概念了解对象的生命周期熟练掌握类的定义及实例化理解隐藏与封装熟练掌握类的继承与多态掌握数组的应用,2019-5-11,4,谢谢观赏,本章概要,Java中类和对象的定义;Java对OOP三个主要特性封装、继承和多态的支持机制;Java中的对象数组这种数据结构。,2019-5-11,5,谢谢观赏,3.1 类与对象
2、,类与对象的定义成员变量与局部变量成员方法对象的创建对象的使用对象的消除方法重载this构造方法,2019-5-11,6,谢谢观赏,3.1.1 类和对象的定义,Java程序是由一个或若干个类组成,类是Java程序的基本组成单位,包括:成员变量:描述对象的属性成员方法:描述对象的行为,2019-5-11,7,谢谢观赏,类定义的结构,2019-5-11,8,谢谢观赏,1.类的声明格式,public abstract|final class extends superClassName implements interfaceNameList,类的访问权限及其属性,类定义关键字,类名,继承某个父类的
3、关键字,实现接口的关键字,2019-5-11,9,谢谢观赏,2.类体,构造和初始化新对象的构造方法;表示类及其对象状态的变量;实现类及其对象的方法;进行对象清除的finalize()方法。,2019-5-11,10,谢谢观赏,3.1.2 成员变量与局部变量,成员变量(类):在类体中声明的变量,且不属于任何一个方法时。局部变量:在方法体中声明的变量以及方法的参数则统称为方法的局部变量。,2019-5-11,11,谢谢观赏,【例3-1】成员变量示例,public class Apple public String color;/公共变量color public static int num;/静态
4、变量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(苹果颜色:+apple.color);System.out.println(苹果是否成熟:+apple.MATURE);,num是类变量(即静态变量),可通过类名直接访问,2019-5-11,12,谢谢观赏,2.局部变量,final;,指定局部变量为常量,局部变量的
5、参数类型,局部变量的名称,2019-5-11,13,谢谢观赏,【例3-2】局部变量的使用,public class Apple String color=Red;float price;public String getColor()return color;public float count()int num;if(num0)return 0;else return price*num;,成员变量,错误语句,因为局部变量num还没有被赋值就使用,2019-5-11,14,谢谢观赏,public static void main(String args)Apple apple=new App
6、le();System.out.println(苹果总价钱:+apple.count();,2019-5-11,15,谢谢观赏,概念:指该变量在程序代码中的作用区域,在该区域外不能直接访问变量。生命周期:指从声明一个变量并分配内存空间、使用变量开始,然后释放该变量并清除所占用内存空间的一个过程。,3.变量的有效范围,2019-5-11,16,谢谢观赏,变量的种类:成员变量类体中声明的成员变量在整个类中有效。局部变量在方法内或方法内的复合代码块(方法内部,“”与“”之间的代码)声明的变量。,2019-5-11,17,谢谢观赏,【例3-3】变量的有效范围,public class Olympics
7、1 private int medal_All=800;public void China()int medal_CN=100;if(medal_CN1000)int gold=50;medal_CN+=30;medal_All-=130;,成员变量,代码块外、方法体内的局部变量,代码块的局部变量,允许访问本方法的局部变量,允许访问本类的成员变量,2019-5-11,18,谢谢观赏,3.1.3 成员方法,返回值类型,方法名称,/方法开始标记,/方法结束标记,方法主体,(参数1,参数2,参数n),2019-5-11,19,谢谢观赏,注意:,方法体中定义的局部变量的作用域只在方法内部;如果局部变量
8、的名字和类的成员变量名字相同,则类的成员变量被屏蔽;如果要在方法中使类的成员变量有效,则可以使用this关键字。,2019-5-11,20,谢谢观赏,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
9、(“In changModel:”+“金牌=”+gold+“银牌=”+silver+“铜牌+copper);this.copper=c;/给类成员变量z赋值,2019-5-11,21,谢谢观赏,String getModel()return“金牌=”+gold+“银牌=”+silver+“铜牌=+copper;,2019-5-11,22,谢谢观赏,public static void main(String args)Olympics2 o2=new Olympics2();System.out.println(Before changModel:+o2.getModel();o2.chang
10、eModel(100,100,100);System.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-5-11,23,谢谢观赏,3.1.4 对象的创建,一个对象的生命周期
11、包括三个阶段:对象的创建对象的使用对象的消除,2019-5-11,24,谢谢观赏,创建对象,创建对象,声明,实例化,初始化,类,对象名称,new,构造方法(参数),public class Point int x=1;int y=1;public Point(int x,int y)this.x=x;this.y=y;,/实例化Point类,创建对象ptPoint pt=new Point(2,3);,2019-5-11,25,谢谢观赏,Point pt=new Point(2,3);,2019-5-11,26,谢谢观赏,3.1.5 对象的使用,引用对象的变量objectReference.v
12、ariableName;调用对象的方法objectReference.methodName(argumentList),2019-5-11,27,谢谢观赏,【例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的乘积为:+pt.getXY();pt.setXY(3,2);System.o
13、ut.println(x与y的乘积为:+pt.getXY();,成员变量,成员方法,声明并创建Point类的对象pt,访问对象pt的成员变量x,调用成员方法,2019-5-11,28,谢谢观赏,3.1.6 对象的消除,在C+中,程序员要显式地删除不用的对象,即手动释放对象占用的存储空间。Java提供了垃圾回收(garbage collection)机制:自动判断对象是否还在使用,并自动销毁不再使用的对象,回收对象所占用的资源。,2019-5-11,29,谢谢观赏,Java垃圾回收器执行机制的生命周期,2019-5-11,30,谢谢观赏,3.1.7 方法的重载,在同一个类中定义了多个同名而内容不
14、同的成员方法。classScreen public void print(int i)public void print(float i)public void print(int i,String str),2019-5-11,31,谢谢观赏,方法重载,原则:参数表必须不同:方法参数的个数不同参数类型不同返回类型、修饰符返回类型,2019-5-11,32,谢谢观赏,【例3-7】方法重载的示例,public class Calculate final float PI=3.14159f;public float getArea(float r)return PI*r*r;public floa
15、t 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-5-11,33,谢谢观赏,public static void main(String args)Calculate c=new Calculate();/创建Calculate类的对象float l=20;float w=40;System.out.p
16、rintln(求长为+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-5-11,34,谢谢观赏,3.1.8 关键词this,用来指向对象自身 用来访问当前对象的数据成员;用来访问当前对象的成员方法;重载构造方法时,用来引用同类的其他构造方法。,2019-5-11,35,谢谢观赏,【例3-8】this关键字的使用,public
17、class Fruit String color=绿色;double price;int num;public double count(double price,int num)this.price=price;this.num=num;return price*num;,成员变量,将参数值赋值给成员变量,即指向对象自身。,2019-5-11,36,谢谢观赏,3.1.9 类的构造方法,功能:初始化类的成员变量特点:名称必须与类名相同不能有返回值必须用new自动调用,2019-5-11,37,谢谢观赏,【例3-9】在类Apple中定义两个构造方法,public class Apple priv
18、ate int num;private double price;public Apple()num=10;price=2.34;public Apple(int num,double price)this.num=num;this.price=price;public static void main(String args)Apple a1=new Apple();Apple a2=new Apple(50,3.15),参数化构造方法,2019-5-11,38,谢谢观赏,2.缺省构造方法,如果在类定义中无构造函数,在编译时可缺省加入构造方法。如:public Apple();一旦在类中有一
19、个自己声明的构造函数,则缺省的构造函数将不被加到源程序中。,2019-5-11,39,谢谢观赏,3.构造方法的重载,功能:使类对象具有不同的初始值,为对象的初始化提供方便。可以使用this调用重载的构造方法。,2019-5-11,40,谢谢观赏,【例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-5-11,41,谢谢观赏
20、,class Apple private String color;private int num;public Apple(String c)this(c,0);public Apple()this(Unknown);,调用一个参数的构造方法,2019-5-11,42,谢谢观赏,class Apple private String color;private int num;public String getColor()return color;public int getNum()return num;,2019-5-11,43,谢谢观赏,public class AppleDemo p
21、ublic static void main(String args)Apple applee=new Apple();System.out.println(“苹果颜色:”+e.getColor();System.out.println(“苹果数量:”+e.getNum();,调用无参数:this(“Unknown”);1个参数:this(c,0);2个参数的构造方法,2019-5-11,44,谢谢观赏,3.2 隐藏与封装,封装访问控制package和import,2019-5-11,45,谢谢观赏,3.2.1 封装,封装,是指将对象的数据与操作数据的方法相结合,通过方法将对象的数据与实现细节
22、保护起来。在类的定义中设置访问对象属性及方法的权限,来限制该类对象及其他类的对象的使用范围。提供一个接口来描述其他对象的使用方法。,2019-5-11,46,谢谢观赏,3.2.2 访问控制,私有的以private修饰符指定;保护的以protected修饰符指定;公开的以public修饰符指定;默认的,也称为default或package不使用任何修饰符指定。,2019-5-11,47,谢谢观赏,表3-1:4种访问权限及其含义,可否直接访问 同一个 同一个 不同包中的 任何 控制等级 类中 包中 子类中 场合,private Yes,default Yes Yes,protected Yes Y
23、es Yes,public Yes Yes Yes Yes,2019-5-11,48,谢谢观赏,1.private修饰符,其成员只能在所在类的内部使用,在其他的类中则不允许直接访问。同一个类的不同对象之间可以访问对方的private成员变量和方法;访问控制是在类的级别上,而不是在对象的级别上。,2019-5-11,49,谢谢观赏,非法:无法通过类Parent的对象访问它的私有成员,2019-5-11,50,谢谢观赏,class Parent private int privateVar;public Parent(int p)privateVar=p;boolean isEqualTo(Par
24、ent anotherParent)if(this.privateVar=anotherParent.privateVar)return true;else return false;,当前对象实例的成员变量与方法的参数传递的另一个对象实例的成员变量是否相等?,2019-5-11,51,谢谢观赏,public class PrivateDemo public static void main(String args)Parent p1=new Parent(20);Parent p2=new Parent(40);System.out.println(p1.isEqualTo(p2);,执行结
25、果:false,2019-5-11,52,谢谢观赏,2.default,如果一个类没有显式地设置成员的访问控制级别,则说明它使用的是默认的访问权限,称为default或package。允许被这个类本身,或者相同包中的其它类访问其default成员。构造方法设置为default权限时,则除这个类本身和同一个包中的类以外,其他类均不能生成该类的对象实例。,2019-5-11,53,谢谢观赏,合法:因为Child与Parent在同一个包中,因此有权通过Parent的对象访问它的默认成员,2019-5-11,54,谢谢观赏,3.protected修饰符,允许类本身、它的子类、以及同一个包中其余的类访问
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计 Java 程序设计 电子 ppt 课件 模板
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3876212.html