如何导入println的方法类以直接使用它?

时间:2019-05-30 23:40:42

标签: java

如果我能做

import static java.lang.Math.*;

public class Main 
{
    public static void main(String[] args)
    {
        sqrt(25);
    }
}

要直接使用Math方法,为什么要这么做:

import static java.lang.System.out.*;

public class Main 
{
    public static void main(String[] args)
    {
        println("Hello World");
    }
}

不起作用,所以我不能直接使用println方法?

如何使其工作?

2 个答案:

答案 0 :(得分:5)

导入静态仅适用于的静态成员字段/方法。

对于 System.out.println()

退出不是课程。这是一个公共静态对象。如果您阅读了 out 的定义:

/**
 * The "standard" output stream. This stream is already
 * open and ready to accept output data. Typically this stream
 * corresponds to display output or another output destination
 * specified by the host environment or user.
 * <p>
 * For simple stand-alone Java applications, a typical way to write
 * a line of output data is:
 * <blockquote><pre>
 *     System.out.println(data)
 * </pre></blockquote>
 * <p>
 * See the <code>println</code> methods in class <code>PrintStream</code>.
 *
 * @see     java.io.PrintStream#println()
 * @see     java.io.PrintStream#println(boolean)
 * @see     java.io.PrintStream#println(char)
 * @see     java.io.PrintStream#println(char[])
 * @see     java.io.PrintStream#println(double)
 * @see     java.io.PrintStream#println(float)
 * @see     java.io.PrintStream#println(int)
 * @see     java.io.PrintStream#println(long)
 * @see     java.io.PrintStream#println(java.lang.Object)
 * @see     java.io.PrintStream#println(java.lang.String)
 */
public final static PrintStream out = null;

然后,您可以导入的最后一个级别是输出本身(以及类 System 的其他成员字段/方法)。这有效:

import static java.lang.System.*;

public static void main(String[] args) throws Exception {
    out.println(1);
}

答案 1 :(得分:4)

Java是面向对象的编程语言。您可以使用静态方法,但主要关注对象。您应该阅读有关static方法的信息。就您而言,sqrt是静态方法。在第二种情况下,您必须调用一个流(out是一个流,并且也是静态的),但是println不是静态的。

导入具有non-static个函数的类时,不能简单地直接使用这些函数,而必须instantiate该类,然后可以使用该类的实例来调用这些函数。在这里,您可以认为System.out返回了一个新对象,然后您可以使用该对象来调用将内容打印出来的函数。

这应该有效:

import static java.lang.System.out.*;

public class Main 
{
    public static void main(String[] args)
    {
        System.out.println("Hello World");
    }
}