【问题标题】:Java calling methods non/static and private/publicJava 调用方法非/静态和私有/公共
【发布时间】:2014-10-27 15:45:22
【问题描述】:

我只是有一些我不确定的方法调用场景,并希望有人可以帮助我解决一些问题。

a) 如果我在 SalesMethod 类中,并且我想从 region 方法中调用 sales 方法,我该怎么做? (private方法调用public方法)

b) 销售电话购买呢? (public 在同一个班级中调用public

c)如果我在SalesMethod,调用futureSales 方法的方法是什么?由于它是非静态的,我是否必须为其创建一个实例?

提前致谢。

public class SalesMethod
{
  public static double sales ()
  {
    code
  }
  private static void region ()
  {
    code
  }
  public static double purchase ()
  {
    code
  }
  public void futureSales ()
  {
    code
  }
}

【问题讨论】:

  • 你怎么看?请尽量表现出最低限度的理解。
  • a) 你试过double d = sales()
  • b) 你试过double d = purchase()
  • 对于 a 和 b 会声明一个变量,然后捕获它就足够了吗?
  • 首先,没有为 SalesMethod 类声明方法。去这里开始阅读:docs.oracle.com/javase/tutorial

标签: java call


【解决方案1】:

a) 私有方法调用公共方法是可以的,因为公共的意思是“到处可见”。

 public static double region()
 {
       sales();
 }

b) 出于同样的原因,调用公共方法的公共方法是可以的。

b') 如果私有方法与公共方法在同一类中,则公共方法调用私有方法是可以的。

c) 要调用非静态方法,您必须创建一个实例,因为您将其称为“在”对象上。您不能像上面示例中那样从静态方法中调用它。

静态的意思是“相对于一个类” 非静态是相对于一个对象的,你可以把它看作是对象执行的一个动作。

【讨论】:

    【解决方案2】:

    如果我在 SalesMethod 类中,我想从 region 方法中调用 sales 方法,我该怎么做? (私有方法调用公共方法)

    它们都是静态的,因此您可以在每次需要时调用它们。

    sales();
    // Or
    SalesMethod.sales();
    

    销售电话购买呢? (在同一个班级公开呼吁公众)

    它们都是静态的,因此您可以在每次需要时调用它们。

    purchase();
    // Or
    SalesMethod.purchase();
    

    如果我在 SalesMethod 中,调用 futureSales 方法的方法是什么?由于它是非静态的,我是否必须为其创建一个实例?

    是的。

    SalesMethod instance = new SalesMethod();
    instance.futureSales();
    

    【讨论】:

      猜你喜欢
      • 2013-12-17
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多