内部类基础

成员内部类

// 外部类  
public class OuterClass {  
    private String outerVar = "Outer Variable";  
  
    // 成员内部类  
    public class MemberInnerClass {  
        private String innerVar = "Inner Variable";  
  
        // 内部类的方法,可以访问外部类的成员变量和方法  
        public void display() {  
            System.out.println("Accessing outer variable: " + outerVar);  
            System.out.println("Inner variable: " + innerVar);  
        }  
    }  
  
    // 外部类的方法,用于创建内部类实例并调用其方法  
    public void outerMethod() {  
        MemberInnerClass inner = new MemberInnerClass();  
        inner.display();  
    }  
  
    public static void main(String[] args) {  
        // 必须先创建外部类实例,才能创建成员内部类实例  
        OuterClass outer = new OuterClass();  
        OuterClass.MemberInnerClass inner = outer.new MemberInnerClass();  
        inner.display();  
  
        // 或者通过外部类方法创建内部类实例并调用方法  
        outer.outerMethod();  
    }  
}

静态内部类

// 外部类  
public class OuterClass {  
    private static String outerStaticVar = "Outer Static Variable";  
    private String outerInstanceVar = "Outer Instance Variable";  
  
    // 静态内部类  
    public static class StaticInnerClass {  
        private void display() {  
            // 只能访问外部类的静态成员变量和方法  
            System.out.println("Accessing outer static variable: " + OuterClass.outerStaticVar);  
              
            // 不能直接访问外部类的非静态成员变量和方法  
            // System.out.println(outerInstanceVar); // 这将导致编译错误  
        }  
  
        public void show() {  
            display();  
            System.out.println("Inside StaticInnerClass show method.");  
        }  
    }  
  
    // 外部类的方法  
    public void outerMethod() {  
        StaticInnerClass inner = new StaticInnerClass();  
        inner.show();  
    }  
  
    public static void main(String[] args) {  
        // 不需要外部类实例就可以创建静态内部类的实例  
        OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();  
        inner.show();  
  
        // 也可以通过外部类实例来调用静态内部类,但这不是必需的  
        OuterClass outer = new OuterClass();  
        outer.outerMethod();  
    }  
}

匿名内部类,

就是new 一个接口,完成它的实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值