package innnerclass;
//外部类
class Out {
private static int age = 12;
// 静态内部类
static class In {
public void print() {
System.out.println(age);
}
}
}
// 外部类
class Out1 {
private int age = 13;
// 内部类
class In1 {
public void print() {
System.out.println(age);
}
}
}
// 外部类
class Out2 {
private int age = 14;
// 私有内部类
private class In2 {
public void print() {
System.out.println(age);
}
}
// 同级公共方法调用
public void print() {
new In2().print();
}
}
// 外部类
class Out3 {
private int age = 15;
// 内部类
class In {
private int age = 16;
public void print() {
int age = 17;
System.out.println("局部变量:" + age);
System.out.println("内部类变量:" + this.age);
System.out.println("外部类变量:" + Out3.this.age);
}
}
}
// 方法内部类
class Out4 {
private int age = 19;
public void Print(final int x) {
class In4 {
public void inPrint() {
System.out.println(x);
System.out.println(age);
}
}
new In4().inPrint();
}
}
public class Demo {
public static void main(String[] args) {
// 静态内部类
new Out.In().print();
// 普通类
new Out1().new In1().print();
// 私有内部类-同级方法调用
new Out2().print();
// 内部类私有变量访问
new Out3().new In().print();
// 方法内部类
new Out4().Print(18);
}
}
//外部类
class Out {
private static int age = 12;
// 静态内部类
static class In {
public void print() {
System.out.println(age);
}
}
}
// 外部类
class Out1 {
private int age = 13;
// 内部类
class In1 {
public void print() {
System.out.println(age);
}
}
}
// 外部类
class Out2 {
private int age = 14;
// 私有内部类
private class In2 {
public void print() {
System.out.println(age);
}
}
// 同级公共方法调用
public void print() {
new In2().print();
}
}
// 外部类
class Out3 {
private int age = 15;
// 内部类
class In {
private int age = 16;
public void print() {
int age = 17;
System.out.println("局部变量:" + age);
System.out.println("内部类变量:" + this.age);
System.out.println("外部类变量:" + Out3.this.age);
}
}
}
// 方法内部类
class Out4 {
private int age = 19;
public void Print(final int x) {
class In4 {
public void inPrint() {
System.out.println(x);
System.out.println(age);
}
}
new In4().inPrint();
}
}
public class Demo {
public static void main(String[] args) {
// 静态内部类
new Out.In().print();
// 普通类
new Out1().new In1().print();
// 私有内部类-同级方法调用
new Out2().print();
// 内部类私有变量访问
new Out3().new In().print();
// 方法内部类
new Out4().Print(18);
}
}