A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© vipzh 中级黑马   /  2012-12-3 14:32  /  1458 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

内部类的实现方式可以说下吗?

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

3 个回复

倒序浏览
class privateOuter
{
        private String name;
       
        //内部类
        private class Inner
        {
                //定义内部方法
                void function(String name)
                {
                        //修改外部类中的属性
                        privateOuter.this.name = name;
                        //调用外部类中的方法
                        show();
                }
        }
        //创建内部类
        public void makeInner()
        {
                Inner in = new Inner();
                //调用内部方法
                in.function("zhangsan");
        }
        private void show()
        {
                System.out.println(name);
        }
}
class Test
{
        public static void main(String[] args)
        {
                new privateOuter().makeInner();
        }
}


直接看代码你能明白不?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
http://zagwibh.blog.163.com/blog/static/2141740202012103095343599/,我正好整理了一个内部类的有关知识。你可以看下,希望能对你有帮助
回复 使用道具 举报
匿名内部类的两种实现方式:第一种,继承一个类,重写其方法;第二种,实现一个接
口(可以是多个),实现其方法。下面通过代码来说明:
public class TestAnonymousInterClass{  
    public static void main(String args[]){  
        TestAnonymousInterClass test=new TestAnonymousInterClass();  
        test.show();  
    }  
    //在这个方法中构造了一个匿名内部类  
    private void show(){  
        Out anonyInter=new Out(){// 获取匿名内部类实例               
            void show(){//重写父类的方法  
                System.out.println("this is Anonymous InterClass showing.");  
            }  
        };  
        anonyInter.show();// 调用其方法  
    }  
}   
// 这是一个已经存在的类,匿名内部类通过重写其方法,将会获得另外的实现  
class Out{  
    void show(){  
        System.out.println("this is Out showing.");  
    }  
}  
程序运行的输出结果为:
this is Anonymous InterClass showing.
   匿名内部类有了自己的实现。
   接口的方式,只要把父类换成接口就行了,没必要给出代码了。
   使用匿名内部类时我们不要忘了我们的目的,我们只是在这地方想对某个类有特殊的
实现。在匿名内部类中编写的自己的方法是不可见的。匿名内部类就是重写父类或接口
的方法。
    匿名内部类是没有名字的,所以我们没办法获得其类型,而只能把它当作超类或接口
类型来使用。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马