java内部类--成员内部类

 概念:在一个类的内部再定义一个完整的类。


1,成员内部类 

  • 在类的内部定义与实例变量,方法同级别。
  • 是外部类的一个实例部分,创建内部类对象时,一定要依赖于外部类。
  • 编写一个内部类Outer,在Outer内编写一个内部类Inner
package innerclass.memberinnerclass;

public class Outer {

    private String name = "张三";
    private String sex = "男";

    public class Inner{

        private String name = "李四";
        private int age = 18;


        /*
          在内部类可以直接输出内部类的参数,但当参数名相同时,优先输出内部类,输出外部类要
          用"外部类名.this.参数名"  
        */
        public void run(){
            System.out.println(name);//输出  李四  也可用"this.name"
            System.out.println(sex);//输出  男
            System.out.println(age);//输出  18

            //输出  张三  与外部类名相同要用"Outer.this.name"
            System.out.println(Outer.this.name);
        }


    }


}
  •  编写一个测试类Test
public class Test {

    //内部类是外部类的一个实例部分,创建内部类对象一定要依赖内部类
    public static void main(String[] args) {

        //创建外部类对象
        Outer outer = new Outer();
        //通过外部类创建内部类对象
        Outer.Inner inner = outer.new Inner();

        //调用内部类方法
        inner.run();
    }
}
  • 输出

  •  注意

           1,innerclass.memberinnerclass.Outer.Inner' is not public in 'innerclass.memberinnerclass.Outer'. Cannot be accessed      from outside package

           外部类Inner在“innerclass.memberinnerclass.Outer”中不是公共的。无法从包外部访问,定义内部类是加一个修饰属性”public“,定义为公共的。

            2,内部类不能定义静态成员(static),但可以定义静态常量。非static的内部类,在外部类加载的时候,并不会加载它,所以它里面不能有静态变量或者静态方法。

 
 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值