java9-7 成员内部类的修饰符

1、 成员内部类的修饰符:
    private 为了保证数据的安全性
    static 为了方便访问数据
  注意:静态内部类访问的外部类数据必须用静态修饰。

  案例:我有一个人(人有身体,身体内有心脏。)

 1 class Body {
 2 private class Heart { //加private 不让直接访问
 3 public void operator() { 
 4       System.out.println("心脏搭桥");
 5 }
 6 }
 7 
 8 public void method() {
 9     if(如果你是外科医生) { //进行校验
10         Heart h = new Heart();
11         h.operator();
12 }
13 }
14 }
15 
16 按照我们刚才的讲解,来使用一下
17 Body.Heart bh = new Body().new Heart();
18       bh.operator();
19 //加了private后,就不能被访问了,那么,怎么玩呢?
20         Body b = new Body();
21         b.method();

 

成员内部类被静态修饰后的访问方式是:
      格式1:外部类名.内部类名 对象名 = new 外部类名.内部类名();
      格式2: 外部类名.内部类名.所要调用的静态方法名();
        如:Outer.Inner.show2();

 1 class Outer {
 2     private int num = 10;
 3     private static int num2 = 100;
 4 
 5 //内部类用静态修饰,
 6 -------是因为内部类可以看成是外部类的成员
 7     public static class Inner {
 8     public void show() {
 9         //System.out.println(num);
10          System.out.println(num2);
11 }
12 
13 public static void show2() {
14         //System.out.println(num);
15         System.out.println(num2);
16 }    
17 }
18 }
19 
20 class InnerClassDemo4 {
21       public static void main(String[] args) {
22         //使用内部类
23         // 限定的新静态类
24         //Outer.Inner oi = new Outer().new Inner();
25         //oi.show();
26         //oi.show2();
27 
28         //成员内部类被静态修饰后的访问方式是:
29         //格式:外部类名.内部类名 对象名 = new 外部类名.内部类名();
30           Outer.Inner oi = new Outer.Inner();
31           oi.show();
32           oi.show2();
33 
34         //show2()的另一种调用方式
35           Outer.Inner.show2();
36     }
37 }

 

posted @ 2016-09-11 22:54  卡拉瓦  阅读(1027)  评论(0编辑  收藏  举报