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

下载本文档

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

文档简介

1、.,1,面向对象(OOD)基本概念,抽象 封装 类 对象,.,2,抽象,所谓抽象就是舍弃被研究对象中个别的、非本质的、或与研究主题无关的次要特征,而抽取与研究有关的特征,形成对所研究对象正确的、简明扼要的认识。,.,3,封装,封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据的内部,尽可能隐藏内部细节,只保留一些外部接口使之与外部发生联系。,.,4,对象,客观世界是由一些具体的事物构成的,每个事物一般都有自己的一组静态特征和动态特征。 把客观世界的这一事实映射到面向对象程序设计中,就把客观事物抽象成为了对象(objec

2、t)。在面向对象程序设计中,对象具有如下特性: 对象标识 静态特征(属性) 动态特征(方法),.,5,类,对象是对具体某个事物的抽象,而类则是对对象的抽象与归纳,即把具有相同特征的一组对象归纳成一类。分类所依据的原则就是抽象。,.,6,JAVA中的类,类是面向对象程序设计(OOD)的基础,是Java的核心和本质所在。在Java中,所有的语言元素都必须被封装在类中。 Java程序是由一个个类定义组成的,编写Java程序的过程实际就是从现实世界中抽象出Java可实现的类并用合适的语句定义它们的过程,这个定义过程包括对类内各种属性和方法的定义,创建类的对象,也包括类间的各种关系和接口的定义。 JAV

3、A语言中的类实际包括两种: 系统定义的类 用户自己定义的类,.,7,系统定义的类,JAVA系统定义好的类,根据实现的功能的不同,划分为不同的集合包,所有的包合称为类库。 要在程序中使用某个系统类,必须使用import语句引入该类所在的包。 如:import java.awt.*; import java.applet.*;,.,8,用户自定义的类,系统定义的类主要是实现一些常用的基本功能,但是一些具体的问题还是需要用户通过编写自己的类来解决。因此,JAVA程序设计的过程实际就是用户把客观世界的问题定义为自己的类来解决的过程。,.,9,定义一个简单的类,一个简单的类people class pe

4、ople String gender; float height; float weight; 注意:类声明只是创建一个模板(或类型描述),它并不会创建一个实际的对象,因此,上述代码不会生成任何people类型的对象实体。,.,10,创建对象,用前面定义的people类创建一个对象lily JAVA中使用new关键字创建对象,对象的创建可以使用以下两种方式: people lily; lily=new people(); people lily=new people(); 以上语句执行后,lily就是people的一个对象(实例);它将具有“存储意义上”的真实性。,.,11,对象的初始化,所谓

5、对象的初始化就是为这个对象的数据成员赋初值。,lily.gender=“girl”; lily.height=1.6f; lily.weight=45.0f;,.,12,使用对象,当一个对象被创立后,这个对象就拥有了自己的数据成员和方法,我们可以通过引用对象的数据成员来使用对象。,以前面创建的对象lily为例: System.out.println(“lily is a :”+llily.gender); System.out.println(“lily身高:”+llily.heght+“m”); System.out.println(“lily体重:”+llily.weight+“kg”);

6、,.,13,使用对象,对象的数据成员、对象的方法的引用方式如下:,对象名.成员名 如:lily.height; 对象名.方法名(参数表) 如:lily.run();,.,14,类的定义,类的基本定义方法如下:,修饰符 class 类名 extends 父类 implements 接口名 类成员变量声明 类方法声明 ,.,15,1、关于类头class,class关键字,在它的后面跟新定义的类的类名。 父类名跟在extends关键字后面,用来说明当前类是哪个已经存在类的子类,存在继承关系继承是类与类之间的一种非常重要的关系。,.,16,1、关于类头类的修饰符,类的修饰符用于定义对该类的访问级别,通

7、常有public、final、abstract等。,.,17,1、关于类头接口名,接口名跟在implements关键字后面,用来说明当前类中实现了哪个接口定义的功能和方法。接口是Java语言用来实现多重继承的一种特殊机制,我们将在后面详细介绍它的使用方法。,.,18,2、关于类体,类体的定义要包括类的具体内容,包括类的属性与方法。,修饰符 class 类名 extends 父类 implements 接口名 类成员变量声明 类方法声明 ,.,19,构造方法,创建对象后,通常要为对象赋初值即对象的初始化,为简化这一步操作,JAVA提供了一种特殊的方法构造方法。,.,20,构造方法实例,class

