**
内部类
**
1.成员内部类
2.局部内部类
成员内部类格式:
修饰符 class 类名称{
修饰符 class 内部类名称{
//....
}
//.....
}
注意:内用外,随意;外用内,需要内部对象。
=================================================
如何使用成员内部类
1.在外部类的方法中使用内部类;然后main只是调用外部类方法。
2.直接方式:
【类名称 对象名 = new 类名称();】
【外部类名称.内部类名称 对象名 =new 外部类名称().new 内部类名称();】
===============================================
public class demo1 {
public static void main(String[] args) {
new body().methodb();
body.Heart heart=new body().new Heart();
heart.beat();
}
}
================================================
public class body { //外部类
public class Heart{ //成员内部类
public void beat(){
System.out.println("内部类方法"); //内部类方法
System.out.println(name);
}
}
//外部类成员变量
private String name="x";
public void methodb(){
Heart heart=new Heart();
heart.beat();
new Heart().beat();
System.out.println("外部类方法"); //外部类方法
}
}
==================================================
//如果出现重名,调用格式:外部类名称.this.外部类成员变量名;
public class Outer {
int num=10;
public class Inter{
int num=20;
public void methodInter(){
int num =30;//内部类方法局部变量
System.out.println(num);//输出30,就近原则
System.out.println(this.num);//输出20
System.out.println(Outer.this.num);//输出10
}
}
}
局部内部类:
如果一个类是定义在一个方法内部的,那么是一个局部内部类
“局部”;只有当前所属的方法才能使用它,出了这个方法外面就不能用了
定义格式:
修饰符 class 外部类名称{
修饰符 返回值类型 外部类方法名称(){
class 局部内部类名称{
//.....
}
}
}
public class Outer {
public void methodOuter(){
class Inter{//局部内部类
int num=10;
public void methodInter(){
System.out.println(num);
}
}
Inter inter=new Inter();
}
}