Java类的第5大成员_内部类

时间:2021-06-13 15:45:41
   内部类具有和类一样的特性,都有属性、方法、构造器
   内部类分为:①成员内部类、②局部内部类
   内部类我们主要研究成员内部类,主要掌握以下三点即可:
     ①如何创建内部类的对象(内部类又分为静态的和非静态的)
     ②如何区分调用内部类、外部类的变量

     ③局部内部类的使用

示例1:一下示例为①和②的示例,代码如下

public class InnerClassTest {
public static void main(String[] args) {
//创建静态内部类对象的方法(匿名外部类对象.静态内部类名称)
Person.Dog dog = new Person.Dog();
//创建非静态内部类的方法
Person p = new Person();//先有外部类的对象
Person.Bird bird = p.new Bird();//再有外部类的对象new出内部类的对象
bird.info();
bird.setName("杜鹃");
}
}
class Person {
String name = "黎明";
int id;
//成员内部类(在类里面的)
class Bird {
String name = "黄鹂";
int id;
public void info() {
show();//内部类可以直接调用外部类的方法
}
//@②
public void setName(String name) {
System.out.println(name);//参数name
System.out.println(this.name);//Bird类name属性
System.out.println(Person.this.name);//Person类的name属性
}
}
//静态成员内部类
static class Dog {

}
public void show() {
System.out.println("我是person里面的show()方法!");
}
public void method() {
//局部内部类(在方法里面的)
class Animal {

}
}
}

以上就是如何创建内部类的对象和如何区分调用内部类和外部类的变量的,至于局部内部类的使用如下代码所示:

class Number {
//常常使用一个方法,使其返回值为某个类或者接口的对象,而这个类在方法内部创建
public Comparable getComparable() {
//创建一个实现Comparable接口的类:局部内部类
class MyComparable implements Comparable {
@Override
public int compareTo(Object o) {
return 0;
}
}
//返回一个实现类的对象
return new MyComparable();
}
//以下是返回匿名内部类的使用情况
public Comparable getComparableOther() {
//直接返回一个匿名内部类对象
return new Comparable(){
@Override
public int compareTo(Object o) {
return 0;
}
};//注意分号不能少
}
}