Java 实例化一个类,toString术语

Java 实例化一个类,toString术语,java,object,Java,Object,我有两门课: import android.cla; public class CW { public static void main(String [] args){ System.out.println(new cla()); } } 在第一个类中,我调用objectstoString()方法,该方法已被重写并打印到控制台。它清楚地返回“LOL” 我有两个问题: 在像这样实例化时(newcla())是否可以返回数据而不重写对象toString()方法;及 实例化这样的类(

我有两门课:

import android.cla;
public class CW {

public static void main(String [] args){
    System.out.println(new cla());
 }
}

在第一个类中,我调用objects
toString()
方法,该方法已被重写并打印到控制台。它清楚地返回“LOL”

我有两个问题:

  • 在像这样实例化时(
    newcla()
    )是否可以返回数据而不重写对象
    toString()
    方法;及

  • 实例化这样的类(
    newcla()
    )的合适术语是什么,它没有声明:
    objectl=newcla()


谢谢。请按正确的条款纠正我。

1-不,不是。“构造函数”是类上的一个特殊方法,它总是返回类的对象实例。构造函数的全部要点是返回对象。所以不,它不能返回任何其他内容

1a-之所以
System.out.println
调用
toString
方法,是因为您要求它将该对象打印到屏幕上,而
toString
方法是
println
的作者(通常是Java语言)选择的方法,以给出对象的字符串表示

2-那种写作方式其实什么都不是。它只是一个表达式,作为“实际参数”传递给
println
方法。的确,它是一个实例化新对象的表达式,但它与
println(“字符串”)
没有什么不同。如果你真的想,你可以称它为匿名对象

2a-(旧答案实际上并没有回答您的问题,但我将它保留在这里)这就是所谓的“使用派生较少的引用†类”。请注意,您只能对引用类型调用方法,因此如果您向
Cl
类添加了额外的方法,则无法从
对象
引用调用它们。调查


†“派生较少”或“超类型”或“超类”或“更一般类”等。

1-不,不是。“构造函数”是类上的一个特殊方法,它总是返回类的对象实例。构造函数的全部要点是返回对象。所以不,它不能返回任何其他内容

1a-之所以
System.out.println
调用
toString
方法,是因为您要求它将该对象打印到屏幕上,而
toString
方法是
println
的作者(通常是Java语言)选择的方法,以给出对象的字符串表示

2-那种写作方式其实什么都不是。它只是一个表达式,作为“实际参数”传递给
println
方法。的确,它是一个实例化新对象的表达式,但它与
println(“字符串”)
没有什么不同。如果你真的想,你可以称它为匿名对象

2a-(旧答案实际上并没有回答您的问题,但我将它保留在这里)这就是所谓的“使用派生较少的引用†类”。请注意,您只能对引用类型调用方法,因此如果您向
Cl
类添加了额外的方法,则无法从
对象
引用调用它们。调查

†“派生较少”或“超类型”或“超类”或“更一般类”等

public class Cl {
   @Override
   public String toString(){
      return "LOL";
   }
}