只有创造,才是真正的享受,只有拚搏,才是充实的生活。
本讲内容:面向对象的特征、包、修饰符
一、类和对象的概念
面向对象程序语言的核心思想就是把一个事物的状态和行为封装起来作为一个整体看待。类描述的就是对象知道什么和执行什么。
1、譬如我们用面向对象的思想来看待一架飞机:
如果我们站在顾客角度看飞机,那么它的状态是名字MH370,座位数380人,飞行速度960公里每小时,它的行为就是飞行,能把你从A地送到B地。
如果站在航空公司角度看飞机,那么它的状态是名字MH370,资产编号HNHK20100321,购买价格8.8亿人民币。它的行为就是能赚钱。
我们从不同角度去看待和抽象同一架飞机它的状态和行为不相同。
2、再从面向对象的角度看待一个阳西一中的学生谢丹妹:
她在学校的时候是个学生,那么她的状态是学号08,她的行为就是学习。她放学以后去家门口的商店,那么他的身份就是顾客,她的状态是有个购物商品清单,她的行为就是付款。
我们从不同的角度和时间去看待同一个人,她的状态和行为也是不相同的,甚至看起来是相反的。
二、类和对象的关系
类是对象的蓝图,它告诉虚拟机如何创建某个类型的对象。对象是根据蓝图建造出来的实例。
1、譬如人类是个类,我们每个人就是其中一个对象。
2、譬如我们要建立一个阳西一中高三(2)班同学的通讯录,设计一个通讯录的格式,包括姓名、性别、手机号、QQ号。然后我们按照一定的格式印出来,交由每个同学填写,那么每个同学填写的那一份就叫对象,我们填写的通讯录格式本身就是类。
3、类是抽象的、概念的,代表一类事物,譬如人类、猫类。
4、对象是具体的、实际的,代表一个事物。
5、类是对象的模板,对象是类的一个个体、实例。
三、定义类,创建对象
定义一个类的步骤是:定义类名,编写类的属性(状态),编写类的方法(行为)
<span style="font-size:18px;"><span style="font-size:18px;">public class Dog {
private int size;// 定义了狗的个头大小的属性
// 定义设置个头的方法
public void setSize(int size) {
if (size > 0 && size < 20) {
this.size = size;
} else {
size = 1;
}
}
// 定义获取个头的方法
public int getSize() {
return size;
}
// 定义狗叫的方法
private void bark() {
if (size < 5) {
System.out.println("汪汪汪!");
} else {
System.out.println("嗷 !嗷!嗷!");
}
}
// 定义main方法
public static void main(String[] args) {
// 创建了名字叫小黑的狗对象
Dog xiaoHei = new Dog();
xiaoHei.setSize(3); // 设置它的大小属性
xiaoHei.bark();// 调用它的叫方法
// 创建了名字叫大黑的狗对象
Dog daHei = new Dog();
daHei.setSize(7);
daHei.bark();
}
}
</span></span>
四、包 package
1、编译单元(compilation unit)
在Java里,一个编译单元就是一个用来书写Java源代码的文本文件。编译单元有三个组成部分:
这三个部分都是可选的,包声明如果要有必须写在最前面,并且只能写一份。导入声明可以写多个,类声明也可以写多个。
2、包的概念
(1)类名是类之间彼此区分的标示,一个程序中类数量增多是,必然会遇到类名冲突的情形。包提供了类的组织和管理方式。包的用途有以下三种:
1、将功能相近的类放在同一个包里,方便使用和查找
2、类名相同的文件可以放在不同的包里而不会产生冲突
3、可以依据包设定访问权限(控制访问范围)
(2)打包命令
package 包名
(3)包命名规范(小写字母)
(4)常用的包
java.lang.* ; 自动引入 java.util.*; 工具包
java.net.*; 网络开发包 java.awt.*;窗口工具包
五、访问修饰符
在Java中可以用访问修饰符来控制类或者类成员对程序的其它部分的可见性。
可以见性 | public | protected | default | private |
同一个类 | OK | OK | OK | OK |
同一个包中的任何类 | OK | OK | OK | |
同一个包中的子类 | OK | OK | OK | |
包外的子类 | OK | OK通过继承 | ||
包外的任何非子类的类 | OK |
1、对于类的修饰符,只能有2个选择,用public修饰或者不用(不用就是默认修饰符)。
2、如果一个类本身对另一个类不可见,则即使将其成员声明为public,也没有一个成员是可见的,只有当你确类本身3、对你是可见的时,查看其各个成员的访问级别才有意义。
4、对于类的成员(member, 包括属性和方法),可以用 public protected 默认的和private 4种修饰符。
5、不要用访问修饰符修饰局部变量,编译器会报错。(记住:局部变量只有一个修饰符可以用,那就是final)
6、除了访问修饰符外,还有非访问修饰符 static、final、abstract、transient、synchronization、native、strictfy ,我们在今后的学习中逐步掌握。