6.类与对象2
1. 封装:
面向对象的封装:
属性私有化, 通过getter/setter方法进行访问。
权限访问修饰符: private私有的。只有当前类中能够访问。
Lombok: 注解@ 生成getter/setter/constructor/…
boolean is/setter : is替代getter方法
package com.etc.lesson05;
public class Person {
private String name;
private int age;
private boolean flg;
public boolean isFlg() {
return flg;
}
public void setFlg(boolean flg) {
this.flg = flg;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.etc.lesson05;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Dog {
private int age;
private int legs;
private String name;
private boolean flg;
}
2.方法的重载:
方法名相同, 参数列表不同。 返回类型无所谓
参数列表不同: 参数个数和 类型各不相同。
3. this关键字:
this.***
: 代表 当前对象 谁调用就是谁
this()
: 调用当前类构造器
4. static: 静态的:
静态不能调用非静态的
静态是属于类, 非静态属于对象
static违反 面向对象
5. 包的概念:
类按照不同功能或业务放入相应的包中:
jdk中的包
Java.util: 工具 日期,随机数
java.sql: 执行SQL用的包
java.lang: 默认包。不需要import String, System
java.io: 输入出流包
。。。
package com.etc.lesson05;对应物理路径: src/com/etc/lesson05/
包中点就是目录
6. import关键字
java.lang包是默认包,不需要import
当前包的类也不需要import
import java.io.*; 引入 java.io包所有类
import java.util.Date;
import static com.etc.lesson05.test.XXXXX.*; 静态引入XXX类所有静态方法 junit
java.util.Date d1;
java.sql.Date d2;
7 继承:
java是单继承多实现
子类继承父类,就可以获取父类的属性和方法。
public class 子类 extends 父类 { }
所有都是继承自Object; Object所有的类基类
public class 子类 extends 父类 { }