Java各种类的区别,全部删除(java中类有哪些)

java中含有许多类,不同的类有不同的用法,这里列举了一些实例。

普通类大家都容易理解,内部类主要起到代码隐藏机制,为了更好的组织代码结构。

内部类测出现给编程带来了很多困扰,在java编程思想中,对为什么出现内部类做了如下解释:

每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承某个(接口)实现,对内部类都没有影响。

内部类是的多重继承的解决方案变得完整,实现了“多重继承”。毕竟一个java类只能继承一个父类。

public class ClassDemo {

    InnerClass innerClass = new InnerClass();
    public void selfIntroduce(){
        System.out.println("hello,我是:"+this.getClass().getName());
    }
    public void useInnerClass(){
        innerClass.selfIntroduce();

        InnerClass innerClass = new InnerClass();
        innerClass.name="wowo";
        innerClass.selfIntroduce();;
    }

    /**
     * 方法中的局部类
     */
    public void useMethodClass(){
        class MethodClass implements HelloInnerClass{

            @Override
            public void selfIntroduction() {
                System.out.println("我在方法里也可以创建哦,我的名字是:"+this.getClass().getName());
            }
        }
        MethodClass methodClass = new MethodClass();
        methodClass.selfIntroduction();
    }

    /**
     * 定义一个接口
     */
    interface HelloInnerClass{
        void selfIntroduction();
    };

    public static void main(String[] args) {
        SecondClass secondClass = new SecondClass();
        secondClass.selfIntroduce();
        //内部类不能new,会报错
        //InnerClass innerClass = new InnerClass();
        ClassDemo classDemo = new ClassDemo();
        classDemo.useInnerClass();
        //静态内部类,就可以在静态方法中直接new
        StaticInnerClass staticInnerClass = new StaticInnerClass();
        staticInnerClass.selfIntroduce();
        ClassDemo.StaticInnerClass staticInnerClass1 = new ClassDemo.StaticInnerClass();
        staticInnerClass1.selfIntroduce();
        StaticInnerClass.selfIntroduce("静态方法自我介绍。");

        //匿名内部类
        HelloInnerClass trump = new HelloInnerClass() {
            @Override
            public void selfIntroduction() {
                System.out.println("wowo,我是一个匿名内部类哦,我的名字叫川建国。");
            }
        };
        trump.selfIntroduction();

        //局部类
        classDemo.useMethodClass();
    }

    /**
     * 普通内部类
     */
    class InnerClass{
        public String name;
        public void selfIntroduce(){
            System.out.println("hello,InnerClass,我的名字是:" + this.getClass().getName()+",name:"+name);
        }
    }

    /**
     * 静态内部类
     */
    static class StaticInnerClass{
        public String name = "StaticInnerClass";
        public void selfIntroduce(){
            System.out.println("hello,StaticInnerClass,我的名字是:" + this.getClass().getName()+",name:"+name);
        }
        public static void selfIntroduce(String wowo){
            System.out.println("hello,StaticInnerClass,我的名字是:"+wowo);
        }
    }

}

/**
 * 同一个类文件中的其他类
 * 使用起来和public类没什么区别
 * 编译完之后是一个单独的class文件,与ClassDemo只差一个public
 */
class SecondClass{

    public void selfIntroduce(){
        System.out.println("hello,我是"+this.getClass().getName());
    }

    public static void main(String[] args) {
        ClassDemo classDemo = new ClassDemo();
        classDemo.selfIntroduce();
    }

}
Java各种类的区别,全部删除(java中类有哪些)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2705686032@qq.com 举报,一经查实,本站将立刻删除。原文转载: 原文出处:

(0)
尊云-小张的头像尊云-小张
上一篇 2024 年 6 月 18 日 09:02
下一篇 2024 年 6 月 18 日 09:05

相关推荐

发表回复

登录后才能评论

联系我们

400-900-3935

在线咨询: QQ交谈

邮件:cong@zun.com

工作时间:365天无休服务 24小时在线

添加微信