解决方案 »

  1.   

    static的内部类  实例化不依赖外部类   普通内部类实例化依赖外部类的实例
      

  2.   

    内部类和静态内部类 
    和普通的类一样,内部类也可以有静态的。不过和非静态内部类相比,区别就在于静态内部类没有了指向外部的引用。这实际上和C++中的嵌套类很相像了,Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用这一点上,当然从设计的角度以及以它一些细节来讲还有区别。 除此之外,在任何非静态内部类中,都不能有静态数据,静态方法或者又一个静态内部类(内部类的嵌套可以不止一层)。不过静态内部类中却可以拥有这一切。
      

  3.   

    刚学几天Java这风格没变。。被你发现了。。厉害啊
      

  4.   

    上面的类 program是主类,student是一个静态内部类,所以它可以直接实例化。既然是这样,如果我要想直接实例化,内部类就必须是静态的吗?如果上面的student不是静态类,有没有办法将它实例化?
      

  5.   

    实例化方法一:    public Student getNewStu(String _name,String _id,char _sex,int _age){
            return new Student(_name,_id,_sex,_age);
        }
        public static void main(String[] args) {
            programe p = new programe();
            p.Student stu = new p.getNewStu("lxr","10060",'b',20);
            stu.showStudentInfo();
            stu.setAge(21);
            stu.showStudentInfo();
            Student.setStudentSum(10);
        }方法二,将Student类的定义放在programe类外边来。
    public class programe {

    public static void main(String[] args) { Student stu = new Student("lxr","10060",'b',20);
    stu.showStudentInfo();
    stu.setAge(21);
    stu.showStudentInfo();
    Student.setStudentSum(10);
    }
    }
    class Student {
    static int studentSum;
    String name;
    String id;
    char sex;
    int age; Student() {
    name = "null";
    id = "null";
    sex = 'n';
    age = 0; } Student(String _name, String _id, char _sex, int _age) {
    name = _name;
    id = _id;
    sex = _sex;
    age = _age;
    } public void setName(String _name) {
    name = _name;
    } public void setId(String _id) {
    id = _id;
    } public void setSex(char _sex) {
    sex = _sex;
    } public void setAge(int _age) {
    age = _age;
    } public static void setStudentSum(int sum) {
    studentSum = sum;
    System.out.print("student sum = " + studentSum);
    } public void showStudentInfo() {
    System.out.println("Name : " + this.name + "\n" + "ID : " + this.id);
    System.out.println("Sex :" + this.sex + "\n" + "Age :" + this.age);
    };}