《类和对象1ppt课件.pptx》由会员分享,可在线阅读,更多相关《类和对象1ppt课件.pptx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、类和对象1萍乡学院萍乡学院罗晓娟罗晓娟程序设计方法的发展面向机器的程序设计:机器语言和汇编语言。面向机器的程序设计:机器语言和汇编语言。面向过程的程序设计:面向过程的程序设计:C C语言等。语言等。面向对象的程序设计:照现实世界的特点,管理复杂的事面向对象的程序设计:照现实世界的特点,管理复杂的事物,将事物抽象为对象。对象具有自己的状态和行为,通物,将事物抽象为对象。对象具有自己的状态和行为,通过对消息的反应,来完成一定的任务。过对消息的反应,来完成一定的任务。封装将一组数据和与这些数据有关的操作方法组织在一起,将一组数据和与这些数据有关的操作方法组织在一起,形成对对象的描述。形成对对象的描述
2、。继承当一个类拥有另一个类的所有属性和行为时,就称这当一个类拥有另一个类的所有属性和行为时,就称这个类是继承过来的类。个类是继承过来的类。多态不同的对象接收到的相同的消息时表现出来的不同的不同的对象接收到的相同的消息时表现出来的不同的行为和动作。行为和动作。面向对象程序设计的三个基本特性类类类类类是对一类事物的程序设计语言的描述,是同种是对一类事物的程序设计语言的描述,是同种对象的集合和抽象。对象的集合和抽象。对象对象对象也叫实例,是类的实例化。对象也叫实例,是类的实例化。类的定义定义定义一个类时,应该包含两部分:类的声明和类的实现(类的主体即类一个类时,应该包含两部分:类的声明和类的实现(类
3、的主体即类体)体)。类类体体主要包括成员变量主要包括成员变量的的声明和方法的定义。声明和方法的定义。一般格式:一般格式: 类修饰符类修饰符 class class 类名类名 成员变量成员变量 ; 构造构造方法方法 ; 成员方法成员方法 ; 类名通常第一个字母大写方括号表示这些都是可选项常用的修饰符有public或缺省或abstract等成员变量在在类体类体声明的不属于任何一个方法的变量就声明的不属于任何一个方法的变量就是是成员成员变量。变量。语法语法格式格式: 修饰符修饰符 变量类型变量类型 变量名变量名=初值初值;即使有多个成员变量是同一种类型,也建议一行声明一个变量。即使有多个成员变量是同
4、一种类型,也建议一行声明一个变量。成员变量既可以成员变量既可以是是简单数据类型简单数据类型,也,也可以是引用类型。可以是引用类型。类类的成员变量一定要在类内的方法外声明,的成员变量一定要在类内的方法外声明,不能放不能放在方法在方法内。内。成员变量的声明可以放在类的任意位置,但一般放在类的开始。成员变量的声明可以放在类的任意位置,但一般放在类的开始。成员方法成员方法包括方法声明和方法体两部分成员方法包括方法声明和方法体两部分。方法方法的的定义定义格式:格式: 修饰符修饰符 返回返回值类型值类型 方法名方法名(参数列表参数列表) ) 方法体方法体 其中返回类型可以是任意的其中返回类型可以是任意的J
5、avaJava数据类型,当一个方法不需要数据类型,当一个方法不需要返回值时,返回类型就设定返回值时,返回类型就设定为为voidvoid。成员方法方法体的内容包括局部变量的声明和方法体的内容包括局部变量的声明和JavaJava语句。语句。在方法体内可以对成员变量和方法体中声明的局部变量进在方法体内可以对成员变量和方法体中声明的局部变量进行操作。在方法体中声明的变量和方法的参数被称作行操作。在方法体中声明的变量和方法的参数被称作局部局部变量。变量。和类的成员变量不同的是,局部变量只在方法内有效,而和类的成员变量不同的是,局部变量只在方法内有效,而且与其声明的位置有关且与其声明的位置有关。2022-
6、5-21成员变量和局部变量如果局部变量的名字与成员变量的名字相同,则成员变量如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即该成员变量在这个方法内暂时失效。例如被隐藏,即该成员变量在这个方法内暂时失效。例如: : 2022-5-21class Tom class Tom int x = int x = 10;10; int y int y; ; void void f() f() int x = 5; int x = 5; y = y = x+x;x+x; System.out.println(“y=”+y); System.out.println(“y=”+y); 如果想在该方法
7、中使用被隐藏的成员变如果想在该方法中使用被隐藏的成员变量,必须使用关键字量,必须使用关键字this。y=10成员变量没有赋值,但有默认值,整型成员变量没有赋值,但有默认值,整型变量的默认值为变量的默认值为0。成员变量和局部变量 成员变量有默认成员变量有默认值,值,但局部变量没有默认值但局部变量没有默认值,那么在,那么在使用使用局部变量之前,必须保证局部变量有具体的值局部变量之前,必须保证局部变量有具体的值 。例如例如: :2022-5-21class InitError int x = 10; int y; void f() int m; x = y+m; 编译错误,m未指定值需要注意的问题
8、2022-5-21通常可以这样认为:类通常可以这样认为:类体的内容由两部分体的内容由两部分构构成成,一部分一部分是变量的声明,是变量的声明,另另一部分是方法的定义(构造方法和成员方法)。一部分是方法的定义(构造方法和成员方法)。对对成员变量的操作只能放在方法中,方法可以对成员变量和该方法体成员变量的操作只能放在方法中,方法可以对成员变量和该方法体中声明的局部变量进行操作。在声明成员变量时可以同时中声明的局部变量进行操作。在声明成员变量时可以同时赋初值赋初值,但,但是不可以在类体中有单独的赋值是不可以在类体中有单独的赋值语句。语句。类的定义中不类的定义中不可以可以有除成员变量有除成员变量的声明和
9、方法的定义以外的其它的声明和方法的定义以外的其它语句。语句。 类的设计设计一个学生类设计一个学生类声明成员变量:既学生类的通用属性,如姓名、年龄、性别声明成员变量:既学生类的通用属性,如姓名、年龄、性别定义常用方法:如定义常用方法:如“introduceintroduce”方法方法对象的创建用类声明的变量称为对象,或者称之为实例。用类声明的变量称为对象,或者称之为实例。类是创建对象的模板,没有类就没有对象。类是创建对象的模板,没有类就没有对象。对象的创建就是调用类的构造方法。对象的创建就是调用类的构造方法。构造方法构造构造方法方法(ConstructorConstructor)是类中一种特殊方
10、法,是类中一种特殊方法,用于用于类的类的实例化实例化。构造方法要同时满足以下三个条件:构造方法要同时满足以下三个条件:1.1.构造方法必须与类名构造方法必须与类名相同;相同;2.2.构造方法构造方法没有返回值没有返回值类型的声明,也没有类型的声明,也没有voidvoid;3.3.方法中不能用方法中不能用returnreturn语句返回一个值。语句返回一个值。构造方法如果类中没有编写构造方法,系统会默认给这个类一个无如果类中没有编写构造方法,系统会默认给这个类一个无参构造方法。参构造方法。一个类中可以编写多个构造方法,但必须保证它们的参数一个类中可以编写多个构造方法,但必须保证它们的参数不同。不
11、同。创建对象创建一个对象包括对象的声明和为对象分配变量两个步骤。创建一个对象包括对象的声明和为对象分配变量两个步骤。声明对象的语法格式:声明对象的语法格式:类的名字类的名字 对象的名字对象的名字; ;分配变量的语法格式:分配变量的语法格式:对象的名字对象的名字=new =new 类的名字(类的名字( 实际参数实际参数 ););如果只声明变量而不创建对象,这时该对象就是一个空对象,不能使如果只声明变量而不创建对象,这时该对象就是一个空对象,不能使用用。类与程序的基本结构Java应用程序源文件1主类源文件2类源文件n类this关键字明确明确地地去访问一个类的成员变量。去访问一个类的成员变量。cla
12、ss Student String name; int age; Student(String name) this.name=name; 指明是成员变量局部变量this关键字明确地去明确地去调用成员调用成员方法。方法。class Student public void introduce() (“大家好!我是”+name); public void speak( ) System.out.println(“今天天气真好!”); this.introduce( ); 通常this省略不写this关键字在构造方法中使用调用其他构造方法在构造方法中使用调用其他构造方法。class Student
13、Student() Student(String name,int age ) this( ); this.name=name; this.age=age; 可以省略不写吗?只能在构造方法中使用this调用其他构造方法;使用this调用构造方法必须位于第一行;可以在一个类的两个构造方法中使用this互相调用。垃圾回收机制当程序创建当程序创建对象时,对象时,系统会在堆内存中为之分配一块内存系统会在堆内存中为之分配一块内存区来保存对区来保存对象,当这块内存象,当这块内存不再被不再被任何变量任何变量引用引用时就时就变成了垃圾,等待垃圾回收变成了垃圾,等待垃圾回收机制去进行回收机制去进行回收。垃圾回收
14、机制只负责回收堆内存中的对象,不会回收任何物理垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源。资源。垃圾回收机制是当垃圾回收机制是当对象永久性失去了引用对象永久性失去了引用后,系统后,系统会在合适的时候回会在合适的时候回收它所占的收它所占的内存,不受程序的精确控制。内存,不受程序的精确控制。在在垃圾回收机制回收任何对象之前垃圾回收机制回收任何对象之前,会自动调用,会自动调用它的它的finalizefinalize()()方方法法。Rectanglelength:doublewidth:doublceperimeter():doublearea():double如图定义Rectangle类定义三个构造方法调用空构造方法创建一个实例R1,然后分别给length和width赋值,再输出该矩形的周长和面积。练习调用两个参数的构造方法创建一个实例R2,输出该矩形的周长和面积。