Java 打印语句和类定义是如何工作的
1.为什么编译器在“class Human”一行给出警告,说这行有多个标记,类型Human已经定义,并且出现了“Human” 2.即使我将行“System.out.println(aPerson.getHeight());”更改为“aPerson.getHeight();”,它仍然在控制台窗口中打印输出。打印在JAVA中如何工作Java 打印语句和类定义是如何工作的,java,class,println,Java,Class,Println,1.为什么编译器在“class Human”一行给出警告,说这行有多个标记,类型Human已经定义,并且出现了“Human” 2.即使我将行“System.out.println(aPerson.getHeight());”更改为“aPerson.getHeight();”,它仍然在控制台窗口中打印输出。打印在JAVA中如何工作 public class HelloWorld{ public static void main(String[] args){ Human a
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;
}
您没有向类附加任何访问修饰符(public/protected/private),因此它在整个包中都是可见的,包括Test.java(您已经声明它还包含一个名为Human的类)和Test1.java,同时显示两个同名的类是非法的
如果这些类是同一个类,只需删除其中一个类定义;您只需要定义一次类。如果事实上您正在定义不同类型的人员,请重命名其中一个类以区分它们。同一文件中不能存在两个类。很抱歉,我以前没有看到快照 System.out只是PrintStream的一个实例。你可以查看它的JavaDoc。其可变性基于方法重载(多个方法具有相同的名称,但参数不同) 此打印流正在将其输出发送到所谓的标准输出
您将在该链接中获得更多详细信息您能粘贴准确的错误消息和行号吗?您的代码按原样编译和运行-我无法再现任何错误或警告。我在帖子上附上了一个屏幕截图。错误表明您还在其他位置定义了类Human,例如Test。java@Jackie对您没有向类附加访问修饰符(public/protected/private),因此它在整个包中都是可见的,包括Test.java和Test1.java,同时显示两个同名的类是非法的。False,您可以将任意多个包私有类放入一个文件中;你只能上一堂公共课。然而,在一个文件中有多个类是不典型的。此外,虽然这回答了他在标题中提出的问题,但这并不能解决他的问题,实际上与打印语句无关。