java-成员内部类

来源:互联网 发布:qq抢红包软件 编辑:程序博客网 时间:2024/05/18 00:57
按照内部类的位置划分:

成员位置:在成员位置定义的类叫做成员内部类
局部位置:在局部位置定义的类叫做局部内部类

成员内部类:
1-如何直接访问内部类的成员:
格式:

   外部类名.内部类名 对象名 = new 外部类对象.new 内部类对象

   Outer.inner oi = new Outer().new Inner();

   oi.属性,方法。。

2-成员内部类的修饰符:
private:保证数据的安全性。
class Body{   private class Heart{      public void operate(){        syso("心脏手术")      }   }      public void method(){       if(是心脏科医生){          Heart h = new Heart();          h.operate();       }   }}

static:(内部类可以用static修饰的原因是,内部类可以看成是外部类的一个成员。)为了方便访问数据。

  注意:被静态修饰的成员内部类只能访问的外部类静态成员。

3-注意:
   成员内部类被静态修饰后的访问方式是:
格式:
    外部类名.内部类名 对象名 =  new 外部类名.内部类名();

4-外部类访问静态内部类的静态成员也可以通过以下方式访问:

Outer.Inner.成员

注意:内部类和外部类没有继承关系。
面试题案例:
package com.haust.day10.demo11;/** * 要求:请填空输出30 20 10  *  * */public class Outer {    public int num=10;        class Inner {    public  int num=20;    public void show(){    int num=30;    System.out.println(???);    System.out.println(???);    System.out.println(???);        }     }}入口类:package com.haust.day10.demo11;public class Main {public static void main(String[] args) {Outer.Inner oi = new Outer().new Inner();oi.show();}}
答案:
num
this.num

new Outer().num或者Outer.this.num(推荐)