Java的内部类有什么特点 作用和注意

 我来答
听时光清浅
2012-11-24 · 超过19用户采纳过TA的回答
知道答主
回答量:47
采纳率:75%
帮助的人:24.2万
展开全部
1)根据位置的不同,Java中的内部类分为四种:
 静态内部类
 使用static修饰,声明在类体中
 静态内部类中可以访问外部类的静态成员
 成员内部类
 声明在类体中,不使用static,具有类的成员特征,也就是,必须有类的实例才能创建内部类实例
 内部类实例可以访问共享外部类的成员变量(很常用)
 如:链表的节点就可以定义为内部类
 局部内部类 把类声明在方法中,就是局部内部类,作用域
 类似局部变量(很少见)
 匿名内部类
 匿名类,非常常见,可以写在任何地方,就像一般的语句
 语法更象是创建对象:Date d = new Date(){//...};
 匿名类是对原类的一个继承,同时创建了实例,{} 就是继承以后的类体
类体中可使用所有类的语法
 匿名类不能写构造器
 匿名类可以从抽象类或者接口继承,必须提供抽象方法的实现
2) 任何内部类都编译成独立的class文件
3) 最大的作用:封装!
 匿名类可以封装内部概念:情侣间的“土豆”和菜市场的“土豆”是不一样的
小傻

2015-10-21 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

Java内部类可以拥有private访问权限、protected访问权限、public访问权限及包访问权限。比如上面的例子,如果成员内部类Inner用private修饰,则只能在外部类的内部访问,如果用public修饰,则任何地方都能访问;如果用protected修饰,则只能在同一个包下或者继承外部类的情况下访问;如果是默认访问权限,则只能在同一个包下访问。这一点和外部类有一点不一样,外部类只能被public和包访问两种权限修饰。

局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。

class People{
    public People() {
         
    }
}
 
class Man{
    public Man(){
         
    }
     
    public People getWoman(){
        class Woman extends People{   //局部内部类
            int age =0;
        }
        return new Woman();
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没有响应m2
2012-11-24 · TA获得超过8387个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3484万
展开全部
内部类和外部类共享所有的资源包括Private的
要创建内部类实例必须先创建外部类实例
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ghjfdk520
2012-11-28
知道答主
回答量:17
采纳率:100%
帮助的人:12.7万
展开全部
可以不用实现监听接口 的全部方法!只挑选你自己需要的方法;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式