JAVA类和对象设计
Java程序设计
第四章 类和对象设计
本节主要内容 4.1 4.2 4.3 4.4 4.5 面向对象程序设计思想 类和对象初探 定义类 实例化对象 初始化对象
标识符和关键字 4.1 面向对象程序设计思想
•
对象
– 客观世界中任何一个事物都可以看成一个对象。 行为
捉老鼠 颜色 吃鱼 品种
属性
年龄
标识符和关键字 4.1 面向对象程序设计思想
4.5
初始化对象
练习3 定义长方形(Rectangle)类, 成员变量:宽(width)和高(height) 成员方法 : setValue(),用于给成员变量赋初值; printArea(), 用于输出长方形面积。 在主函数中创建Rectangle类对象r, 通过setValue函数给r赋初值(长和宽 分别为3,5)并输出r的面积。
第四章 类和对象设计
本节主要内容 4.1 4.2 4.3 4.4 4.5 面向对象程序设计思想 类和对象初探 定义类 实例化对象 初始化对象
第四章 类和对象设计
本节主要内容 4.1 4.2 4.3 4.4 4.5 面向对象程序设计思想 类和对象初探 定义类 实例化对象 初始化对象
4.4 实例化对象
成员方法
第四章 类和对象设计
本节主要内容 4.1 4.2 4.3 4.4 4.5 面向对象程序设计思想 类和对象初探 定义类 创建Java应用程序 初始化对象
第四章 类和对象设计
本节主要内容 4.1 4.2 4.3 4.4 4.5 面向对象程序设计思想 类和对象初探 定义类 实例化对象 初始化对象
4.5
2 练习 标识符和关键字
练习4 定义Box类,
(1)包括两个成员变量,长:length,宽:width;
(2)定义两个构造方法,第一个构造方法通过参 数初始化length,width默认初始化为1;第二 个构造方法通过参数初始化length和width;
(3)在类中定义主函数,创建两个Box类对象 box1和box2,分别通过两种构造方法初始化, 并输出对象的属性值。
类与对象的关系
– 对象是类的实例,类是对象的模板。
对象之间的关系
– 某个类的对象都具有该类的属性和行为,但是属 性值不同
第四章 类和对象设计
本节主要内容 4.1 4.2 4.3 4.4 4.5 面向对象程序设计思想 类和对象初探 定义类 创建Java应用程序 初始化对象
标识符和关键字 4.1 面向对象程序设计思想
类和对象初探 4.2 标识符和关键字
1. 定义类Person。
Person 属性 操作 姓 名 年 龄 行为 设置属性 自我介绍
}
class Person {
String name ; int age;
成员变量
void setValue (String n, int a ) { name = n; age = a; } void display( ) { System.out.println( name + “,” + age + “岁.”); }
4.5
2 练习 标识符和关键字
public class Box { double length; double width; Box(double l) { length = l; width = 1; } Box(double l, double w) { length = l; width = w; } public static void main(String[] args) { Box box1 = new Box(10); Box box2 = new Box(10, 15); System.out.println("box1:" + box1.length + ", " + box1.width); System.out.println("box2:" + box2.length + ", " + box2.width); } }
•
面向对象程序设计的特点
– 封装
» 是一种信息隐蔽技术 » 利用抽象数据类型将数据和基于数据的操作封装在一 起
– 继承
» 是指新的类可以获得已有类(称为超类、基类或父类) 的属性和行为
– 多态
» 同一名称的方法可以有不同的功能
第四章 类和对象设计
本节主要内容 4.1 4.2 4.3 4.4 4.5 面向对象程序设计思想 类和对象初探 定义类 创建Java应用程序 初始化对象
•
类
类
对象
小蛋黄 品种: 波斯猫 年龄: 5 颜色: 黄色
实例化
猫
品种
猫
年龄 颜色
蜂窝煤
捉老鼠
吃鱼
姓名: 折耳猫
年龄: 8 颜色: 黑色
标识符和关键字 4.1 面向对象程序设计思想
•
类、对象
– 类可以看成是对象的抽象,代表了此类对象所具 有的共有属性和行为。对象是符合某个类特征的 具体事务。
• •
•
实例化对象
– 类创建对象后才能使用 – 格式: 类名 对象名 = new 类名([参数列表]) 例如:Clock c = new Clock(); – 其作用是:
» 在内存中为此对象分配内存空间
定义类 4.3 标识符和关键字
•
练习 2 定义一个Max类,其中包括两个重载 方法max,分别可返回2个整数中的最大值和 三个整数中的最大值,并在主函数中创建 Max类的对象,分别求两个整数(2,3)中的最 大值和三个整数(2,8,100)中的最大值。
4.3 定义类
•
方法重载
– 一个类中有两个及以上同名的方法,但参数表 (参数个数或参数类型)不同,这种情况就被称为 方法重载。 – 在方法调用时,Java可以通过参数列表的不同来 辨别应调用哪一个方法。
定义类 4.3 标识符和关键字
2 方法重载。
public class OverLoad { int sum (int a, int b) { return a + b; 程序运行结果: } 3 int sum (int a, int b, int c) { 6 return a+b+c; 4 } double sum (double a, double b) { return a+b; } public static void main(String[] args) { OverLoad o = new OverLoad( ); System.out.println(o.sum(1, 2)); System.out.println(o.sum(1, 2, 3)); System.out.println(o.sum(1.2, 2.8)); } } 1.同名 2.功能相似 3.参数不同
成员方法
4.3 定义类
public class Clock {
int hour ; int minute; int second;
void setTime(int h, int m, int s) { hour = h; minute = m; second = s; }
void getTime() { System.out.println(hour + ":" + minute + ":" + second); } }
4.5
» » » »
初始化对象
– 初始化方法
直接初始化 通过方法初始化 通过构造方法初始化 使用默认值
4.5
初始化对象
5直接初始化。
public class Student { int no = 101; String name = “张三”; void show(){ System.out.println(no +” ” +name); } public static void main(String[] args) { Student s = new Student(); s.show(); } }
初始化对象 4.5 Ujjjjjjjjjjh=8
6 通过成员方法。
public class Student { int no ; String name ; void show(){ System.out.println(no +” ” +name); } void setValue (int n, String nam) { no = n; name = nam; } public static void main(String[] args) { Student s1 = new Student(); Student s2 = new Student(); s1.setValue(101, "张三"); s2.setValue(101, "张三"); s1.show(); s2.show(); } }
4.5
对象初始化 标识符和关键字
7 通过构造方法初始化。
4.5
初始化对象
•
构造方法
– 主要作用是完成对象的初始化工作 – 方法名与类名相同,没有返回类型 – 在生成一个对象时,系统会自动调用该类的构造 方法为新生成的对象初始化 – 如果没声明构造方法,编译器提供一个空的默认 的构造方法
4.5
4.3 定义类
•
类的声明
class 类名称 { 成员变量; 成员方法; }
•
定义类的一般步骤:
– – – 用class关键字声明类 写成员变量 写成员方法
4.3 定义类
练习1 定义钟表类Clock,有成员变量 hour,minute,second,有成员方法setTime可 进行时间设置,getTime可用于输出时间.