网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 后端开发 > Java >

内部类

时间:2025-09-24 13:57

人气:

作者:admin

标签:

导读:什么是内部类 内部类是一个定义在另一个类内部的类。 内部类可分为四种: 1. 成员内部类: 定义在另一个类内部,且没有使用static修饰,且可以访问外部类所有的成员。要创建内部类的...

什么是内部类

内部类是一个定义在另一个类内部的类。
内部类可分为四种:

1. 成员内部类: 定义在另一个类内部,且没有使用static修饰,且可以访问外部类所有的成员。要创建内部类的实例必须先存在外部类的实例。
public class Outer {  
    String name;  
    class Inner {  
        public void test() {  
            System.out.println("Inner test" + name);  
        }  
    }  
    public static void main(String[] args) {  
        Outer outer = new Outer();  
        Inner inner = outer.new Inner();  
        outer.name = "Inner";  
        inner.test();  
    }  
}
2. 静态内部类:用static修饰的内部类,创建内部类无需所外的外部类,可直接声明。
public class Outer {  
  
     public static class Inner {  
        public void test() {  
            System.out.println("Inner test");  
        }  
    }  
  
    public void test() {  
        Inner inner = new Inner();  
        inner.test();  
    }  
  
    public static void main(String[] args) {  
        Inner inner = new Inner();  
        inner.test();  
    }  
}
import org.self.study.day2.inner.Outer.Inner;  
// 其他外部类
public class Other {  
    public static void main(String[] args) {  
        Inner inner = new Inner();  
        inner.test();  
    }  
}
3. 局部内部类 : 在方法内部、构造方法、代码块内部或者作用域内的类(if or for),外部无法访问,不能使用访问修饰符,可以访问外部类所有成员包括私有成员,可以访问方法中的final或等效final的局部变量
public class Outer {  
    public String name;  
  
    String sex;  
  
    private int age;  
  
    protected String mark;  
  
    public void test() {  
        // 局部内部类  
        class MethodInner {  
            public void test() {  
                System.out.println(name);  
                System.out.println(age);  
                System.out.println(mark);  
                System.out.println(sex);  
                System.out.println("MethodInner test");  
            }  
        }  
  
        MethodInner methodInner = new MethodInner();  
        methodInner.test();  
    }  
  
    public static void main(String[] args) {  
        Outer outer = new Outer();  
        outer.test();  
    }  
}
4. 匿名内部类:是一种特殊的内部类,它没有类名,通常用于只需要实现一次的实例类,匿名类在声明的同时实例化。通常用于接口实现或者继承类。
Runnable r = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello from anonymous class!");
    }
};
new Thread(r).start();

lambda表达式

Runnable r = () -> System.out.println("Hello from lambda!");
new Thread(r).start();
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信