【问题标题】:What is the difference between class.method and object.method in Java and what are its cons and pros [closed]Java中的class.method和object.method有什么区别,它的优缺点是什么[关闭]
【发布时间】:2014-07-04 13:55:49
【问题描述】:
OneClass.addComponentsToPane(onePanel);
pane.add(onePanel,c);

TwoClass two=new TwoClass();
two.addComponentsToPane(twoPanel);
pane.add(twoPanel,c);

1) class.method 和 object.method 都可以工作,但有什么区别和(优点和缺点?)我们必须同时使用两者

2)哪里需要静态变量和方法,哪里应该避免。

【问题讨论】:

    标签: java swing jpanel


    【解决方案1】:

    通常,如果您有一个方法或变量没有与类的特定实例相关联,则使用静态。

    假设你有 Sheep 类和这个类的一些对象。您可以使用静态 int 变量来计算所有羊的数量。因此,您可以将静态变量视为与类有关的东西(例如,它的实例数),而不是与此类的特定对象有关。

    当涉及到方法时,它是相似的,例如Math 类有很多静态方法,因为当你进行计算时它与任何特定对象无关,结果仅取决于参数。

    使用静态的原因是您希望在应用程序中全局使用某些值或方法。

    【讨论】:

      【解决方案2】:

      类方法(静态)对类本身执行操作,这意味着整个 JVM 中只能有一个实例受到影响(除非一些无关的、不相关的情况)>

      实例方法(非静态)对对象执行操作,这意味着您可以在 JVM 中影响许多实例。

      使用实例方法而不是类方法是面向对象编程的好习惯。

      如果您愿意,可以阅读 Java tutorials on static 以了解更多信息。

      【讨论】:

      • 为什么使用实例方法而不是类方法是个好习惯?这真的取决于情况。我什至会说,如果可能的话,使用类方法而不是实例方法会更好。
      • 如果静态方法排除了一些无关紧要的东西,那么当我们必须使用静态方法时有什么例子或情况?
      • 我说的是面向对象编程的好习惯。静态方法没有对象,因此不是面向对象的。
      • @Strikeskids 你在说什么?当然它仍然是面向对象的,即使它是一个静态方法。不要再试图挖一个比你已经站在的更深的洞了:-)放弃吧,收工吧;-)
      【解决方案3】:

      Instance(对象)方法使用类的实例,而Class(静态)方法可以仅与类名一起使用。
      通常,当您创建某种数据模型对象和对该模型的操作时,您将使用实例方法,而您将使用静态方法,就像在函数式编程范式语言中一样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-30
        • 2019-05-21
        • 2010-09-06
        • 1970-01-01
        相关资源
        最近更新 更多