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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高顺德 中级黑马   /  2013-3-26 10:43  /  2046 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 天下 于 2013-3-26 15:54 编辑

什么叫内部类?他的作用有啥?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

8 个回复

倒序浏览
顾名思义,在类内部定义的类就是内部类.

内部类可以当成外部类的一个成员来使用,很方便.
通常,当一个类只会被这一个外部类使用到时,可以定义成内部类.

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
内部类就是类里面定义一个类
作用:当描述事物是,事务的内部还有事务,该事物用内部类来描述,因为内部事务在使用外部事物
具体的你看毕老师内部类详解 有说明
回复 使用道具 举报
认真看视频吧,毕老师视频讲得很清楚的。张孝详老师的也讲行很好。你都没看就来提问题

给你说简单一点,内部类就是把一个类定义一另一个内的里面。
可以定义在成员位置,叫成员内部类
也可以定义在局部位置上,叫局部内部类,

如果一个内部类在你定义的时候没有为它取名字,那就是一个匿名内部类。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
定义在类内部的类就是内部类,这个应该不难理解
回复 使用道具 举报
1、内部类:将一个类定义在另一个类里面,对里面的那个类就称为内部类(内置类,嵌套类);

访问特点;1)内部类可以直接访问外部类中的成员,包括私有成员,
            之所以可以直接访问外部类的成员,是因为内部类中持有了一个外部类的引用,格式:外部类名.this.
        
         2)而外部类要访问内部类中的成员必须建立内部类的对象。建立对象的方式是,
            outer.inner in = new outer.new.innner();要指定内部类的外部类才能创建内部类的对象。
            才可以调用内部类的方法。但是这种情况几乎没有,就是基本不会用。
            内部类还有一个特点,就是它可以被私有化private,类是不能被私有化的,
            但是内部类它占据了成员函数的位置,它可以私有化,重点。

         3)静态内部类:内部类还可以用static来修饰。

            当内部类被static修饰后,只能直接访问外部类中的static成员,出现了访问局限。
            
            在外部其他类中,如何直接访问static内部类的非静态成员呢?
            new Outer.Inner().function();

            在外部其他类中,如何直接访问static内部类的非静态成员呢?
            outer.inner.function();

            注意:当该内部类中定义了静态成员,该内部类必须是static的。
                  当外部类中的静态方法访问内部类时,内部类也必须是静态的。

2、内部类:内部类私有化,防止外部其他类进行访问,
           这时要想访问我这个内部类中的方法时,我们会在外部类中提供一个访问方法,暴漏出去。供外部其他类访问。

           当描述事物时,事物的内部还有事物,该事物用内部类描述,
           因为内部事物在使用外部事物的内容。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
崔宝东 发表于 2013-3-26 11:56
1、内部类:将一个类定义在另一个类里面,对里面的那个类就称为内部类(内置类,嵌套类);

访问特点;1) ...

为啥不给咱们分呢?
回复 使用道具 举报
如果A类需要直接访问B类中的成员,而B类又需要建立A类的对象。这时,为了方便设计和访问,直接将A类定义在B类中。就可以了。A类就称为内部类
内部类可以直接访问外部类中的成员。而外部类想要访问内部类,必须要建立内部类的对象。
回复 使用道具 举报
(1)内部类一般用于类的设计
     分析事物的时候,发现该事物描述中还有事物,而且,这个事物还在访问被描述事物的内容,这时,就是还有的事物定义成内部类来描述。
(2)内部类的特点:
1,内部类可以直接访问外部类中的的成员,包括私有成员(之所以可以直接访问外部类中的成员,是因为内部类类中持有一个外部类的引用,格式:外部类名.this)
2,当内部类定义在外部类的成员位置上,而非私有,可以在外部其他类中。可以直接建立内部类对象。
格式:外部类名.内部类名   变量名=外部类对象.内部类对象;
3,当内部类在成员位置上,就可以被成员修饰符所修饰。
比如:private:将内部类在外部类中进行封装。
    static:内部类就具备static的特性。当内部类被static修饰后,只能直接访问外部类中的 static成员,出现了访问局限。

4,内部类定义在局部时:
不可以被成员修饰符修饰;可以直接访问外部类中的成员,因为还持有外部类中的引用,但是
不可以访问它所在的局部中的变量,只能访问被final修饰 的局部变量。

5,当内部类中定义了静态成员,该内部类必须是static。
当外部类中的静态方法访问内部类时,内部类也必须是static的。

6,匿名内部类(其实就是内部类简写格式)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马