static
static静态变量可以被每一个对象调用,可以直接用类名进行调用。
静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。
如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法,静态方法也可以用类名直接调用。
封装
对类中的属性加入private修饰符,通过geter/seter方法来获得更改属性。
访问修饰符
this
当前对象的属性和方法。
内部类
- 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。
- 内部类的方法可以直接访问外部类的所有数据,包括私有的数据。
- 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便。
- 定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象。
- 访问外部类中的相同属性使用this。
System.out.println("外部类中的name:" + HelloWorld.this.name);
静态内部类
- 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问
- 如果是访问外部类同名静态变量,类名.变量名。
- 创建静态内部对象不需要外部对象,直接创建。
方法内部类
方法内部类只能在方法中使用,不能使用访问控制修饰符。