当前位置: 首页 > 知识库问答 >
问题:

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

岳亮
2023-03-14

我是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方法System.Out.print(void方法);中编写内容,以便在控制台上打印void方法,但是当我在方法中传递对象时,我不需要这样做。

共有1个答案

惠野
2023-03-14

最干净的方法是简单地给类一个ToString()方法重写,然后您可以简单地将它打印出来,因为PrintStream类的out(...)方法将调用传入它的任何对象的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()方法作为调试帮助和玩具程序的输出非常有用,如上图所示,但几乎从未用作生产代码的输出方法。

 类似资料:
  • 7.2.3 对象方法的调用 一旦创建了对象,就可以通过向对象发消息来调用对象的方法。消息的格式如下: <对象>.<方法>(<实参>) 其含义是请求<对象>执行<方法>,方法定义中列出的形式参数由<实参>提供。 例如,接着前面的例子执行如下语句: >>> p1.whatName() My name is Lucy >>> p2.whatName() My name is Tom >>> p2.ho

  • 问题内容: 好吧,我有两个StringBuilder对象,我需要在Java中对其进行比较。我知道我可以做的一种方法是 但这意味着我要创建两个String对象,还有没有更好的方法来比较StringBuilder对象。也许您不需要创建其他对象的地方? 问题答案: 如您所知,继承自,因此仅在将同一对象作为参数传递时才返回true。它并 没有 比较两个内容小号! 如果您查看源代码,您将得出结论,最有效的比

  • 假设我有一个返回类型为ResultSet的方法。我能把这个对象传递给Servlet吗?我面对的是这个对象为null。 当我在一个Servlet中实例化这个类并调用这个方法时,它会收到一个空的ResultSet对象。我做错了什么?我们不能只从试块返回吗?

  • 本文向大家介绍c#进程之间对象传递方法,包括了c#进程之间对象传递方法的使用技巧和注意事项,需要的朋友参考一下 1. 起源 KV项目下载底层重构升级决定采用独立进程进行Media下载处理,以能做到模块复用之目的,因此涉及到了独立进程间的数据传递问题。 目前进程间数据传递,多用WM_COPYDATA、共享dll、内存映射、Remoting等方式。相对来说,WM_COPYDATA方式更为简便,网上更到

  • 我无法理解为什么这个程序打印字符串 请帮助我了解如何打印Sting而不是Object

  • 我有上述方法,它从html表单中获取参数并将此数据添加到数据库表中。我想做同样的事情,但使用json Object,那么如何将Json Object作为参数传递呢?以及我应该添加什么依赖项到我的Pom.xml文件中。谢谢