什么跟什么呀
这样的问题也问,Test2中的变量都没有定义

解决方案 »

  1.   

    因为在Test2类中是没有这两个变量。
    所以找不到.
      

  2.   

    按照楼主的意思!不是没有声明变量,而是,ss 和 character 本是 对象 test1 的属性
    所以在类 Test2 中,应改为 test1.ss 和test1.character[i]程序如下,注意Test2中的改动!
    楼主可以调试一下!我没有调试!class Test1 {
    public static String ss;
    public static char[] character;
    Test1() {
    char[] character = ss.toCharArray();
    }
    }
    class Test2 {
    Test1 test1 = new Test1();
    static void play() {
        for (int i = 0; i < test1.ss.length(); i++ )
            System.out.print(test1.character[i]);
    }
    }public class Test {
    public static void main(String[] args) {
    Test2 test = new Test2();
    test.play();
    }
    }
      

  3.   

    Test1的构造器也有问题,ss没初始化,运行时必定会抛出“空指针异常”。
      

  4.   

    class Test1 {
    public static String ss="abcd";
    public static char[] character=ss.toCharArray();
    Test1() {
    }
    }
    class Test2 {
    Test1 test1 = new Test1();
    static void play() {
        for (int i = 0; i < Test1.ss.length(); i++ )
            System.out.print(Test1.character[i]);
    }
    }public class Test {
    public static void main(String[] args) {
    Test2 test = new Test2();
    test.play();
    }
    }注:
    public static String ss="abcd";
    public static char[] character=ss.toCharArray();
    这两句不可以颠倒;不然会提错。
    因为ss和character[]都是static静态成员变量,在对象未创建的时候就会被分配内存!如果不赋值会出现空指针现象,因为character的值是由ss而定的,故不旦需要出现在ss的后面还要在声明的同时赋值,且不可以放在构造函数中赋值。
      

  5.   

    《JAVA编程思想》中有类的初始化过程。那里讲得很详细。