print语句和类定义如何工作

时间:2014-12-23 04:17:13

标签: java class println

enter image description here 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;
}

2 个答案:

答案 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/

中获得更多详细信息