您的位置:首页 > 编程语言 > Java开发

java内部类

2020-02-17 05:26 429 查看

1.定义

在一个类中声明的类就叫它内部类

2.分类

1.成员内部类

就是以类成员的形式声明内部类,是最普通的内部类。它可以访问所有的外部成员包括私有成员和静态成员。 一般它的使用方式为:
Outter outter = new Outter();
Outter.Inner inner  = outter.new Inner();

public class Outter {

private class Inner{

public void print(){
System.out.println("I am inner class");
}
}

public static void main(String[] args) {
Outter out = new Outter();
Outter.Inner in = out.new Inner();
in.print();
}
}


2局部内部类 

就是定义在一个方法或一个作用域内的类,它就像方法里面的局部变量一样,是不能有public、protected、private、static修饰的。

3匿名内部类

一般来说匿名内部类是用来继承其他类、重写其他类方法或实现接口用的。
public class Outter2 {

static Car getCar(){
return new Car(){
String getName(){
return "F1";
}
};
}

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(getCar().getName());
}
}
class Car{

String getName(){
return "F0";
}
}
//abstract class Car{
//
//	abstract String getName();
//}



4静态内部类

由static修饰的内部类,只能访问外部的静态成员和静态方法
使用方法为:
Outter.Inner inner = new Outter.Inner();

3.作用

1.内部类可以很好的实现隐藏

 一般的非内部类,是不允许有 private 与protected权限的,但内部类可以

2.内部类拥有外围类的所有元素的访问权限,

静态内部类只能访问静态的成员和方法

3.可是实现多重继承

可以通过定义多个内部类来间接的实现多继承

4.可以避免修改接口而实现同一个类中两种同名方法的调用。

可以让内部类实现接口,这样就不会与外围类的方法冲突了。
  • 点赞
  • 收藏
  • 分享
  • 文章举报
泉眼无声胜有声 发布了1 篇原创文章 · 获赞 0 · 访问量 44 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: