java入门-成员内部类和静态内部类的访问
(一)成员内部类
package InnerClass;import javax.print.attribute.standard.MediaSize;public class Outer {//2外部类中的成员private int age=99;public static String a;public class Inner{//普通的成员内部类//1.1成员变量public String name;private int age=88;public static String Schoolname;//JDK16开始才支持定义静态成员//1.2成员方法public String getName(){return name;}public void setName(String name) {this.name = name;}public void test(){//2.1内部类 可以像普通方法一样访问外部类的成员a="njax";System.out.println(age);System.out.println(a);}public void printage(){int age=66;//就近原则,当直接打印时选择最近值:66System.out.println(age);//66//this 代表的是当前内部类的对象System.out.println(this.age);//88//要访问外部类对象,加上一个外部类System.out.println(Outer.this.age);//99}}public void tset2(){/* 3外部类中的方法不可以访问内部类中的成员name="adhaj";System.out.println(name);*/}
}
Test方法创建对象及其访问
package InnerClass;public class Test
{public static void main(String[] args) {//目标:了解 成员内部类 及其特点
//访问成员内部类,要先创建外部类的对象才能创建内部类的对象Outer.Inner in=new Outer().new Inner();in.test();in.printage();}
}
(二)静态内部类
package InnerClass.staticInner;public class Outer {//private int age;public static String schoolName;public static class Inner{//静态内部类,与普通类所包含的东西没有区别,private String name;public static int a;public void test(){//2.静态类中可以直接访问外部类的static变量,// 但是不可以直接访问外部类的实例成员变量age//因为age是对象的成员变量,而静态类和静态成员变量一样属于类,不用创建对象System.out.println(schoolName);}public void setName(String name) {this.name = name;}public String getName() {return name;}}
}
test:
package InnerClass.staticInner;public class Test {public static void main(String[] args) {//目标:了解静态内部类//1.静态内部类与静态成员变量类似,可以直接使用外部类访问,不用创建外部类对象Outer.Inner in=new Outer.Inner();in.setName("anjxb");}}