java概述课件08对象和类.ppt
《java概述课件08对象和类.ppt》由会员分享,可在线阅读,更多相关《java概述课件08对象和类.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第 8 章 对象和类2引言学习过前几章的内容后,我们已经能够使用选择、循环、方法和数组解决很多程序设计问题这些java的特性还不足够用来开发图形用户界面和大型软件系统,假设希望开发一个GUI(图形用户界面)该如何用程序实现它呢?3学习目标 描述对象和类,使用类来建模对象(8.2节)使用 UML 图形符号来描述类和对象(8.2节)演示如何定义类以及如何创建对象(8.3节)使用构造方法创建对象(8.4节)通过对象引用变量访问对象(8.5节)使用引用类型定义引用变量(8.5.1节)使用对象成员访问操作符(.)来访问对象的数据和方法(8.5.2节)定义引用类型的数据域并给对象的数据域赋默认值(8.5
2、.3节)区分对象引用变量和基本类型变量的不同(8.5.4节)使用java类库中的Date类、Random 类和JFrame 类(8.6节)区分实例变量与静态变量、实例方法和静态方法的不同(8.7节)定义有恰当的get方法和set方法的私有数据域(8.8节)封装数据域以便于类的维护(8.9节)开发带对象参数的方法,区分基本类型参数和对象类型参数的不同(8.10节)在数组中存储和处理对象(8.11节)4面向对象编程概念面向对象程序设计(OOP):使用对象进行程序设计对象(objects):代表现实世界中可以明确标识的一个实体例如:一个学生、一张桌子、一个圆、一个按钮甚至一笔贷款都可以看作是一个对象
3、每个对象都有一个独特的标识、状态和行为 5类对象具有状态和行为定义了对象,就定义了对象的状态和行为6类Java类使用变量定义数据域,使用方法定义动作除此之外,类还提供了一种称为构造方法(constructor)的特殊类型的方法,调用它可以创建一个新对象构造方法本身是可以完成任何动作的,但是设计构造方法的初衷还是为了完成初始化动作7类8UML 类图9举例:定义类和创建类目的:展示创建对象,访问数据,以及使用方法TestCircle1Run10举例:定义类和创建类目的:展示创建对象,访问数据,以及使用方法TestTVRunTV11构造方法构造方法Circle()Circle(double newR
4、adius)radius=newRadius;构造函数是一种特殊的方法,用来构造对象。12构造方法,续构造方法的作用是初始化对象构造方法名必须和类名相同 构造方法没有返回类型,甚至连void也没有 构造方法在创建一个对象时,使用new操作符调用13使用构造方法构造对象new ClassName();例:new Circle();new Circle(5.0);14默认构造方法一个类可以不定义构造方法,在这种情况下,类中隐含定义一个方法体为空的无参构造方法这个构造方法称为默认构造方法当且仅当类中没有明确定义任何构造方法时才会自动提供它15通过对象引用变量引用一个对象,分配对象的引用变量声明一个引
5、用变量,使用语法:ClassName objectRefVar;例:Circle myCircle;16声明/创建对象:一步完成ClassName objectRefVar=new ClassName();例:Circle myCircle=new Circle();创建对象分配对象引用 17访问对象 引用对象的数据 objectRefVar.data 例:myCircle.radius 调用对象的方法 objectRefVar.methodName(arguments)例:myCircle.getArea()18跟踪代码Circle myCircle=new Circle(5.0);SCir
6、cle yourCircle=new Circle();yourCircle.radius=100;声明myCircleno valuemyCircle19跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;创建circleno valuemyCircle20跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;reference va
7、lue将对象引用分配给myCirclemyCircle21跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;no valueyourCircle声明 yourCirclereference valuemyCircle22跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;创建一个新 Circle 对象reference valuem
8、yCircleno valueyourCircle23跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;将对象引用分配给yourCirclereference valuemyCircleyourCirclereference value24跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;改变yourCircle半径referen
9、ce valuemyCircleyourCirclereference value25注意 回想一下,我们曾使用:Math.methodNamemethodName(参数)(例如:Math.pow(3,2.5)来调用 Math 类中的方法。那么能否用 Circle1.getArea()来调用getArea()方法呢?答案是不能。本章之前所有的方法是静态方法,使用静态定义的关键字static,然而getArea()方法非静态,它必须用一个对象调用:objectRefVar.methodName(参数)(例如:myCircle.getArea()26引用数据域数据域也可能是引用型的。例如:下面的S
10、tudent类包含一个String类型的name数据域,String是一个预定义的Java类。public class Student String name;/name has default value null int age;/age has default value 0 boolean isScienceMajor;/isScienceMajor has default value false char gender;/c has default value u000027 null 值如果一个引用类型的数据域没有引用任何对象,那么这个数据字域就有一个特殊的Java值,null28
11、数据域的默认值引用类型数据域的默认值是null,数值类型数据域的默认值是0,boolean类型数据域的默认值是false,而char类型数据域的默认值是 u0000。但是Java没有给方法中的局部变量赋默认值。public class Test public static void main(String args)Student student=new Student();System.out.println(name?+student.name);System.out.println(age?+student.age);System.out.println(isScienceMajor?+
12、student.isScienceMajor);System.out.println(gender?+student.gender);29例如public class Test public static void main(String args)int x;/x has no default value String y;/y has no default value System.out.println(x is +x);System.out.println(y is +y);Compilation error:variables not initializedJava没有给方法中的局部
13、变量赋默认值。30基本类型变量和引用类型变量的区别31基本类型变量和引用类型变量的赋值32垃圾回收如图所示,执行完赋值语句C1=C2之后,C1指向C2所指的同一个对象C1以前引用的对象就不再有用,因此,它现在就成为垃圾(garbage)垃圾会占用内存空间,java运行系统会检测垃圾并自动回收它所占的空间,这个过程称为垃圾回收(garbage collection)。33垃圾回收,续。提示:如果我们认为不再需要某个对象,就可以显示的给该对象引用变量赋null值如果某对象没有被任何引用变量所引用,java虚拟机将自动回收它所占的空间。34Date 类Java提供了一个系统的封装java.util的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 概述 课件 08 对象
限制150内