面向对象的程序设计与Java.ppt
《面向对象的程序设计与Java.ppt》由会员分享,可在线阅读,更多相关《面向对象的程序设计与Java.ppt(58页珍藏版)》请在三一办公上搜索。
1、面向对象的程序设计与Java第4章 Java类,姓 名:武 装学 校:首都经济贸易大学院 系:信息学院邮 箱:,在日常生活中,在盖房子之前要首先设计一个建筑图纸,然后根据图纸来盖房子。所谓类,好比在日常生活中描述一个物品的信息,如房子的建筑图纸。而对象就好比实实在在的房子。所谓面向对象,是指编写程序的时候要围绕着一个对象的功能进行编写的。面向对象编程的缩写是OOP,全称为Object Oriented Programming。在进行面向对象的编程时,方法和成员变量都写在具体的对象里,并对其成员变量和方法有很好的隐藏性。对象之间的访问都是通过其接口进行的。,面向对象编程与面向过程编程的区别,面向
2、过程是指在遇到问题的时候,怎么去解决这个问题,而分析问题的步骤,就是解决这个问题的方法,是通过方法一步一步来完成的。,面向对象是指在遇到问题的时候,把问题分解成各自独立功能的类,而这个类是完成各自问题的。,面向过程和面向对象最明显的区别就是,面向对象是按照要完成的功能来实现的;而面向过程是按照解决这个问题的步骤来实现的。面向对象是按照程序中的功能进行划分的。面向过程是按照问题的解决思路来划分的,是一步一步来解决问题的。面向过程更看重的是完成问题的过程。面向对象更看重的是功能,通过各种功能模块的组合来完成问题。,什么是类所谓类是一种抽象的东西,描述的是一个物品的完整信息。比如房子和图纸的关系。在
3、Java里,图纸就是类,定义了房子的各种信息,而房子是类的实体。类的定义和对象的创建定义一个类表示定义了一个功能模块。下面先介绍如何定义一个类,以及如何创建这个类的实例,即对象。类是通过关键字class来定义的,在class关键字后面加上类的名称,这样就创建了一个类。在类里面可以定义类的成员变量和方法。类的语法代码如下所示。class 类的名称/类的成员变量/类的方法创建类的实例是通过new关键字来定义的,后面加上定义类时为类起的名称,需要注意的是在类名后还需要一个括号。创建类的实例的代码如下所示。new 类的名称();,如何使用现有类在定义一些类的时候,如何使用它们呢?这里需要分为多种情况。
4、定义的类可以在一个包下面,也可以不在一个包下面,这在使用时是不同的。类又分为已有类和自定义类,它们之间的使用也是有区别的。下面就通过范例来讲解在不同情况下如何使用类。【范例】在同目录下使用类。首先是定义一个bike类,在该类中不存在任何成员变量和方法,这里只是演示如何在同一目录下使用类。示例代码01/bike.java02 class bike03 04,接下来定义一个使用bike类的类。01/testBike.java02/在testBike类里使用了bike类03 class testBike04 05 bike b=new bike();06,类设计的技巧设计一个类要明确这个所要完成的功
5、能,类里的成员变量和方法是描述类的功能的。如果定义了和这个类不相关的成员变量和方法将不是一个良好的设计。【范例】示例代码是一个不太好的类设计。示例代码01public class bike0203/这个成员变量描述的是自行车的颜色.04String color=黄色;0506/这个成员变量描述的是公路赛车的颜色,所以在这里不太合适07String racing_color=绿色;在本程序中定义了一个表示自行车颜色的color成员变量,又定义了一个表示赛车颜色的racing_color成员变量;而该程序是定义的一个bike自行车类,所以定义表示赛车颜色的racing_color成员变量是不太好的
6、选择。,【范例】以下示例代码是一个良好的类设计。示例代码01public class bike0203/这个成员变量描述的是自行车的颜色04String color=黄色;0501public class racing0203/这个成员变量描述的是公路赛车的颜色04String racing_color=绿色;05【代码解析】在该范例中,定义了两个类。其中bike类中只定义了一个表示自行车颜色的color成员变量。同样在racing类中只定义了一个表示赛车颜色的racing_color成员变量。这种设计相对上一个范例中的设计要好得多,这样使类和成员变量相对应,也使别人更容易读懂代码。,所谓成员
7、变量就是这个类里定义的一些私有的变量.,这些变量是属于这个类的。就好比日常生活中的自行车的大小,即这个车子是26还是28的,这个尺寸就是自行车的成员变量,是描述这个自行车的。下面开始介绍成员变量。,成员变量描述的是这个类的一些属性或状态的,下面通过代码来演示怎么定义成员变量。语法为:变量的类型 变量的名称。【范例】创建成员变量的一般形式。示例代码01/bike类描述的是一个自行车02public class bike0304/这个成员变量描述的是自行车的颜色.05String color;0607/这个成员变量描述的是自行车的大小,即尺寸.08String size;09在该程序中,定义了一个
8、叫做bike的类,在该类中定义了两个成员变量,一个是表示自行车颜色的color成员变量,一个是表示自行车型号的size成员变量。,4.1 引用类型,Java数据类型分为基本类型和复合类型(引用类型),复合类型变量里存储的并不是复合类型数据(即对象)本身,而是指向复合类型数据的引用(引用值)。,类可以看作软件部件,一个Java程序就是由这些所谓的软件部件组成的。可以说,编写Java程序就是一个定义类的过程。,4.1 引用类型,这里x1和x2是两个基本型变量,r1和r2是两个复合型变量,即引用型变量。变量r1只是存储着一个指向该矩形实例的引用,把变量r1的值赋给变量r2,这样r1和r2就有相同的引
9、用值,即它们指向同一个对象。,4.2 类的定义与对象的创建,类定义的内容主要包括成员变量定义和成员方法定义两部分。成员变量的定义体现了对这类对象属性的抽象;而成员方法(简称方法)的定义则体现了对这类对象的行为的抽象。所有成员变量和方法的定义都包含在一对花括号内。类定义的一般格式如下:修饰符class类名 成员变量定义构造方法静态初始化块方法定义在类定义中,除了需要对成员变量和方法进行定义之外,还可以包括构造方法和静态初始化块。构造方法主要用于在创建类实例时初始化实例变量;静态初始化块主要用于在类装入时初始化类变量。,4.2 类的定义与对象的创建,用于说明类属性的修饰符包括:public、abs
10、tract、final。这3个修饰符的含义分别如下:public:用该修饰符说明的类可以被用于任何Java程序中,即任何包中的任何类都可以访问它,所以也称为公共类。没有用该修饰符说明的类只能被同一包中的类访问。abstract:用该修饰符说明的类称为抽象类。抽象类往往包含一个或几个没有实现的抽象方法,所以不能够创建实例。抽象类一般要被扩展产生子类。如果子类被声明为非抽象的,那么在其中就必须实现超类中声明的所有抽象方法。final:用该修饰符说明的类也称为最终类。final类不能被扩展,不会有子类。final类中的所有方法都隐含为final的。一个类不能同时用abstract和final修饰。一
11、个类用多个修饰符说明时,这些修饰符的次序无关紧要。比如,public、final和public的作用完全相同。,4.3 变量,在Java语言中,变量分为局部变量和成员变量两大类。,成员变量是指在类体中但在方法体外定义的量。其作用域是整个类。成员变量又分为实例变量和类变量。,局部变量是指在方法体内声明的变量,其作用域是从声明处开始至它所在的块语句结束。另外,方法中的形参,for句中定义的循环变量也都属于局部变量。,4.3 变量,局部变量的创建和初始化局部变量描述的是方法体的一些属性或状态的,下面通过代码来演示怎么定义局部变量。创建局部变量的基本语法为:变量的类型 变量的名称。【范例】演示局部变量
12、的例子。示例代码01/test类描述的是基本类型的初始化02public class test40304/程序的运行函数即主入口函数05public static void main(String args)0607/基本类型的局部变量08int size=123;09boolean b=true;10/打印并显示局部变量11System.out.println(size);12System.out.println(b);1314,4.3 变量,局部变量和成员变量的区别:局部变量描述的是这个方法体内的属性的,而成员变量描述的是这个对象里的属性的,它们之间的区别,即访问区别如下:成员变量可以被p
13、ublic、protected、default、private、static、final修饰符修饰。局部变量可以被final修饰符修饰,但不能修饰为public、protected、default、private、static。成员变量是系统默认值。局部变量没有系统默认值,必须手动赋值。,4.3 变量,4.3.1 变量的定义所有变量在使用之前都要明确进行定义。变量定义的格式如下:修饰符.类型名变量名=初始化表达式,变量名.=初始化表达式.;,用于说明变量属性的修饰符包括static、final、transient、volatile、public、private、protected。除了fina
14、l可以修饰局部变量,其他修饰符只能用于修饰类的成员变量。,4.3 变量,static:被static修饰的成员变量称为类变量(或静态变量),而没有被static修饰的成员变量称为实例变量。类变量在类装入时建立并初始化。类变量属于类,不管基于类创建多少个实例(或没有实例),类变量在内存中只保持一份。实例变量属于实例,在实例创建时建立和初始化。每一个实例都会在内存中保持一份属于自己的实例变量。,4.3 变量,final:用final修饰的变量(局部变量或成员变量)通常被称为有名常量。与普通变量不同,有名常量必须赋值且只能赋值一次。之后,有名常量的值就不能再被修改。可以在定义有名常量时包含一个初始化
15、表达式。修饰符final既可以修饰实例变量,也可以修饰类变量;既可以修饰成员变量,也可以修饰局部变量。final最常见的情况是用于修饰一个公共的类变量。比如,在类中定义了这样一个有名常量:这样的有名常量如果是定义在一个公共类中,那么就可以在任何代码中通过类名访问它,如Math.PI。有名常量的名字一般用大写来表示。,4.3 变量,transient:暂时性变量,用于对象存档。volatile:共享变量,用于并发线程的共享。告诉Java编译器该变量的值可能会被当前线程序外的其他线程改变。,4.3 变量,4.3.2 变量的初始化实例变量属于实例,当创建类的一个实例时,系统就会在内存建立和初始化属于
16、该实例的实例变量;类变量属于类。在需要时,系统会自动装入类并建立和初始化类变量。无论是实例变量还是类变量,在建立时,系统都会首先自动赋以一个默认的初始值。不同类型的成员变量会有不同的默认初始值。,数值型变量的默认初始值是零;字符型变量的默认初始值是unicode码为零的空字符;布尔型变量的默认初始值是false;引用型变量的默认初始值是null。null是一个具有任何引用类型的特殊文字,但null引用不涉及任何对象。,4.3 变量,类变量的初始化也可以通过静态初始化块来进行。静态初始化块是一个块语句代码放置在一对大括号内,大括号前用关键字static修饰:static.静态初始化块不是方法,它
17、的作用只是用来初始化类变量。静态初始化块内不能出现return语句,也不能以任何方式引用this和super,否则将导致编译错误。,4.3 变量,局部变量在方法体内定义,在方法每次被调用时建立,在方法执行完后释放。局部变量作用域是从定义处开始至它所在的块语句结束。与类的成员变量不同,局部变量在建立时,系统不会赋以一个默认的初始值,所以在引用局部变量的值之前,要对局部变量进行显式初始化或赋值。,4.3 变量,对成员变量的访问1.对实例变量的访问,实例变量是类的实例的属性,实例变量的值表达了一个实例的状态。每个实例都会有自己的一份实例变量。,实例变量属于类的实例。在某个其他类中要访问一个类内定义的
18、实例变量,要通过这个类的某个实例进行。也就是说,要访问的一定是某个实例的实例变量值。离开了实例,实例变量是不存在的。,4.3 变量,在类体外访问实例变量的格式是:.在类体内访问实例变量,也可以采用以下格式,其中关键字this指的是当前实例或当前调用方法的实例:this.在一个类内,不能有同名的成员变量。在相同作用域内,也不应该有同名的局部变量。但局部变量与成员变量可以同名。此时,简单地使用变量名将引用局部变量。如果要引用成员变量,则应该采用上述格式,即在变量名之前加this,两者之间用点(.)连接。,4.3 变量,2.对类变量的访问类变量属于类。不管是否存在类的实例,都可以通过类名访问类中定义
19、的类变量,即:.如果在类体内,则可简单地用变量名加以引用:类变量虽然属于类,但也能被类的所有实例所共享。,4.4 方法,方法每个人都有走、吃和睡等动作。在Java中,所谓方法就好比日常生活中的一个动作,是完成一系列操作的。在Java中也是如此,方法收到对象的信息,进行处理的操作。对象具有状态和行为两种属性:变量用来描述对象的状态;而方法则用来描述对象的行为,通过调用对象方法,可以返回对象的状态,改变对象的状态,或者与其他对象发生相互作用。,4.4 方法,方法定义方法定义的格式如下:修饰符.返回类型方法名(形参表)方法体方法的创建和参数方法的参数是提供外界在执行方法的时候提供给方法的特殊描述信息
20、的,好比日常生活中的,“用力砸东西”,“用大力砸东西”。而这个“用大力”就是提供给这个进行特殊描述的。方法的定义如下所示。public void add(int i,int n)System.out.println(i+n);代码说明:方法名称为add,有两个参数都是int类型的。方法体是打印i+n的值,并显示出来。方法的修饰符为public类型的,修饰符可有可无。,4.4 方法,方法的返回类型有很多种,主要分为如下几类:方法返回值为void类型时为无返回值。方法返回值还可以为任意的类型,如String、Boolean、int。如果定义了方法的返回类型就必须在方法体内用return把返回值进行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 Java

链接地址:https://www.31ppt.com/p-6034394.html