class OutTer{
private String str = "hello" ; //定义属性
public void fun (final int temp){ //定义方法
class InNer{ //在方法中定义内部变量
public void prin(){ //定义内部类方法
System.out.println("访问外部类中的属性:"+str) ;
System.out.println("外部类方法的参数:"+temp) ;
}
}
new InNer().prin() ;
}
}
public class InnerDemo6{
public static void main(String args[]){
new OutTer().fun(30) ; //实例化
// new OutTer().fun().InNer().prin() ; 为什么不能实例化方法中的内部类方法
}
}
运行结果:
内部类通常由成员方法创建其实例。通常有两种方法: 第一种:在方法体里面去new。就像你现在做的一样 class OutTer{
private String str = "hello" ; //定义属性
public void fun (final int temp){ //定义方法
class InNer{ //在方法中定义内部变量
public void prin(){ //定义内部类方法
System.out.println("访问外部类中的属性:"+str) ;
System.out.println("外部类方法的参数:"+temp) ;
}
}
new InNer().prin() ;其实你是在这里实例化的}
}
public class InnerDemo6{
public static void main(String args[]){
new OutTer().fun(30) ; //实例化}
} 第二种:直接在参数括号中new一个内部类对象,作为期参数。在awt编程的事件监听中,有很多适配器,通常是这样的情况,比如:
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});