ceacer 2 已发布 1月29号 分享 已发布 1月29号 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(); } } 评论链接 在其他网站上分享 更多分享选项...
推荐帖
创建账户或登录以发表评论
您需要成为会员才能发表评论
创建一个帐户
在我们的社区注册一个新账户。很简单!
注册新账户登入
已有账户?在此登录
立即登录