Java 静态成员类 非静态的成员类 局部类 匿名类

这篇博客详细介绍了Java中的四种嵌套类:静态成员类、非静态成员类、局部类和匿名类。通过实例展示了它们的使用方式和特点,包括静态成员类作为复杂数据类型的替代品,非静态成员类需要依赖外部类实例,局部类只能在特定代码块内使用,以及匿名类的简洁表示形式。同时,还提及了嵌套类在枚举和接口中的应用,强调了避免过度使用以保持代码清晰。
摘要由CSDN通过智能技术生成
//*静态 *非静态的成员类 *局部类 *匿名类
public class Main{
    public static void main(String[]argv){
        //位于包的内部的类我们称之为顶级类
        //类里面还可以嵌套类
        //嵌套类可以分为四种
        //*静态 *非静态的成员类 *局部类 *匿名类

        //#静态成员类
        //静态成员类需要定义在一个类里面,当类的属性用基础数据类型描述时
        //过于复杂,则可以使用静态成员类
        Person person=new Person();
        person.show();
        showHello();
        noname();
    }
    //静态成员类
    //仍然遵循public private protected访问准则
    //如果写为public,则在Main类外也可以访问 类型名称为 Main.Perosn girl=new Main.Person();
    private static class Person{
        public void show(){
            System.out.print("hello world\n");
        }
    }

    //非静态成员类
    //与静态成员类的写法只是相差个static,但二者差别巨大
    public class Girl{
        private void show(){
            System.out.print("i am girl\n");
        }
    }
    //如果在Main外面想定义Girl对象,则需要现构造一个Main对象,而静态成员类不用
    /*
     *var obj=new Main();
     *var girl=new Main.Girl();
     *girl.show();
     * */



    //局部类
    //在构造函数,初始化代码块内部被声明,只能在相应的代码块使用
    //局部类也可以访问外部类的变量,但变量必须是final的
    public static void showHello(){
        class GirlF{
            GirlF(String name){
                this.name=name;
            }
            public String name;
            public void showName(){
                System.out.println(this.name);
            }
        }
        GirlF per=new GirlF("gao");
        per.showName();
    }

    //匿名类
    public static void noname(){
        var obj=new Tensor(){
            @Override
            public double getNum(){
                return 99;
            }
        };
        System.out.println(obj.getNum());
    }

    //类的内部,枚举,接口也可以嵌套
    //避免使用,很头大
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高万禄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值