收藏 分销(赏)

JAVA面向对象程序设计类与对象.ppt

上传人:精*** 文档编号:12861771 上传时间:2025-12-18 格式:PPT 页数:42 大小:369.50KB 下载积分:10 金币
下载 相关 举报
JAVA面向对象程序设计类与对象.ppt_第1页
第1页 / 共42页
JAVA面向对象程序设计类与对象.ppt_第2页
第2页 / 共42页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象,(OOD),基本概念,抽象,封装,类,对象,1,抽象,所谓抽象就是舍弃被研究对象中个别的、非本质的、或与研究主题无关的次要特征,而抽取与研究有关的特征,形成对所研究对象正确的、简明扼要的认识。,2,封装,封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据的内部,尽可能隐藏内部细节,只保留一些外部接口使之与外部发生联系。,3,对象,客观世界是由一些具体的事物构成的,每个事物一般都有自己的一组静态特征和动态特征。,把客观世界的这一事实映射到面向对象程序设计中,就把客观事物抽象成为了,对象,(object),。在面向对象程序设计中,对象具有如下特性:,对象标识,静态特征,(,属性,),动态特征,(,方法,),4,类,对象是对具体某个事物的抽象,而类则是对对象的抽象与归纳,即把具有相同特征的一组对象归纳成一,类,。分类所依据的原则就是,抽象,。,5,JAVA,中的类,类是面向对象程序设计,(OOD),的基础,是,Java,的核心和本质所在。在,Java,中,所有的语言元素都必须被封装在类中。,Java,程序是由一个个类定义组成的,编写,Java,程序的过程实际就是从现实世界中抽象出,Java,可实现的类并用合适的语句定义它们的过程,这个定义过程包括对类内各种属性和方法的定义,创建类的对象,也包括类间的各种关系和接口的定义。,JAVA,语言中的类实际包括两种:,系统定义的类,用户自己定义的类,6,系统定义的类,JAVA,系统定义好的类,根据实现的功能的不同,划分为不同的集合,包,,所有的包合称为,类库,。,要在程序中使用某个系统类,必须使用,import,语句引入该类所在的包。,如:,import java.awt.*;,import java.applet.*;,7,用户自定义的类,系统定义的类主要是实现一些常用的基本功能,但是一些具体的问题还是需要用户通过编写自己的类来解决。因此,,JAVA,程序设计的过程实际就是用户把客观世界的问题定义为自己的类来解决的过程。,8,定义一个简单的类,一个简单的类,people,class people,String gender;,float height;,float weight;,注意:类声明只是创建一个模板,(,或类型描述,),,它并不会创建一个实际的对象,因此,上述代码不会生成任何,people,类型的对象实体。,9,创建对象,用前面定义的,people,类创建一个对象,lily,JAVA,中使用,new,关键字创建对象,对象的创建可以使用以下两种方式:,people lily;,lily=,new,people();,people lily=,new,people();,以上语句执行后,,lily,就是,people,的一个对象,(,实例,),;它将具有“存储意义上”的真实性。,10,对象的初始化,所谓对象的初始化就是为这个对象的数据成员赋初值。,lily.gender=“girl”;,lily.height=1.6f;,lily.weight=45.0f;,11,使用对象,当一个对象被创立后,这个对象就拥有了自己的数据成员和方法,我们可以通过引用对象的数据成员来使用对象。,以前面创建的对象,lily,为例:,System.out.println(“lily is a,:”,+llily.gender);,System.out.println(“lily,身高:”,+llily.heght+“m”);,System.out.println(“lily,体重:”,+llily.weight+“kg”);,12,使用对象,对象的数据成员、对象的方法的引用方式如下:,对象名,.,成员名,如,:lily.height;,对象名,.,方法名,(,参数表,),如,:lily.run();,13,类的定义,类的基本定义方法如下:,修饰符,class,类名,extends,父类,implements,接口名,类成员变量声明,类方法声明,14,1,、关于类头,class,class,关键字,在它的后面跟新定义的类的类名。,父类名跟在,extends,关键字后面,用来说明当前类是哪个已经存在类的子类,存在继承关系,继承,是类与类之间的一种非常重要的关系。,15,1,、关于类头,类的修饰符,类的修饰符用于定义对该类的访问级别,通常有,public,、,final,、,abstract,等。,16,1,、关于类头,接口名,接口名跟在,implements,关键字后面,用来说明当前类中实现了哪个接口定义的功能和方法。接口是,Java,语言用来实现多重继承的一种特殊机制,我们将在后面详细介绍它的使用方法。,17,2,、关于类体,类体的定义要包括类的具体内容,包括类的属性与方法。,修饰符,class,类名,extends,父类,implements,接口名,类成员变量声明,类方法声明,18,构造方法,创建对象后,通常要为对象赋初值,即对象的初始化,为简化这一步操作,,JAVA,提供了一种特殊的方法,构造方法,。,19,构造方法实例,class people,float height;,float weight;,people(float aheight,float aweight),height=aheight;,weight=aweight;,public class sample,public static void main(String args),people lily=new people(1.60f,45.0f);,System.out.println(lilys height is:+lily.height+m);,System.out.println(lilys weight is:+lily.weight+kg);,20,构造方法的特点,构造方法的方法名与类名相同。,不能对构造方法指定返回类型,系统指定了隐含返回类型。,构造方法不能由编程人员显式地直接调用。,在创建一个类的新对象的同时,系统会自动调用该类的构造方法为新对象初始化,构造方法总是和,new,运算符一起被调用。,构造方法和普通方法一样,可以被重置,即一个类可以定义多个具有不同参数的构造方法。,一个类可以不定义构造方法,但实际系统会为这个类定义一个缺省的构造方法,这个构造方法没有任何参数和语句。,构造方法可以继承。,21,构造方法的重置实例,class people,float height;,float weight;,String gender;,people(float aheight,float aweight),height=aheight;,weight=aweight;,people(float aheight,float aweight,String agender),height=aheight;,weight=aweight;,gender=agender;,public class gouzao,public static void main(String args),people lily=new people(1.60f,45.0f);,people jack=new people(1.70f,60.0f,boy);,System.out.println(lilys height is:+lily.height+m);,System.out.println(lilys weight is:+lily.weight+kg);,System.out.println(jacks height is:+jack.height+m);,System.out.println(jacks weight is:+jack.weight+kg);,System.out.println(jacks weight is a+jack.gender);,22,构造方法的作用,对象初始化,引入更多的灵活度,(,变量赋值或更复杂的操作,),23,类的修饰符,访问控制,缺省访问控制,public,protected,final,abstract,24,类的修饰符,缺省访问控制,缺省访问控制,(,无修饰符,),,该类只能被同一个包中的类访问和引用,而不可以被其他包中的类使用,这种访问特性又称为,包访问性,。同样类内的变量和方法如果没有访问控制符来限定,也就具有包访问性。,JAVA,规定:,同一个程序文件中的所有类属于一个包。,25,类的修饰符,public,public(,公共的,),,用,public,修饰的类称为,公共类,,公共类不但可以供它同一个包内的类使用,还可供其他包中的类使用。,26,类的修饰符,protected,protected(,受保护的,),,用,protected,修饰的类称为,保护类,,保护类的成员变量可以被三种类所引用:,该类自身、与它在同一个包中的其它类、在其他包中的该类的子类。,使用,protected,修饰符的主要作用是允许其他包中该类的子类来访问父类的特定属性。,27,类的修饰符,final,final(,最终的,),,用,final,修饰的类称为,最终类,,最终类是不能被其他类继承的。,例,:,final class sample,class s1 extends sample,/,错误,,sample,为最终类,不能被继承。,28,类的修饰符,abstract,abstract(,抽象的,),,用,abstract,修饰的类称为,抽象类,声明方法的存在而不去具体实现其功能的类,它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。,实例,不能使用,abstract,类创建对象。,用,abstract,修饰的方法表示抽象方法,抽象方法没有方法体。,抽象类可以没有抽象方法,但有抽象方法的类必须定义为抽象类。,如果一个子类继承一个抽象类,子类又没有实现父类的所有抽象方法,那么子类也要定义为抽象类,否则编译会出错的。,final,和,abstract,不能同时修饰一个类。,例:,final abstract sample,29,JAVA,数据成员,JAVA,中的数据成员即常说的,变量,,为了方便区分,我们将类中描述研究对象静态特征的变量称为,成员变量,,将成员方法中定义的变量称为,局部变量,。,数据成员的声明,:,(,参见第二章,),修饰符,变量类型 变量名,=,变量初值,;,30,数据成员的修饰符,访问控制,public,private,protected,static,final,31,数据成员的修饰符,public,公共的变量。,32,数据成员的修饰符,private,用,private,修饰的属性或方法只能被该类自身所访问和修改,而不能被任何其他类,(,包括该类的子类,),,来获取和引用。,例,:,class s1,private int a;,class sample,s1 o=new s1();,s1.a=10;,/,错误。,33,数据成员的修饰符,protected,protected,成员可以被该类的成员以及其子类的成员访问,它还可以被同一个包内的其他类的成员访问。,34,数据成员的修饰符,static,通常情况下,类的成员必须通过它的类的对象访问,但是可以使用,static,创建一个成员,它能被它自己使用,而不必引用特定的实例。,说明:,声明为,static,的变量为全局变量。,static,变量被保存在类的公共存储单元中,而不是保存在该类某个对象的内存储区中,因此,该类的任何一个对象访问该变量得到的将是相同的值。,例:,class sp,static int n=10;,public class sample,sp.n=sp.n+1;,35,静态初始化器,静态初始化器是由关键字,static,引导的一对大括号括起的语句组。作用是初始化类的静态数据成员。,例:,static int a;,static,a=10;,36,数据成员的修饰符,final,用,final,修饰的数据成员称为,最终数据成员,,其值在整个程序的执行过程中是不能改变的,标识符常量,,最终数据成员可以在申明时进行初始化,也可通过构造方法进行赋值,但不能在程序的其他部分赋值。,37,JAVA,成员方法,JAVA,中的,成员方法,与其他成员设计语言中的,函数,概念相等,也叫成员函数,是具有某种独立功能的程序模块。,JAV,中的方法包括:,系统成员方法,用户自定义成员方法,38,系统类成员方法,如:,public void paint(Graphics g);,System.out.print();,39,方法的声明,Java,中声明方法的语法如下:,修饰符,返回值类型 方法名,(,参数列表,)throws,例外名,1,例外名,2,方法体,:,局部变量声明,;,语句序列,;,JAVA,的成员方法用来规定类属性上的操作,实现类的内部功能的机制,同时也是类与外界进行交互的重要窗口。,40,一个简单的方法实例,求两整数之和:,int add(int a,int b),int c;,c=a+b;,retuen c;,41,方法的修饰符,public,private,protected,final,static,abstract,native,42,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服