当前位置: 代码迷 >> J2ME >> 在java中类可以嵌套吗?下面这个简单的小程序,为什么Person这个类不能放在TestPerson类里面呢。该如何处理
  详细解决方案

在java中类可以嵌套吗?下面这个简单的小程序,为什么Person这个类不能放在TestPerson类里面呢。该如何处理

热度:3017   发布时间:2013-02-25 21:33:31.0
在java中类可以嵌套吗?下面这个简单的小程序,为什么Person这个类不能放在TestPerson类里面呢。
public class TestPerson {
public static void main(String[]args){
Person p1=new Person();
Person p2=new Person();
p1.age=-30;
p1.shout();
p2.shout();
}

}
class Person{
int age ;
void shout()
{
System.out.println("oh,my god!my age is"+age);
}
}

------解决方案--------------------------------------------------------
内部类是在一个类的内部嵌套定义的类,它可以是类的成员(成员类),也可以在一个语句块的内部定义(局部类),也可以 作为类的静态成员(静态类),还可以在表达式内部匿名定义(匿名类)。 

内部类有如下特性: 
一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称。名字不能与包含它的类名相同。 
可以使用包含它的类的静态和实例成员变量,也可以使用它所在方法的局部变量。 
可以定义为abstract。 
可以声明为private或protected。 
若被声明为static,就变成了顶层类,不能再使用局部变量。 
若想在Inner Class中声明任何static成员,则该Inner Class必须声明为static


静态内部类可以直接访问外部类的静态成员,但不能访问实例成员,如果访问外部类的实例成员,就必须通过外部类的实例去访问。
  相关解决方案