8、 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

9、); ,.,21,构造方法的特点,构造方法的方法名与类名相同。 不能对构造方法指定返回类型,系统指定了隐含返回类型。 构造方法不能由编程人员显式地直接调用。 在创建一个类的新对象的同时,系统会自动调用该类的构造方法为新对象初始化,构造方法总是和new运算符一起被调用。 构造方法和普通方法一样,可以被重置即一个类可以定义多个具有不同参数的构造方法。 一个类可以不定义构造方法,但实际系统会为这个类定义一个缺省的构造方法,这个构造方法没有任何参数和语句。 构造方法可以继承。,.,22,构造方法的重置实例,class people float height; float weight; String

10、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

11、.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); ,.,23,构造方法的作用,对象初始化 引入更多的灵活度

12、(变量赋值或更复杂的操作),.,24,类的修饰符访问控制,缺省访问控制 public protected final abstract,.,25,类的修饰符缺省访问控制,缺省访问控制(无修饰符),该类只能被同一个包中的类访问和引用,而不可以被其他包中的类使用,这种访问特性又称为包访问性。同样类内的变量和方法如果没有访问控制符来限定,也就具有包访问性。 JAVA规定:同一个程序文件中的所有类属于一个包。,.,26,类的修饰符public,ublic(公共的),用public修饰的类称为公共类,公共类不但可以供它同一个包内的类使用,还可供其他包中的类使用。,.,27,类的修饰符protected,

13、rotected(受保护的),用protected修饰的类称为保护类,保护类的成员变量可以被三种类所引用:该类自身、与它在同一个包中的其它类、在其他包中的该类的子类。使用protected修饰符的主要作用是允许其他包中该类的子类来访问父类的特定属性。,.,28,类的修饰符final,final(最终的),用final修饰的类称为最终类,最终类是不能被其他类继承的。,.,29,类的修饰符abstract,abstract(抽象的),用abstract修饰的类称为抽象类声明方法的存在而不去具体实现其功能的类,它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。实例

14、 不能使用abstract类创建对象。 用abstract修饰的方法表示抽象方法,抽象方法没有方法体。 抽象类可以没有抽象方法,但有抽象方法的类必须定义为抽象类。 如果一个子类继承一个抽象类,子类又没有实现父类的所有抽象方法,那么子类也要定义为抽象类,否则编译会出错的。 final和abstract不能同时修饰一个类。,.,30,JAVA数据成员,JAVA中的数据成员即常说的变量,为了方便区分,我们将类中描述研究对象静态特征的变量称为成员变量,将成员方法中定义的变量称为局部变量。 数据成员的声明:(参见第二章),修饰符 变量类型 变量名=变量初值;,.,31,数据成员的修饰符访问控制,publ

15、ic private protected static final,.,32,数据成员的修饰符public,公共的变量。,.,33,数据成员的修饰符private,用private修饰的属性或方法只能被该类自身所访问和修改,而不能被任何其他类(包括该类的子类),来获取和引用。,.,34,数据成员的修饰符protected,rotected成员可以被该类的成员以及其子类的成员访问,它还可以被同一个包内的其他类的成员访问。,.,35,数据成员的修饰符static,通常情况下,类的成员必须通过它的类的对象访问,但是可以使用static创建一个成员,它能被它自己使用,而不必引用特定的实例。 说明: 声

16、明为static的变量为全局变量。 static变量被保存在类的公共存储单元中,而不是保存在该类某个对象的内存储区中,因此,该类的任何一个对象访问该变量得到的将是相同的值。,例: class sp static int n=10; public class sample sp.n=sp.n+1; ,.,36,静态初始化器,静态初始化器是由关键字static引导的一对大括号括起的语句组。作用是初始化类的静态数据成员。,例: static int a; static a=10;,.,37,数据成员的修饰符final,用final修饰的数据成员称为最终数据成员,其值在整个程序的执行过程中是不能改变的标识符常量,最终数据成员可以在申明时进行初始化,也可通过构造方法进行赋值,但不能在程序的其他部分赋值。,.,38,JAVA成员方法,JAVA中的成员方法与其他成员设计语言中的函数概念相等,也叫成员函数,是具有某种独立功能的程序模块。 JAV中的方法包括: 系统成员方法 用户自定义成员方法,.,39,系统类成员方法,如: public void paint(Graphics g); System.out.print();,.,40,方法的

温馨提示

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

评论

0/150

提交评论