Java的内部类有什么特点 作用和注意
4个回答
展开全部
1)根据位置的不同,Java中的内部类分为四种:
静态内部类
使用static修饰,声明在类体中
静态内部类中可以访问外部类的静态成员
成员内部类
声明在类体中,不使用static,具有类的成员特征,也就是,必须有类的实例才能创建内部类实例
内部类实例可以访问共享外部类的成员变量(很常用)
如:链表的节点就可以定义为内部类
局部内部类 把类声明在方法中,就是局部内部类,作用域
类似局部变量(很少见)
匿名内部类
匿名类,非常常见,可以写在任何地方,就像一般的语句
语法更象是创建对象:Date d = new Date(){//...};
匿名类是对原类的一个继承,同时创建了实例,{} 就是继承以后的类体
类体中可使用所有类的语法
匿名类不能写构造器
匿名类可以从抽象类或者接口继承,必须提供抽象方法的实现
2) 任何内部类都编译成独立的class文件
3) 最大的作用:封装!
匿名类可以封装内部概念:情侣间的“土豆”和菜市场的“土豆”是不一样的
静态内部类
使用static修饰,声明在类体中
静态内部类中可以访问外部类的静态成员
成员内部类
声明在类体中,不使用static,具有类的成员特征,也就是,必须有类的实例才能创建内部类实例
内部类实例可以访问共享外部类的成员变量(很常用)
如:链表的节点就可以定义为内部类
局部内部类 把类声明在方法中,就是局部内部类,作用域
类似局部变量(很少见)
匿名内部类
匿名类,非常常见,可以写在任何地方,就像一般的语句
语法更象是创建对象:Date d = new Date(){//...};
匿名类是对原类的一个继承,同时创建了实例,{} 就是继承以后的类体
类体中可使用所有类的语法
匿名类不能写构造器
匿名类可以从抽象类或者接口继承,必须提供抽象方法的实现
2) 任何内部类都编译成独立的class文件
3) 最大的作用:封装!
匿名类可以封装内部概念:情侣间的“土豆”和菜市场的“土豆”是不一样的
展开全部
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();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
内部类和外部类共享所有的资源包括Private的
要创建内部类实例必须先创建外部类实例
要创建内部类实例必须先创建外部类实例
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以不用实现监听接口 的全部方法!只挑选你自己需要的方法;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询