JAVA面向对象程序设计类与对象_第1页
JAVA面向对象程序设计类与对象_第2页
JAVA面向对象程序设计类与对象_第3页
JAVA面向对象程序设计类与对象_第4页
JAVA面向对象程序设计类与对象_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象(OOD)根本概念抽象封装类对象1.抽象所谓抽象就是舍弃被研究对象中个别的、非本质的、或与研究主题无关的次要特征,而抽取与研究有关的特征,形成对所研究对象正确的、简明扼要的认识。2.封装封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据的内部,尽可能隐藏内部细节,只保存一些外部接口使之与外部发生联系。3.对象客观世界是由一些具体的事物构成的,每个事物一般都有自己的一组静态特征和动态特征。把客观世界的这一事实映射到面向对象程序设计中,就把客观事物抽象成为了对象(object)。在面向对象程序设计中,对象具有如下特性:对象标识静态特征(属性)动态特征(方法)4.类对象是对具体某个事物的抽象,而类那么是对对象的抽象与归纳,即把具有相同特征的一组对象归纳成一类。分类所依据的原那么就是抽象。5.JAVA中的类类是面向对象程序设计(OOD)的根底,是Java的核心和本质所在。在Java中,所有的语言元素都必须被封装在类中。Java程序是由一个个类定义组成的,编写Java程序的过程实际就是从现实世界中抽象出Java可实现的类并用适宜的语句定义它们的过程,这个定义过程包括对类内各种属性和方法的定义,创立类的对象,也包括类间的各种关系和接口的定义。JAVA语言中的类实际包括两种:系统定义的类用户自己定义的类6.系统定义的类JAVA系统定义好的类,根据实现的功能的不同,划分为不同的集合—包,所有的包合称为类库。要在程序中使用某个系统类,必须使用import语句引入该类所在的包。如:importjava.awt.*;importjava.applet.*;7.用户自定义的类系统定义的类主要是实现一些常用的根本功能,但是一些具体的问题还是需要用户通过编写自己的类来解决。因此,JAVA程序设计的过程实际就是用户把客观世界的问题定义为自己的类来解决的过程。8.定义一个简单的类一个简单的类peopleclasspeople{ Stringgender;floatheight; floatweight;}注意:类声明只是创立一个模板(或类型描述),它并不会创立一个实际的对象,因此,上述代码不会生成任何people类型的对象实体。9.创立对象用前面定义的people类创立一个对象lilyJAVA中使用new关键字创立对象,对象的创立可以使用以下两种方式:peoplelily;lily=newpeople();peoplelily=newpeople();以上语句执行后,lily就是people的一个对象(实例);它将具有“存储意义上〞的真实性。10.对象的初始化所谓对象的初始化就是为这个对象的数据成员赋初值。lily.gender=“girl〞;lily.height=1.6f;lily.weight=45.0f;11.使用对象当一个对象被创立后,这个对象就拥有了自己的数据成员和方法,我们可以通过引用对象的数据成员来使用对象。以前面创立的对象lily为例:System.out.println(“lilyisa:〞+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、关于类头—classclass关键字,在它的后面跟新定义的类的类名。父类名跟在extends关键字后面,用来说明当前类是哪个已经存在类的子类,存在继承关系—继承是类与类之间的一种非常重要的关系。15.1、关于类头—类的修饰符类的修饰符用于定义对该类的访问级别,通常有public、final、abstract等。16.1、关于类头—接口名接口名跟在implements关键字后面,用来说明当前类中实现了哪个接口定义的功能和方法。接口是Java语言用来实现多重继承的一种特殊机制,我们将在后面详细介绍它的使用方法。17.2、关于类体类体的定义要包括类的具体内容,包括类的属性与方法。[修饰符]class类名[extends父类][implements接口名]{

类成员变量声明类方法声明

}18.构造方法创立对象后,通常要为对象赋初值—即对象的初始化,为简化这一步操作,JAVA提供了一种特殊的方法—构造方法。19.构造方法实例classpeople{floatheight;floatweight;

people(floataheight,floataweight){height=aheight;weight=aweight;}}publicclasssample{publicstaticvoidmain(Stringargs[]){peoplelily=newpeople(1.60f,45.0f);System.out.println("lily'sheightis:"+lily.height+"m");System.out.println("lily'sweightis:"+lily.weight+"kg");}}20.构造方法的特点构造方法的方法名与类名相同。不能对构造方法指定返回类型,系统指定了隐含返回类型。构造方法不能由编程人员显式地直接调用。在创立一个类的新对象的同时,系统会自动调用该类的构造方法为新对象初始化,构造方法总是和new运算符一起被调用。构造方法和普通方法一样,可以被重置—即一个类可以定义多个具有不同参数的构造方法。一个类可以不定义构造方法,但实际系统会为这个类定义一个缺省的构造方法,这个构造方法没有任何参数和语句。构造方法可以继承。21.构造方法的重置实例classpeople{floatheight;floatweight;Stringgender;

people(floataheight,floataweight){height=aheight;weight=aweight;}people(floataheight,floataweight,Stringagender){height=aheight;weight=aweight;gender=agender;}}publicclassgouzao{publicstaticvoidmain(Stringargs[]){peoplelily=newpeople(1.60f,45.0f);peoplejack=newpeople(1.70f,60.0f,"boy");System.out.println("lily'sheightis:"+lily.height+"m");System.out.println("lily'sweightis:"+lily.weight+"kg");System.out.println("jack'sheightis:"+jack.height+"m");System.out.println("jack'sweightis:"+jack.weight+"kg");System.out.println("jack'sweightisa"+jack.gender);}}22.构造方法的作用对象初始化引入更多的灵活度(变量赋值或更复杂的操作)23.类的修饰符—访问控制缺省访问控制publicprotectedfinalabstract24.类的修饰符—缺省访问控制缺省访问控制(无修饰符),该类只能被同一个包中的类访问和引用,而不可以被其他包中的类使用,这种访问特性又称为包访问性。同样类内的变量和方法如果没有访问控制符来限定,也就具有包访问性。JAVA规定:同一个程序文件中的所有类属于一个包。25.类的修饰符—publicpublic(公共的),用public修饰的类称为公共类,公共类不但可以供它同一个包内的类使用,还可供其他包中的类使用。26.类的修饰符—protectedprotected(受保护的),用protected修饰的类称为保护类,保护类的成员变量可以被三种类所引用:该类自身、与它在同一个包中的其它类、在其他包中的该类的子类。使用protected修饰符的主要作用是允许其他包中该类的子类来访问父类的特定属性。27.类的修饰符—finalfinal(最终的),用final修饰的类称为最终类,最终类是不能被其他类继承的。例:finalclasssample{……}classs1extendssample//错误,sample为最终类,不能被继承。{……}×28.类的修饰符—abstractabstract(抽象的),用abstract修饰的类称为抽象类—声明方法的存在而不去具体实现其功能的类,它用于要创立一个表达某些根本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。[实例]不能使用abstract类创立对象。用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象类可以没有抽象方法,但有抽象方法的类必须定义为抽象类。如果一个子类继承一个抽象类,子类又没有实现父类的所有抽象方法,那么子类也要定义为抽象类,否那么编译会出错的。final和abstract不能同时修饰一个类。例:finalabstractsample{……}×29.JAVA数据成员JAVA中的数据成员即常说的变量,为了方便区分,我们将类中描述研究对象静态特征的变量称为成员变量,将成员方法中定义的变量称为局部变量。数据成员的声明:(参见第二章)[修饰符]变量类型变量名[=变量初值];30.数据成员的修饰符—访问控制publicprivateprotectedstaticfinal31.数据成员的修饰符—public公共的变量。32.数据成员的修饰符—private用private修饰的属性或方法只能被该类自身所访问和修改,而不能被任何其他类(包括该类的子类),来获取和引用。例:classs1{privateinta;}classsample{……s1o=news1();s1.a=10;//错误。

……}×33.数据成员的修饰符—protectedprotected成员可以被该类的成员以及其子类的成员访问,它还可以被同一个包内的其他类的成员访问。34.数据成员的修饰符—static通常情况下,类的成员必须通过它的类的对象访问,但是可以使用static创立一个成员,它能被它自己使用,而不必引用特定的实例。说明:声明为static的变量为全局变量。static变量被保存在类的公共存储单元中,而不是保存在该类某个对象的内存储区中,因此,该类的任何一个对象访问该变量得到的将是相同的值。例:classsp{staticintn=10;}publicclasssample{……

sp.n=sp.n+1;……}35.静态初始化器静态初始化器是由关键字static引导的一对大括号括起的语句组。作用是初始化类的静态数据成员。例:staticinta;static{a=10;}36.数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论