内部类(成员类)-非静态成员类、静态成员类

内部类

也称成员类

非静态成员类

class Outer{
    private int x = 1;
    public void print(){
        Inner inner = new Inner();
        inner.display();
        System.out.println("=======================================");
        System.out.println("外部类访问内部类成员需要先进行实例化,y的值为"+inner.y);
    }

    class Inner{
        private int y = 2;
        public void display(){
            //在内部类中可直接访问外部类的所有成员,不需要进行实例化
            System.out.println("在内部类Inner中访问外部类x的数值:"+x);
        }
    }
}

public class InterClass {
    public static void main(String[] args) {
        Outer outer = new Outer();
        outer.print();
    }
}

输出结果

在内部类Inner中访问外部类x的数值:1

外部类访问内部类成员需要先进行实例化,y的值为2

class Outer2{
    private int i = 0;
    public Outer2(){

    }
    public Outer2(int i){
        this.i = i;
    }
    public void print(){
        System.out.println("Outer2:"+i);
    }

    class Inner2{
        private int j = 0;
        public Inner2(){

        }
        public Inner2(int j){
            this.j = j;
        }
        public void display(){
            System.out.println("Inner:"+j+"\t"+"Outer:"+i);
        }
    }
}

public class InnerClass02 {
    public static void main(String[] args) {
        //创建外围类对象outer2
        Outer2 outer2 = new Outer2(10);
        outer2.print();
        //必须先创建外围类对象,然后才可通过 该外围类对象 创建内部类对象,关键字new需要放在外围类对象之后
        Outer2.Inner2 inner2 = outer2.new Inner2(20);
        inner2.display();
    }
}

输出结果

Outer2:10
Inner:20 Outer:10

静态成员类

public class TestStaticClass {
    public class Inner{

    }
    public static class StaticInner{

    }

    public static void main(String[] args) {
        //实例化静态类时,new前不需要对象变量
        new StaticInner();
        TestStaticClass testStaticClass = new TestStaticClass();
        //必须先创建外围类对象,然后才可通过 该外围类对象 创建内部类对象,关键字new需要放在外围类对象之后
        TestStaticClass.Inner inner = testStaticClass.new Inner();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值