静态类只能以内部类的形式存在吗?
解答:我们提到的静态类指的是内部类,静态类只存在其内部!内部类可分为外成员内部类和局部内部类(方法里定义的内部类),成员内部类分为两种:静态内部类和非静态内部类;局部内部类和匿名内部类则不是类成员
不明白为什么内部类中有静态成员,则该类必须定义为静态?
解答:错误。内部类中有静态成员,不能说明该类是静态类。使用static 修饰的成员内部类是静态内部类,没有使用static修饰的成员内部类是非静态内部类。静态内部类可以包含静态成员,也可以包含分静态成员。根据静态成员不能访问非静态成员的规则,所以静态内部类不能访问外部类的实例成员,只能访问外部类的类成员。即使静态内部类的实例方法不能外部类的实例成员,只能访问外部类的静态成员
举例:
//静态内部类
public class A{
private String name="abc";
private Static String color="yellow"
staic class b{
//静态内部类可以包含静态成员
private static int age;
public void c{
//下面代码出错,静态内部类无法访问外部类的实例成员
System.out.println(name);
//下面正确
System.out.printn(color);
}
}
}
把内部类及其成员定义为静态有什么好处吗?只是为了调用方便吗?
成员定义成静态,那么该成员就变成类的成员变量,不需要进行实例化,就可以使用。把内部类及其成员定义为内部类,根据要求进行定义!
|