最近在写类的时候,产生了一个这样的想法:通常我们写类的话都是单独写在一个类中,但类里面嵌套类可以执行程序吗?带着这样的疑问,打开了eclipse,我们一起来看看:
代码展示:
package study;
/**
*
* @author 重工黑大帅
* @date 2020.2.4
* 实现功能:理解特殊类(内部类)的概念
*/
public class Study{
public static void main(String args[]) {
A a = new A();
a.b.fun();
}
}
class A{
int x=5,y=4;
B b = new B();//内部类声明的对象,作为外部类的成员
A(){
}
void add(int a,int b) {
System.out.println("a+b="+(a+b));
}
class B extends C{ //继承类C,同时为内部类的声明
float h=23.0f;//内部类中可申明变量
void fun() {
System.out.println("h="+h);
System.out.println("x-y="+(x-y)+" "+CQ);
add(444,222); //调用外部类的add方法
}
}
}
class C{
String CQ="山水之城";
}
结果显示:
过程分析:上述代码中共定义了3个类:A,B,C。类B继承类C,嵌套在类A中,即此时把类B 称为内部类,类A称为外部类;在内部类中可以定义变量和方法(如变量h,方法fun()),内部类中也可调用外部类的方法(如add()方法),外部类中定义的变量和方法在内部类当中仍然可以使用(如变量x,变量y)。有些资料上说内部类当中不能声明静态变量和方法,否则就会报错,我做了尝试,确实不能声明,但可以实现,只需把类等相关的名称添加static修饰符,运行结果和之前的结果一样,这里读者需要注意一下。