主要思想
主要为了标记下java关于静态变量,静态方法,静态块,静态嵌套类,内部类之间的关系
Java 静态类、静态方法和静态变量
http://hongyubox.com/2016/08/05/Java%20%E9%9D%99%E6%80%81%E7%B1%BB%E3%80%81%E9%9D%99%E6%80%81%E6%96%B9%E6%B3%95%E5%92%8C%E9%9D%99%E6%80%81%E5%8F%98%E9%87%8F/
Java 静态变量、方法、快,(非)静态内部类 https://www.jianshu.com/p/8cb87b7177ef
为什么Java内部类要设计成静态和非静态两种? https://www.zhihu.com/question/28197253
public class Outter {
private int variable0 = 0;
private static int variable1 = 1;
private final static int variable2 = 3;
static {
variable1 = 4;
}
public void solution1(){
System.out.println(variable0 + " " + variable1 + " " + variable2);
}
public static void solution2(){
System.out.println(variable1 + " " + variable2);
}
public void solution5(){
InnerTwo two = new InnerTwo();
two.solution4();
}
class InnerOne{
private int variable3 = 5;
public void solution3(){
solution1();
solution2();
System.out.println(variable0 + " " + variable1 + " " + variable2 + " " + variable3);
}
}
class InnerTwo{
InnerOne one = new InnerOne();
public void solution4(){
one.solution3();
}
}
static class InnerThree{
private int variable4 = 6;
private static int variable5 = 7;
private final static int variable6 = 8;
public void solution5(){
solution2();
System.out.println(variable1 + " " + variable2 + " " + variable4 + " " + variable5 + " " + variable6);
}
public static void solution6(){
solution2();
System.out.println(variable1 + " " + variable2 + " " + variable5 + " " + variable6);
}
}
public static void main(String[] args){
System.out.println(Outter.variable1 + " " + Outter.variable2 + " " + InnerThree.variable5 + " " + InnerThree.variable6);
Outter.solution2();
Outter.InnerThree.solution6();
Outter.InnerThree three = new Outter.InnerThree();
System.out.println(three.variable4);
three.solution5();
Outter out = new Outter();
System.out.println(out.variable0);
out.solution1();
Outter.InnerOne one = out.new InnerOne();
System.out.println(one.variable3);
one.solution3();
}
}