1. 面向对象的三大特征
封装,继承,多态
2. 封装
2.1 符合JavaBean规范的类封装过程
在Java中定义符合JavaBean规范的类有什么要求
1. 所有的成员变量全部私有化 ==> private
2. 必须提供一个无参数结构方法
3. 要求使用private修饰的成员变量提供对应的操作方法 ==> Setter Getter
2.2 private关键字
private关键字是一个权限修饰符
private修饰的成员变量,成员方法,【构造方法】都是私有化的内容,有且只能在类内使用,类外没有任何的操作权限!!!
class Dog {
private String name;
public void testField() {
// 类内可以直接使用私有化private修饰的成员变量
name = "八公";
test();
}
private void test() {
System.out.println("忠犬");
}
}
2.3 Setter和Getter方法
private修饰的成员变量类外是没有任何操作权限的,这里需要提供对应的操作方法,setter和getter方法
Setter方法格式:
public void set成员变量名(对应成员变量的数据类型 成员变量的形式参数) {
this.成员变量名 = 成员变量的形式参数;
}
例如:
public void setName(String name) {
this.name = name;
}
Getter方法格式:
public 对应成员变量的数据类型 get成员变量( ) {
return 成员变量;
}
例如:
public String getName() {
return name;
}
如果成员变量是一个boolean类型,Getter方法有所不同
boolean married;
格式:
public boolean isMarried() {
return married;
}
3. 多类合作
在开发中,除了基本数据类型,大多数情况下,都是类对象操作数据:
1. 方法的参数
2. 类定义时成员变量数据类型
4. 匿名对象
4.1 格式
new 构造方法(必要的参数);
4.2 用途
1. 使用匿名对象直接调用类内的成员方法
2. 匿名对象直接作为方法的参数
注意:
使用匿名对象不要操作成员变量,有可能是有去无回
优势:
1. 阅后即焚,匿名对象在使用之后,立即被JVM GC销毁
2. 解决内存空间,提高效率,简化代码书写
5. 继承
5.1 Java中实现继承的方式
继承使用的关键字
extends
格式:
class A extends B {
}
A是B类的一个子类
B类是A类的一父类
Java中的继承是一个单继承模式
基本要求:
1. 子类继承父类后,可以使用父类的非私有成员变量和成员方法【非私有化成员】
2. 子类不能继承得到父类的私有化内容
5.2 Super关键字
1. 调用父类成员方法和成员变量的关键字【解决就近原则问题】
2. 用于显式调用父类的构造方法
特征:
1. 如果没有显式调用弗雷德构造方法,默认Java编译器会调用无参父类构造方法使用
2. 根据数据类型选择对应方法
3. super调用构造方法,必须在当前构造方法的第一行