第四章面向对象上精选PPT.ppt
《第四章面向对象上精选PPT.ppt》由会员分享,可在线阅读,更多相关《第四章面向对象上精选PPT.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章面向对象上第四章面向对象上第1页,此课件共40页哦l什么是抽象 l类与对象及其关系 l类中定义的属性(域)与方法(操作)l对象 l构造方法 l类成员属性和方法的其它修饰符l包(Package)主要内容主要内容第2页,此课件共40页哦什么是抽象第3页,此课件共40页哦抽象的定义抽象的定义抽象抽象(abstraction)是从被研究对象中舍弃个别的、非本质的、或与研究主旨无关的次要特征,而抽取与研究有关的共性内容加以考察,形成对研究问题正确的简明扼要的认识。动物动物经过人类抽象用一个叫”动物”的类来概括第4页,此课件共40页哦类与对象及其关系 类类(Class)是普通数据类型的扩展。类中的数
2、据称为成员变量,类中对数据的操作称为成员方法(method)。成员变量反映类的状态和特征,成员方法反映的是类的行为能力。成员变量和成员方法统称为类的成员(member)。与数据类型相似,类只定义数据及对数据操作的模板,它本身并不真正参与程序运行,实际参与程序运行的是类的对象。第5页,此课件共40页哦类与对象及其关系类与对象及其关系 l对象是对客观事物的抽象。l类是对对象的抽象,在语言中是一种抽象的数据类型。l类的定义在Java中可简述为 class 类名 l它们的关系是,对象是类的实例,类是对象的模板。第6页,此课件共40页哦类与对象及其关系类与对象及其关系 对象(Object)是类的实例(i
3、nstance)。对象与类的关系就像变量与数据类型的关系一样。类与对象是密切相关的,没有脱离对象的类,也没有不依赖于类的对象。对象是动态的,当程序运行时,对象获得指定类的一个实例,对象占用内存单元。对象使用完后被销毁,所占用的存储单元被释放。参照以下对应关系来理解对象和类类型int,变量i,值10,int i=10类Student,对象s,实例new Student(),Student s=new Student()第7页,此课件共40页哦类中定义的属性与方法 第8页,此课件共40页哦类中定义的属性(域)与方法(操作)类中定义的属性(域)与方法(操作)类和对象都有属性和操作,属性是事物静态特征
4、的抽象,操作是事物动态特征的抽象。class FighterPlane String name;int missileNum;void fire()if(missileNum0)missileNum-=1;System.out.println(“now fire a missile!”);else System.out.println(“No missile left!”);类的属性或称为“域”类的方法第9页,此课件共40页哦类中的域变量和方法存在以下关系类中的域变量和方法存在以下关系1.类中定义的域变量可以被类中所有的方法所访问。2.方法中的形式参数和定义的局部变量的作用域仅限 于方法,局部
5、变量在使用前必须进行赋值初始化。如果局部变量和类中的属性变量重名,则在方法中 对同名变量改变的是局部变量。3.类中定义的方法可以进行递归调用【例4.2】菲波那契数列第10页,此课件共40页哦public class Fibonaccipublic static int fseq(int n)if(n1)return-1;/进行参数校验 if(n=1|n=2)return 1;else return fseq(n-1)+fseq(n-2);public static void main(String args)System.out.println(fseq(10);第11页,此课件共40页哦对
6、象第12页,此课件共40页哦对象的产生对象的产生 NEW类对象对象的产生使用的代码:new FighterPlane();对象的声明使用的代码:FighterPlane fp;第13页,此课件共40页哦NEW类对象可以声明后立即赋予对象:FighterPlane fp =new FighterPlane()第14页,此课件共40页哦对象内存空间分布对象内存空间分布第15页,此课件共40页哦对象作为参数的特点对象作为参数的特点 普通数据类型作为参数传递是值传递,而对象是引用传递。public class X private static int a;public static void main
7、(String args)modify(a);System.out.println(a);public static void modify(int a)a+;本程序的输出为0,因为a+是对形式参数进行自增,而不是对象属性a进行自增。System.out.println(a);System.out.println(a);System.out.println(a);第16页,此课件共40页哦对象的引用传递举例对象的引用传递举例class IntClass int value;public class RunIntClass public static void modifyValue(IntCl
8、ass s,int val)s.value=val;public static void main(String args)IntClass a=new IntClass();modifyValue(a,8);System.out.println(a.value);a对象s对象是引用传递,当对象作为参数传递时,传递的是对象的地址 第17页,此课件共40页哦class IntClass int value;public class RunIntClass public static IntClass getInstance()/在方法中产生对象 IntClass s=new IntClass()
9、;s.value=8;return s;/引用返回 public static void main(String args)/调用环境中去使用 IntClass a=getInstance();System.out.println(a.value);对象as第18页,此课件共40页哦对象数组对象数组如:定义一个类型为MyClass,可容纳5个MyClass对象引用的对象数组,每个单元的初始值为null数组对象特点及常用方法数组对象特点及常用方法,见前一章。,见前一章。MyClass s=new MyClass5;for(int i=0;is.length;i+)si=new MyClass()
10、;第19页,此课件共40页哦构造方法第20页,此课件共40页哦Java程序中的初始化和清理工作,分别由两个特殊的成员函数来完成,即构造方法和finalize()方法。构造方法主要用于对刚刚创建的对象的成员数据进行初始化。v在类中与类名同名的成员函数叫做构造方法;没有返回值,因为一个类的构造方法返回值应是该类本身;通常声明为公有方法。v当一个新的对象被定义时,其构造函数会被系统自动调用执行。v对象所占的内存空间只用于存放数据成员。构造方法和析构方法构造方法和析构方法第21页,此课件共40页哦如果程序中未声明,则系统自动产生出一个默认形式的构造方法没有参数,不做任何事情。使用构造函数的优点n构造函
11、数由系统自动调用给对象赋初值,不需要显示调用。因此不会遗忘对对象的初始化构造方法和析构方法构造方法和析构方法第22页,此课件共40页哦构造方法构造方法n声明构造方法public class Date2 int year,month,day;public Date2(int y,int m,int d)/声明构造方法 /构造方法与包含它的类同名,构造方法返回该类的一个实例 year=y;month=m;day=d;Date2 aday=new Date2(2006,1,28);第23页,此课件共40页哦构造方法的几点说明构造方法的几点说明n如果一个类没有声明构造方法,则Java会自动为该类生成一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 面向 对象 精选 PPT
限制150内