1.内部类
//外部类HelloWorld
public class HelloWorld{ //外部类的私有属性name
private String name = "imooc"; //外部类的成员属性
int age = 20; //成员内部类Inner
public class Inner {
String name = "爱慕课";
//内部类中的方法
public void show() {
System.out.println("外部类中的name:" + HelloWorld.this.name );
System.out.println("内部类中的name:" + name );
System.out.println("外部类中的age:" + age);
}
} //测试成员内部类
public static void main(String[] args) { //创建外部类的对象
HelloWorld o = new HelloWorld (); //创建内部类的对象
Inner inn = o.new Inner() ; //调用内部类对象的show方法
inn.show();
}
}
2.java中的静态内部类 (static意思是静态的。方法前加上static叫做静态方法,类前加上static叫做静态类。静态方法必须存在于静态类中,但静态类中的方法可以不都是静态方法。使用静态方法时,直接用类名+“.”+方法名。不用再实例化,创建类的对象,达到方法调用方便,节省空间!)
//外部类
public class HelloWorld { // 外部类中的静态变量score
private static int score = 84; // 创建静态内部类
public static class SInner {
// 内部类中的变量score
int score = 91; public void show() {
System.out.println("访问外部类中的score:" + HelloWorld.score );
System.out.println("访问内部类中的score:" + score);
}
} // 测试静态内部类
public static void main(String[] args) {
// 直接创建内部类的对象 SInner si = new SInner();
// 调用show方法
si.show();
}
}
3.java中的方法内部类
//外部类
public class HelloWorld { private String name = "爱慕课"; // 外部类中的show方法
public void show() {
// 定义方法内部类
class MInner {
int score = 83;
public int getScore() {
return score + 10;
}
} // 创建方法内部类的对象
MInner M = new MInner(); // 调用内部类的方法
int newScore = M.getScore(); System.out.println("姓名:" + name + "\n加分后的成绩:" + newScore);
} // 测试方法内部类
public static void main(String[] args) { // 创建外部类的对象
HelloWorld mo = new HelloWorld(); // 调用外部类的方法
mo.show();
}
}