成员内部类和局部内部类
1、成员内部类
成员内部类可以访问外部类的private类型
外部类不可以访问内部类的成员
在声明内部类的对象时
外部类 . 内部类 对象名 = new 外部类() . new 内部类();
代码:
class Crile{
private double r=0;
public Crile(){
this.r=1;
}
class Draw{
private int x=1;
public Draw( ){
this.x=2;
}
public void drawShape(){
System.out.println("Crile r="+r);
System.out.println("Draw x="+x);
}
}
public void crileShape(){
System.out.println("r="+r);
}
}
public class InnerCLass_1 {
public static void main(String[] args) {
Crile a=new Crile();
Crile.Draw b= new Crile().new Draw();
a.crileShape();
b.drawShape();
}
}
2、局部内部类
局部内部类是定义在一个方法或者一个作用域里面的类,
它和成员内部类的区别在于部内部类的访问仅限于方法内
或者该作用域内。
但须注意的是 局部内部类只能限于于方法内
class Outer{
private int s;
public Outer(int s){
this.s=s;
}
public void f(int k){
class Inner{
private int k;
public Inner(int k){
this.k=k;
}
public void setK(int k){
this.k=k;
}
public void disK(){
System.out.println("k="+k);
}
}
Inner a= new Inner(5);
a.disK();
a.setK(6);
a.disK();
}
public void disS(){
System.out.println("s="+s);
}
}
public class InnerClass_2 {
public static void main(String[] args) {
Outer b=new Outer(4);
b.disS();
b.f(3);
}
}