1.为什么编译器会在“类人类”行上发出警告,说这行上有多个标记,人类已经定义并且发生了'人类'
2.即使我改变了行“System.out.println(aPerson.getHeight());”进入“aPerson.getHeight();”,它仍然在控制台窗口中打印输出。如何在JAVA中打印?
public class HelloWorld{
public static void main(String[] args){
Human aPerson = new Human(160);
System.out.println(aPerson.getHeight());
}
}
class Human{
/**
* constructor
*/
Human(int h){
this.height = h;
System.out.println("I'm born");
}
/**
* accessor
*/
int getHeight(){
return this.height;
}
int height;
}
答案 0 :(得分:1)
您没有向类附加访问修饰符(public / protected / private),因此它在整个包中都是可见的,包括Test.java(您声明它还包含一个名为Human的类)和Test1.java,以及同时显示两个同名的类是违法的。
如果这些类是同一个类,只需删除其中一个类定义;你只需要定义一次类。如果实际上您正在定义不同类型的Human,请重命名其中一个类以区分它们。
答案 1 :(得分:0)
两个类不能存在于同一个文件中。我之前没有看过快照。
System.out只是PrintStream的一个实例。您可以检查其JavaDoc。它的可变性基于方法重载(具有相同名称但具有不同参数的多个方法)。
此打印流将其输出发送到所谓的标准输出。
您将在此链接http://www.programmerinterview.com/index.php/java-questions/how-system-out-println-works/
中获得更多详细信息