修饰
一、static
概念:
注意:
二、final
修饰的类不能被继承
修饰的引用不能更改地址
修饰的方法不能覆盖
修饰的常量不能被更改
三、代码块
代码块:常与局部变量进行使用
构造代码块:类体中,方法外 每生成一个对象就调用一次,常用于配置文件
静态代码块:类体中,方法外 加载类的时候调用,所有对象只调用一次
四、内部类
4.1.概念
4.2.形式
4.2.1成员内部类:成员内部类可以直接访问外部类的私有成员
-------------------------------
public class Outer {
private String name = "Outer";
class Inner{
public void showInfo() {
System.out.println("inner:showInfo()");
System.out.println(name);
}
}
}
----------------------------
public class Test01 {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
inner.showInfo();
}
}
4.2.2.静态内部类:成员内部类如果被static修饰变成静态内部类,作为外部类的一个静态成员而存在。
-------------------------------
public class Outer {
private static String name = "Outer";
static class Inner{
public void showInfo() {
System.out.println("static inner:showInfo()");
System.out.println(name);
}
}
}
----------------------------
public class Test01 {
public static void main(String[] args) {
Outer.Inner inner = new Outer.Inner();
inner.showInfo();
}
}
4.2.3.方法内部类:方法中的东西都是局部的,所以没有修饰符,出了堆栈就不认识,内部类中方法的局部变量只能访问
类当中的方法定义一个类,这个类在完成方法
----------------------------------
public class Outer{
public void print(){
Class Son{
public void showInfo(){
System.out.println("hhhh");
}
}
Son son=new Son();
son.showInfo();
}
}
-----------------------------------
main
Outer outer=new Outer();
outer.print();
4.2.4.匿名内部类:要求有实现存在
public class Outer{
void print(){
class Son implements USB{
void install(){
System.out.println("hhh");
}
}
new Son().install();
}
}
public class Outer{
void print(){
new USB(){
void install(){
System.out.println("hhh");
}
}.install();
//new Son)
}
}
--------------------------------
main方法
Outer outer=new Outer();
outer.print();