成员内部类
也叫做成员内部类,或者普通内部类,是指在类内部定义的类。
1.成员内部类
public class Person {
public int age;
/**
* 普通成员方法
*/
public void eat() {
System.out.println("在吃东西");
}
/**
* @return 内部类实例
*/
public Heart getHeart() {
return new Heart();
}
/**
* 成员内部类
*/
public class Heart {
int age = 22;
/**
* 内部类普通成员方法
*/
public void beat() {
eat();
System.out.println("心脏在跳动" + age);
System.out.println("---------------");
}
}
}
以上代码中public class Heart {}
就是成员内部类,成员内部类中也有成员属性和成员方法如 public void beat() {}
和int age = 22;
,访问内部类的成员方法有多种方法:
1.外部类.new 内部类
Person.Heart myHeart= new Person().new Heart();
myHeart.beat();
2.外部类对象.new 内部类
Person person = new Person();
myHeart= person. new Heart();
myHeart.beat();
3.外部类.get方法
Person person = new Person();
myHeart= person.getHeart();
myHeart.beat();
4.访问成员内部类成员属性方法 内部类对象.属性名
System.out.println(person.age); // 外部类成员属性
System.out.println(myHeart.age); // 内部类成员属性
5.在成员内部类可以访问外部类方法和属性,外部类访问成员内部类的成员 需要先实例化内部类
public void beat() { // 内部类
eat(); // 外部类的成员方法
System.out.println( age); // 内部类的age 属性
System.out.println(Person.this.age); // 外部类的成员属性
}
/**
* 外部类普通成员方法
*/
public void eat() {
Heart heart= new Heart(); // 实例化内部类
System.out.println(heart.gender); // 访问成员内部类属性
heart.beat(); // 访问内部类方法
}