1.内部类的概念
一个类的内部包含着另一个类
分类:1.成员内部类
2.局部内部类(包含匿名内部类)
成员内部类的定义格式: 修饰符 class 外部类名称
{
修饰符 class 内部类名称
{
}
}
注意:内用外随意访问,外用内,需要内部类对象。
2.成员内部类的使用
1.间接方式:在外部类的方法中,使用内部类,然后main只调用外部类的方法。
2.直接方式: 创建内部类对象 公式 外部类名称.内部类名称 对象名=new 外部类名称().new 内部类名称
//注意 内部类名字:外部类$内部类
public class Body {
//外部类方法
public void methodbody()
{
System.out.println("外部类方法");
Heart heart=new Heart();
heart.beat();
}
public class Heart
{
//
//内部类成员变量
private String head="铁头";
//内部类变量创建getter和setter方法和beat方法
public void beat()
{
System.out.println("心脏跳动");
}
public String getHead() {
return head;
}
public void setHead(String head) {
this.head = head;
}
public Heart(String head) {
this.head = head;
}
public Heart() {
}
//测试
public class test1 {
public static void main(String[] args) {
//间接访问 现在从外部类访问内部类 方式1
Body body = new Body();
body.methodbody();
System.out.println("===================");
//直接访问 现在从外部类访问内部类 方式2
Body.Heart one = new Body().new Heart();
one.beat();
/*外部类方法
心脏跳动
===================
心脏跳动*/
}
}
}
3.内部类和外部类同名成员变量访问
public class outer {
int num=10;//外部类成员变量
public class inner
{
int num=20; //内部类成员变量
public void method()
{
int num=30;
System.out.println(num);//局部变量,就近原则
System.out.println(this.num);//内部类成员变量
System