专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

内部类

内部类

Java允许将一个类A声明在另一个类B中,则类A为内部类,类B为外部类

分类

成员内部类(静态或非静态)

作为外部类的成员,调用外部类的结构

1、 可以被static修饰
2、 可以被四种不同权限修饰
3、 作为类

 *  类内可以定义属性、方法、构造器等
 *  可以被final修饰,表示此类不能被继承(不使用final可以被继承)
 *  可以被abstract修饰,表示该类不能被实例化

局部内部类

  • 在方法内、代码块内、构造器内
  • 在局部内部类的方法中,如果调用局部内部类所在的声明方法中局部变量,要求此局部变量声明为final

代码实现

使用内部类

public class Test {
    public static void main(String[] args) {
        //静态成员内部类
        Person.Sing s = new Person.Sing();
        s.name = "殷志源";
        s.show();
        System.out.println("----------------");
        //非静态成员内部类
        Person p = new Person();
        Person.Walk w = p.new Walk();
        w.nickname = "丸子";
        w.show();
        //局部内部类
        System.out.println("-------------");
        p.eat();
    }
}

class Person{

    static class Sing{
        String name;

        public void show(){
            System.out.println("静态成员内部类");
            System.out.println(name + "在唱歌");
        }
    }

    class Walk{
        String nickname;

        public void show(){
            System.out.println("非静态成员内部类");
            System.out.println(nickname + "在走路");
        }
    }

    public void eat(){
        String foodname = "南煎丸子";

        class Play{
            final String gameName = "消灭星星";
            public void show(){
                System.out.println("局部内部类");
                System.out.println("在玩的游戏名字" + gameName);
            }
        }

        Play p = new Play();
        String gameName = p.gameName;
        p.show();
        System.out.println("喜欢的食物名字是" + foodname);

    }
}

运行结果

70_1.png

使用

实例化成员内部类的对象

1、 创建静态成员内部类
70_2.png
2、 创建非静态成员内部类
70_3.png

在成员内部类中区分调用外部类的结构

70_4.png

未经允许不得转载:搜云库技术团队 » 内部类

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们