一.概念
将类的某些信息隐藏在类的内部,不允许外部直接访问,而通过类所提供的方法来进行操作。
二.封装三部曲
- 修饰符private/protected
- 添加操作属性的setter/getter方法
- 方法中加入属性控制语句
三.包
包即文件夹,下又可再分,“ . ” 区分层次
- 包的定义:package关键字
package + <包名>
//定义一个movie包
package movie;
//定义一个movie包下的music包
package movie.music;//包名小写
- 包的引用:import关键字
import + <包名> + ' . ' + <类名>;
//调用movie包下的music包中的lyrics类
import movie.music.lyrics;
四.访问修饰符
- 访问规则
访问修饰符 | 本类 | 同包 | 子类 | 其他包 |
---|---|---|---|---|
private | √ | |||
默认 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
五.this指针
代表当前对象,常在类中使用。
例如:
public setName(name){
this.name=name
}
六.内部类
理解:
定义在类a中的类b,不让其他类比如类c使用这个类b,相应的类a叫做类b的外部类。
使用方法:
//外部类HelloWorld
public class HelloWorld {
// 内部类Inner,类Inner在类HelloWorld的内部
public class Inner {
//类inner的属性和方法
}
public static void main(String[] args) {
// 创建外部类对象
HelloWorld hello = new HelloWorld();
// 创建内部类对象
Inner i = hello.new Inner();
}
}
类别
- 成员内部类(相当于一个成员变量,可以访问外部类的任意访问控制符)
- 静态内部类(只可以访问外部类的静态成员,创建对象不需要外部类对象,可以直接创建)
- 方法内部类(方法内部类定义在外部类的一个方法中,只有在该方法内部可见,且只在该方法内部使用,因此方法内部类不能用访问控制符和static修饰)
- 匿名内部类(需要继承至一个父类,或者实现一个接口,并且需要实现接口或者父类的所有抽象方法)