下面是详细讲解“Java面向对象之内部类案例讲解”的完整攻略。
什么是内部类?
内部类是在类内部定义的类,也就是说它是一个嵌套在其他类中的类。内部类可以直接访问包含它的外部类的所有成员,包括私有成员。Java中主要有四种内部类,分别是静态内部类、非静态内部类(成员内部类)、局部内部类和匿名内部类。
静态内部类
静态内部类也叫作嵌套类,它是被static修饰的内部类,与普通类一样,它可以拥有静态变量、静态方法、甚至可以实现多个接口。静态内部类分为两大类,一类是public修饰的外部类,可以在其他类中直接使用;另一类是private等修饰的外部类,只能在外部类内部使用。
示例一
public class StaticInnerClassDemo {
private static int data = 5;
private static class StaticInnerClass {
public void printData() {
System.out.println("data = " + data);
}
}
public static void main(String[] args) {
StaticInnerClassDemo.StaticInnerClass sic = new StaticInnerClassDemo.StaticInnerClass();
sic.printData();
}
}
上面的代码中,我们定义了一个静态内部类StaticInnerClass,它里面包含了一个printData方法,直接输出外部类中的静态变量data。
非静态内部类
非静态内部类也叫成员内部类,可以直接访问外部类的所有方法和成员,包括私有的方法和成员。非静态内部类必须寄生于某个外部类的实例中,因此,在创建非静态内部类的时候,必须先创建外部类实例。非静态内部类是非常重要的一种内部类,它可以有效地控制外部类的访问,实现信息的封装和隐藏。
示例二
public class InnerClassDemo {
private int data = 5;
private class InnerClass {
public void printData() {
System.out.println("data = " + data);
}
}
public void display() {
InnerClass ic = new InnerClass();
ic.printData();
}
public static void main(String[] args) {
InnerClassDemo icd = new InnerClassDemo();
icd.display();
}
}
上面的代码中,我们定义了一个非静态内部类InnerClass,它里面包含了一个printData方法,直接调用外部类中的成员变量data。
以上是Java面向对象之内部类案例讲解的完整攻略,希望可以帮助到大家。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java面向对象之内部类案例讲解 - Python技术站