Java面向对象程序设计第4章-类与对象.ppt
《Java面向对象程序设计第4章-类与对象.ppt》由会员分享,可在线阅读,更多相关《Java面向对象程序设计第4章-类与对象.ppt(63页珍藏版)》请在三一办公上搜索。
1、第4章 类与对象,主讲:赵建邦办公室:信息学院202,2,本章主要内容,类对象参数传值对象组合static关键字this关键字包import关键字类包装 jar文件,难点:参数传值,对象组合包和import语句,4.1 编程语言的发展,面向机器语言包括机器语言、汇编语言代码量庞大,对不同机器编写不同指令优点:可执行文件小,执行速度快面向过程语言按照流程化的思想来组织,不符合人的思维习惯,重用率低,维护困难,用函数调用实现代码重用,信息完全暴露,很难实现大型程序,3,4.1 编程语言的发展,面向对象语言按照类和对象的思想来组织:将数据以及数据的操作封装在一个单独的数据结构中抽象:强调实体本质、内
2、在的属性封装性:封装性是保证软件部件具有优良的模块性的基础,将说明与实现分开继承性:不同级别上促进了共享多态性:同一操作作用于不同的类的实例,将产生不同的执行结果,4,4.1 编程语言的发展,(作者)(图灵奖)1957 Fortran John Bacus 19971967 Simula D.J Dahl 2001 K.Nygaard 1968 Pascal Niklaus wirth 19841972 C Ken Thompson 1983 D.M Ritchie 19801995 C+Bjarne Stroustrup1971 Smalltalk Alan Kay 20031995 Jav
3、a James Gosling,5,4.2 类,“万物皆为对象”Alan Kay现实世界中的任一客观实体:有一个名字(ID)用来标识有一组属性来描述其特征有一组方法来实现其功能类是对具有相似属性对象的抽象类是实例化对象的模板对象是类的实例,6,4.2.1 类的声明,类的实现包括:类声明和类体类实现的格式:class 类名 类体的内容注意类名的命名约定:拉丁字母的首字母使用大写:Hello、Time复合词中的每个单词首字母大写:HelloWorld,7,和之间的内容称作类体,4.2.2 类体,类体包括两部分:变量的声明,用来刻画属性方法的定义,用来刻画功能,8,4.2.3 成员变量和局部变量,不
4、同变量的定义:成员变量:变量声明部分所声明的变量局部变量:方法体中声明的变量和方法 体的参数变量的类型:基本类型(整数、浮点、字符、逻辑)引用类型(数组、对象、接口),9,4.2.3 成员变量和局部变量,变量的有效范围成员变量在整个类内部有效,并且有效性与它在类体中书写的先后位置无关方法的参数在整个方法内部有效方法内的局部变量从声明它的位置之后开始有效,并且仅限于声明它的复合语句或者循环体例P57中,class A、class 梯形注意:for循环中变量的有效性与C语言不同,10,4.2.3 成员变量和局部变量,成员变量再细分:实例变量、类变量类变量:成员变量声明时,用static关键 字给予
5、修饰,也称静态变量,11,4.2.3 成员变量和局部变量,成员变量的隐藏如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效。P58 class 三角形,12,4.2.4 方法,类似于类的实现结构,方法的实现也包括两部分:方法声明和方法体方法声明部分 方法体的内容方法起名习惯和类名不同,首个字母约定使用小写,13,4.2.4 方法,方法的声明格式:返回值类型 方法名(参数1,参数2,)当一个方法不需要返回值时,返回类型为void方法体,14,4.2.5 方法重载,一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同:参数的个数不同参数的类型不同
6、注意:方法的返回类型不参与比较:如果两个方法名字相同,即使类型 不同,也必须保证参数不同,15,4.2.6 构造方法,构造方法是一种特殊方法,名字必须与类名相同,没有返回值类型构造方法可以重载,16,4.2.7 类方法和实例方法,方法声明时,方法类型前面不加关键字static修饰的是实例方法、加static修饰的是类方法(静态方法),17,4.2.8 几个值得注意的问题,对成员变量的操作只能放在方法中,方法可以对成员变量和该方法体中声明的局部变量进行操作需要注意的是:实例方法既能对类变量操作也能对实例变量操作,而类方法只能对类变量进行操作一个类中的方法可以互相调用,实例方法可以调用该类中的其它
7、方法;类中的类方法只能调用该类的类方法,不能调用实例方法 参照本节的例子理解以上内容,18,4.3 对象,类是创建对象的模板,对象是类创建的实例如何创建对象?创建对象分为声明对象和为对象分配内存两部分声明格式:“类名 对象名;”例如:People zhangPing;使用new关键字分配内存:zhangPing=new People();People zhangPing=new People();/实际包括了声明和分配内存两部分,19,4.3.1 创建对象,对象的内存模型声明后的对象变量是一个空对象,不能使用分配内存后,即使用new语句以后,对象的成员变量被分配内存空间,并对成员变量进行初始化
8、;并且,将返回一个引用给对象变量创建多个不同对象的时候,这些对象具有不同的引用和内存空间,20,4.3.2 使用对象,通过运算符“.”来实现对类中变量的访问和方法的调用体现封装类体内如何操作成员变量,在类体内是看不到的,类体外看到的只是方法的接口但是,方法所用到的局部变量,包括参数和方法体内的变量,在使用之前需要赋值例:4.3,21,4.3.3 对象的引用和实体,声明一个对象之后,在栈中为其分配引用;Java的对象在堆(heap)中分配内存,这些内存空间称为对象的实体通过引用,可以调用对象的属性和方法一个类创建的两个对象,如果具有相同的引用,那么就具有完全相同的实体没有实体的对象称作空对象,编
9、译器对空对象不作检查,但是它不能被使用,22,4.4 参数传值,Java中,方法的所有参数都是“传值”,即方法中参数变量的值是调用者指定值的一个拷贝 DataType a;/a已经被赋值 void function(DataType c)基本类型参数的传值引用类型参数的传值,23,4.4.1 基本类型参数的传值,原则:基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别 只要值在Main函数中没变,a的值不管怎么传都不回变,这是因为a是传值,而这个值是a的一个拷贝,a的值在传递后的改变只是改变了a的拷贝的内容,并没有改变真正的a的值,24,int a=3的拷贝!,返回,4.4.2
10、引用类型参数的传值,当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体例4.5,25,4.4.3 可变参数,在声明方法时不给出参数列表中某项直至最后一项参数的名字和个数,但这些参数的类型必须一致。使用“”表示若干个参数,它们的类型必须相同public void f(int x)public void f(double d,int x);用法类似于数组与for的新增功能,回忆章节3.7,26,4.4.4 有理数的类封装,面向对象的编程,核心思想之一是将数据和对数据的操作封装在一起,从而形成包装类,通过类创建具体的对象,对象调用方法,实现更简洁的计算效果本节对有理数(
11、Rational)进行封装,是面向对象程序设计的一个简单应用,27,4.5 对象的组合,一个类的成员变量可以是Java允许的任何数据类型,即一个类的成员变量可以是其它类的对象,甚至可以是该类的自身对象一个类的成员变量可以由若干个类组成,或者说该类的对象可以使若干对象的组合例 4.7,28,举例:对象的组合,29,4.6 static关键字,成员变量分为:类变量和实例变量用static修饰的变量为类变量不用static修饰的变量为实例变量方法分为:类方法和实例方法用static修饰的方法为类方法不用static修饰的方法为实例方法调用原则:实例方法可以调用所有方法类方法只能调用类方法,30,4.
12、6.1 实例变量和类变量,区别1:一个类可以创建多个不同的对象,每个对象的实例变量将被分配不同的内存空间;如果一个类中定义了类变量,那么,所有的类变量仅分配相同的类变量,一个对象改变了类变量,则彻底改变也就是说,对象共享类变量区别2:类变量在没有创建对象的情况下已经加载到内存,直到程序退出才释放所占用的内存类变量不仅可以通过对象访问,也可以通过类名访问,31,4.6.2 实例方法和类方法,区别1:对象创建后才分配实例方法入口对象创建前已经分配类方法入口区别2:所有对象都不存在时,实例方法的入口地址撤销程序退出时,类方法的入口地址才被取消static方法仅能调用其它的static方法、仅能访问s
13、tatic数据,不能以任何形式引用this、super,32,难点1:成员变量被隐藏,P58,对于类体中的方 法,如果局部变量名字 和成员变量名字相同,则成员变量被隐藏想仍然在这种情况下 使用成员变量,需要thisP58中的两个例子,以及习题4.8,33,难点2:成员变量初始化,声明类的成员变量 时可以同时赋予初值P62,class A,注意不 能用单独的赋值语句通过构造方法初始化生成对象时已完成构造方法可以重载通过其它方法初始化必须通过对象调用方法,34,难点3:参数传值,发生在main()方法或者其它方法调用有参数的方法的时候基本类型“传值”:方法中参数变量的值是调用者指定值的一个拷贝,方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面向 对象 程序设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5436259.html