1

对于下面的代码,我创建了一个以类名作为返回类型的实例变量

class classtype{
    static classtype x;

    public static void main(String...a){
         System.out.println(x);
    }
}

上面的代码输出null表明这个以类名作为返回类型的实例变量包含字符串类型值,但是当我尝试初始化它时

static classtype x="1";

它给出了在java.Lang.String

请如果有人可以解释

4

1 回答 1

7

错误1:

x="1";

你不能这样做

因为Classtype 不是String类型。

错误2:

印刷null

class Classtype{
         static Classtype x = new Classtype();
         public static void main(String...a){
         System.out.println(x);
         }
       }

确保 System.out.println(x); 这里默认打印 ObjectstoString 方法。

由于您x尚未初始化它现在为空。

所以按照打印println调用print)方法

打印一个字符串。如果参数为空,则打印字符串“null”。否则,字符串的字符会根据平台默认的字符编码转换为字节,并且这些字节完全按照 write(int) 方法的方式写入。

打印需要类String ovveride中的toString方法Classtype。并遵循 java 命名约定。类名以大写字母开头。

随着你所有的代码变成

public class Classtype {


        static Classtype x = new Classtype();
        public static void main(String...a){
        System.out.println(x);

      }

        @Override
        public String toString() {
        // TODO Auto-generated method stub
        return "This is ClassType toString";
        }

}
于 2013-09-30T07:16:49.680 回答