将对象传递给方法比按对象调用方法更有效吗?

时间:2016-03-19 22:28:37

标签: java methods

我是java的初学者,我希望得到这样的澄清。在方法中传递对象比通过类实例调用方法更有效吗?它在我看来也一样。假设以下示例代码:

public class Test { 
   public static void main(String[] args) { 
       CircleWithPrivateDataFields myCircle = new CircleWithPrivateDataFields(5.0); 
       printCircle(myCircle);
   } 

   public static void  printCircle (CircleWithPrivateDataFields c) { 
       System.out.println("The area of the circle of radius " 
          + c.getRadius() + " is " + c.getArea()); 
   } 
}

如果我定义CircleWithPrivateDataFields类,则此对象printCircle方法的传递方法将在控制台上打印。另外,通常当我使用void方法时,我需要在main方法{{1}内写入在控制台上打印void方法,但是当我在方法中传递对象时,我不需要这样做。

1 个答案:

答案 0 :(得分:0)

最干净的是简单地为类提供out(...)方法覆盖,然后您可以简单地将其打印出来,因为PrintStream类的toString()方法将调用任何方法的public class CircleWithPrivateDataFields { private double radius; public CircleWithPrivateDataFields(double radius) { this.radius = radius; } public double getRadius() { return radius; } public double getArea() { return Math.PI * radius * radius; } @Override public String toString() { return String.format("The area of the circle of radius %.2f is %.2f", radius, getArea()); } public static void main(String[] args) { CircleWithPrivateDataFields circle = new CircleWithPrivateDataFields(5); System.out.println(circle); } } 方法传递给它的对象:

toString()

请注意,效率与此无关。

另请注意,FLAG_ACTIVITY_SINGLE_TOP方法非常适合作为调试帮助和玩具程序的输出,如上所示,但几乎从未用作生产代码的输出方法。