Java语言学习教程.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Java语言学习教程.pptx》由会员分享,可在线阅读,更多相关《Java语言学习教程.pptx(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 类与对象类与对象第1页/共26页面向对象的概念面向对象的概念n面向过程面向过程 在一个结构体中定义窗口的大小,位置,颜色,背景等属性,对窗口在一个结构体中定义窗口的大小,位置,颜色,背景等属性,对窗口进行操作的函数与窗口本身的定义没有任何关系,如进行操作的函数与窗口本身的定义没有任何关系,如HideWindow,MoveWindow,MinimizeWindow,这些函数都需要接受一个代表要这些函数都需要接受一个代表要被操作的窗口参数被操作的窗口参数。n面向对象面向对象 定义窗口时,除了要指定在面向过程中规定的那些属性,如大小,位定义窗口时,除了要指定在面向过程中规定的那些属性,
2、如大小,位置,颜色,背景等外,还要指定该窗口可能具有的动作置,颜色,背景等外,还要指定该窗口可能具有的动作,如隐藏,移,如隐藏,移动,最小化等。这些函数被调用时,都是以某个窗口要隐藏,某个窗动,最小化等。这些函数被调用时,都是以某个窗口要隐藏,某个窗口要移动的语法格式来使用的口要移动的语法格式来使用的,这是一种主语与谓语的关系。,这是一种主语与谓语的关系。n面向对象的三大特征面向对象的三大特征封装封装 (Encapsulation)继承继承 (Inheritance)多态多态 (Polymorphism)第2页/共26页类与对象类与对象n类是对某一类事物的描述,是抽象的、概念上的定类是对某一类
3、事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而义;对象是实际存在的该类事物的每个个体,因而也称实例也称实例(instance)。n如果如果类是汽车的设计图纸类是汽车的设计图纸,那么将,那么将对象比作一辆辆对象比作一辆辆的汽车的汽车。所以面向对象程序设计的重点是类的设。所以面向对象程序设计的重点是类的设计,而不是对象的设计。计,而不是对象的设计。第3页/共26页Java类的声明类的声明n类声明语法:类声明语法:类修饰符类修饰符 class 类名类名 extends 父类名父类名 implements 接口名接口名 成员变量定义成员变量定义;成员方法定义成员方法定义;
4、实例:书实例:书P66第4页/共26页类与对象类与对象class Personint age;void shout()System.out.println(“oh,my god!I am“+age);nage是类的属性是类的属性,也叫类成员变量,也叫类成员变量。nshout是方法也叫类的成员函数。是方法也叫类的成员函数。nshout方法可以直接访问同一个类中的方法可以直接访问同一个类中的age变量变量,如果一个,如果一个方法中有与成员变量同名的局部变量,该方法中对这个变方法中有与成员变量同名的局部变量,该方法中对这个变量名的访问是局部变量,而不再是成员变量。量名的访问是局部变量,而不再是成员变
5、量。第5页/共26页对象的创建对象的创建Person p1=new Person();执行完后的内存状态执行完后的内存状态当一个对象被创建时,会对其中各种类型的成员变量当一个对象被创建时,会对其中各种类型的成员变量自动进行初自动进行初始化赋值始化赋值。除了基本数据类型之外的变量类型都是引用类型。除了基本数据类型之外的变量类型都是引用类型。第6页/共26页对象的使用对象的使用创建新的对象之后创建新的对象之后,我们就可以使用我们就可以使用“对象名对象名.对象成员对象成员”的的格式,来访问对象的成员(包括属性和方法)格式,来访问对象的成员(包括属性和方法)class TestPersonpublic
6、 static void main(String args)Person p1=new Person();Person p2=new Person();p1.age=30;p1.shout();p2.shout();第7页/共26页对象的生命周期对象的生命周期第8页/共26页对象的比较对象的比较n“=”运算符与运算符与equals()方法的区别方法的区别 “=”运算符用于运算符用于比较两个变量的值比较两个变量的值是否相等是否相等 equals()方法方法比较两个对象中的内容比较两个对象中的内容是否一致是否一致class test public static void main(String a
7、rg)String str1=new String(“abc”);String str2=new String(“abc”);String str3=str1;if(str1=str2)System.out.println(“true”);else System.out.println(“false”);False,因为两个对象的因为两个对象的首地址不一样,首地址不一样,str1是第是第一个对象首地址,一个对象首地址,str2是是第二个对象的首地址。第二个对象的首地址。str1.equals(str2)?第9页/共26页类的封装性类的封装性n如果外面的程序可以随意修改一个类的成员变量,会造成如
8、果外面的程序可以随意修改一个类的成员变量,会造成不可预料的程序错误,就象一个人的身高,不能被外部随不可预料的程序错误,就象一个人的身高,不能被外部随意修改,只能意修改,只能通过各种摄取营养的方法去修改通过各种摄取营养的方法去修改这个属性。这个属性。n在定义一个类的成员在定义一个类的成员(包括变量和方法包括变量和方法)时,使用时,使用private关关键字键字说明这个成员的访问权限,这个成员成了说明这个成员的访问权限,这个成员成了类的私有成类的私有成员员,只能,只能被这个类的其他成员方法调用被这个类的其他成员方法调用,而不能被其他的,而不能被其他的类中的方法所调用。类中的方法所调用。对一个变量的
9、操作,一般都有对一个变量的操作,一般都有读取和赋值读取和赋值操作,我们分别操作,我们分别定义两个方法来实现这两种操作,一个是定义两个方法来实现这两种操作,一个是getXxx()(Xxx表示要访问的成员变量的名字),用来读取这个成员变量表示要访问的成员变量的名字),用来读取这个成员变量操作,另外一个是操作,另外一个是setXxx()用来对这个成员变量赋值。用来对这个成员变量赋值。第10页/共26页类的封装性类的封装性n一个类通常就是一个小的模块,我们应该让模块仅一个类通常就是一个小的模块,我们应该让模块仅仅公开必须要让外界知道的内容,而隐藏其它一切仅公开必须要让外界知道的内容,而隐藏其它一切内容
10、。内容。n我们在进行程序的详细设计时,应尽量避免一个模我们在进行程序的详细设计时,应尽量避免一个模块直接修改或操作另一个模块的数据,模块设计追块直接修改或操作另一个模块的数据,模块设计追求求强内聚强内聚(许多功能尽量在类的内部独立完成,不(许多功能尽量在类的内部独立完成,不让外面干预),让外面干预),弱耦合弱耦合(提供给外部尽量少的方法(提供给外部尽量少的方法调用)。调用)。n优点:优点:隐藏类的实现细节隐藏类的实现细节;让使用者只能;让使用者只能通过事先定制好的通过事先定制好的方法来访问数据方法来访问数据,可以方便地加入控制逻辑,限制对,可以方便地加入控制逻辑,限制对属性的不合理操作;属性的
11、不合理操作;便于修改,增强代码的可维护性便于修改,增强代码的可维护性实例:书实例:书P73第11页/共26页Java的构造函数的构造函数n构造方法的特征构造方法的特征它具有它具有与类相同的名称与类相同的名称;它它不含返回值不含返回值,它,它不能不能在方法中在方法中用用return语句返回一个值语句返回一个值n构造方法的作用:构造方法的作用:当一个类的实例对象刚产生时,这个类当一个类的实例对象刚产生时,这个类的构造方法就会被自动调用,我们可以在这个方法中加入的构造方法就会被自动调用,我们可以在这个方法中加入要完成初始化工作的代码。使用要完成初始化工作的代码。使用new来创建类的新实例时,来创建类
12、的新实例时,Java完成三项工作(书完成三项工作(书P74)。)。n在在java每个类里都至少有一个构造方法每个类里都至少有一个构造方法,如果程序员没有,如果程序员没有在一个类里定义构造方法,系统会自动为这个类产生一个在一个类里定义构造方法,系统会自动为这个类产生一个默认的构造方法,该方法什么也不做。一旦编程者为该类默认的构造方法,该方法什么也不做。一旦编程者为该类定义了构造方法,系统就不再提供默认的构造方法了。定义了构造方法,系统就不再提供默认的构造方法了。第12页/共26页构造函数重载构造函数重载n和一般的方法重载一样,重载的构造函数具有和一般的方法重载一样,重载的构造函数具有不同不同个数
13、或不同类型的参数个数或不同类型的参数,编译器就可以根据这一点,编译器就可以根据这一点判断出用判断出用new 关键字产生对象时,该调用哪个构造关键字产生对象时,该调用哪个构造方法了。方法了。n产生对象的格式:产生对象的格式:类名类名 对象名对象名new 类名类名(参数列表参数列表);n重载构造方法可以完成不同初始化的操作重载构造方法可以完成不同初始化的操作。n实例:矩形类的构造函数重载实例:矩形类的构造函数重载(实例:书实例:书p75)。第13页/共26页类的继承类的继承n通过继承可以通过继承可以简化类的定义简化类的定义。nJava只只支持单继承支持单继承,不允许多重继承,不允许多重继承(不能同
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言 学习 教程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内