System类和PrintStream类之间的关系是什么?

5
我想了解System.out.println()的确切含义。我阅读了这两篇文章What is System, out, println in System.out.println() in JavaWhat's the meaning of System.out.println in Java?。我知道System、out和print是什么,但我不知道System类如何与PrintStream类相连。它们之间有什么关系?
System是java.lang包中的一个类,out是System类的静态成员,那么它如何成为java.io.PrintStream类的一个实例呢?System和PrintStream之间又有什么关系?

3
System有一个类型为PrintStream的字段。在这里可以查看“字段摘要”:http://docs.oracle.com/javase/7/docs/api/java/lang/System.html。 - Micha Wiedenmann
2个回答

3
System类和PrintStream类之间的关系是HAS-A关系。 这意味着System类具有PrintStream类。 要理解这种关系,请了解程序。
class A
{    
    void display()
    {   
        System.out.pritln("this is display method");
    }

}

class B

{
    static A ob=new A();
}

class demo
{
    public static void main()
    {
    B.ob.display();
    }
}

它打印出这是display方法。

B.ob.display() 就像 System.out.println() 一样。

在B类中创建一个对象。

在System类中创建了PrintStream类对象。

ob是A类的静态对象引用。

out也是PrintStream类的静态引用。


1

System 类有一个静态对象,它是 PrintStream 类的一个实例,被声明在 System 类中,并且叫做 out。而 println()PrintStream 类的方法。

因此,我们可以通过 System.out 访问静态对象,并且 println()PrintStream 类的方法。这就是为什么我们可以写出 System.out.println(),以及这两个类之间的关系。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接