码迷,mamicode.com
首页 > 其他好文 > 详细

内部类

时间:2020-11-25 12:21:20      阅读:6      评论:0      收藏:0      [点我收藏+]

标签:mode   port   print   oop   初始化   ack   model   ica   pac   

内部类

内部类是写在类里面的类,在一个类中,还可以定义多个类,内部类可以直接直接获取外部类中的所有属性和方法,就算是私有属性也可以获得。如果说继承像父亲和儿子,那外部类和内部类的关系就像丈夫和妻子,只不过这里是一夫多妻制。内部类像妻子,可以直接使用外部内中所有东西。但内部类不是个称职的妻子,外部内不能使用内部类中的属性和方法。(除了类中的类,还有写在方法中的类,叫做局部内部类。但不推荐使用。)

内部类就是在一个类中再定义一个类,这个类可以直接使用外部类中的所有方法和属性,但如果内部类被static修饰的,会比外部类更早生成,这样就不能使用外部类的东西了。在调用内部类时,需要先初始化外部类,再用外部类来调用内部类。

调用方法,先实例化外部类后:

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

 

创建内部类

package oop.Demo08;
?
//外部类
public class Outer {
   private int ID = 5;
   public void go (){
       System.out.println("外部类");
  }
?
?
   //内部类
   public class Inner{
       public void in (){
           System.out.println("内部类");
      }
?
       public void gatID(){
           System.out.println(ID);//可以直接获取到外部类的私有属性
      }
  }
}

测试类

package oop;
?
import oop.Demo08.Outer;
?
public class Application {
   public static void main(String[] args) {
?
       Outer outer = new Outer();//实例化外部类
?
       Outer.Inner inner = outer.new Inner();//通过外部类再实例化内部类
?
       outer.go();//输出外部类的方法
       inner.in();//输出内部类的方法
       inner.gatID();//输出内部类获取到外部类的私有属性的方法
  }
}
?

 

内部类

标签:mode   port   print   oop   初始化   ack   model   ica   pac   

原文地址:https://www.cnblogs.com/jinweichaoyouqu/p/14015033.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!