实例方法是否需要访问Java中的实例变量?

Rayan Raj:
public class Main {

    void sum(int a, int b) {
        int c = a + b;
        System.out.println(c);
    }

    public static void main(String args[]) {
        Main ob = new Main();
        ob.sum(10, 125);
    }
}

在上面的代码中没有实例变量,但是我已经读过,如果一个方法是一个实例方法,它应该访问实例变量。那么“ sum”是实例方法吗?

大卫 :

sum在这里是一个实例方法,因为它不是,static并且需要对象的实例。您在此处创建实例:

Main ob = new Main();

在这种特殊情况下sum,的确可以实现static,不需要实例就可以稍微简化代码。

我已经读过,如果一个方法是一个实例方法,它应该访问实例变量

怀疑您正在阅读的内容暗示,如果某个方法根本不与实例进行交互,那么它应该应该与之交互static文本中可能在某处提到了“纯功能”一词

我不会说任何地方的所有潜在static方法都应作为通用规则来制定它实际上归结为对象本身的语义。由于您在这里拥有的对象几乎没有语义上下文,因此这个小例子很容易以任何一种方式进行。static

但是,假设你扩大你的对象还包括方法subtractmultiplydivide等作为对象扩大,假设一个或一个以上的这些额外的方法确实使用了实例变量。拥有一个对象具有多种语义相似的方法(其中有些是static或有些不是)的经历,将是一次令人不快的经历

与其关注某人给您的任何特定规则,不如关注您打算作为对象构建的内容。如果您认为应该如此static,就这样做。如果您认为不应该,那就不要。如果您不确定,则可以通过练习同时实现这两种方法,并查看在特定情况下更喜欢哪种方法。

展望将来要构建的计划很重要,因为在整个应用程序中依赖于对象的代码越多,从static实例更改为实例的难度就越大,反之亦然。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章