java基础3--面向对象(上)(内部类)

*内部类的定义:

  由于在类的内部可以定义成员变量和方法,那么在类的内部再定义一个类,就称为内部类。比如在类Outer的内部再定义一个类Inner,那么Inner就称为内部类,而Outer则称为外部类。

 

  内部类可以访问外部类的成员变量和方法:

   class Outer{
 private String info ="hello!";
 
 class Inner{
  public void print(){
  System.out.println(info);
  }
 }

 public void fun(){
  new Inner().print();    //通过创建内部类的对象调用内部类的方法
 }
}


class TestInner{
 public static void main(String[] args){
  new Outer().fun();
 }
}

 

如果把内部类拿到外部,要使用访问原outer类的属性则要如下代码:

 

class Outer{
 private String info ="hello!";
 public String getInfo(){
  return this.info;
 }
 public void fun(){
  new Inner(this).print();   
 }
}

class Inner{
  private Outer out = null;
  public Inner(Outer out){
   this.out = out;
  }
  public void print(){
    System.out.println(out.getInfo());
 }
}


class TestInner{
 public static void main(String[] args){
   new Outer().fun();
 }
}

 

代码复杂了很多,所以内部类的好处就是方便访问外部类的私有属性。

 

 

*使用static定义内部类

  如果将内部类声明为static类型。此内部类就成了外部类,它仍能访问原外部类的静态属性。

  

 

*在外部访问内部类

 一个内部类除了可以通过外部类访问,也可以直接在其他类中进行调用,调用的基本格式为:

   外部类.内部类 内部类对象 = 外部类实例.new 内部类();

   以上的格式必须要找到外部类的实例化对象之后,才可以通过外部类的实例化对象去实例化内部类的对象。

例:Outer out = new Outer();

      Outer.Inner in = out.new Inner();

 

*在方法中定义内部类

 也可以在方法中定义一个内部类,但是在方法中定义的内部类不能直接访问方法中的参数,如果方法中的参数要被内部类访问,则必须加上final关键字。

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值