当前位置:  开发笔记 > 编程语言 > 正文

我们为什么不使所有内容静止?

如何解决《我们为什么不使所有内容静止?》经验,为你挑选了1个好方法。

为什么我们不能仅仅将所有方法和变量都设为静态,以免陷入制造对象的麻烦?

自从我很久以前开始学习Java以来​​,我就一直遇到这个问题,但是从未提出过。我知道,如果方法或变量不是静态的,则可以使用创建的对象来调用它:

public class classwithmethodandvariable {

    int i = 7;

    public void hello() {
    }

}

您可以这样称呼:

public class myMainClass {

    classwithmethodandvariable obj = new classwithmethodandvariable();
    classwithmethodandvariable.i++;  // ACCESS INT I AND INCREMENT
    classwithmethodandvariable.hello();  // CALLS METHOD HELLO

}

但是,如果我们有了方法hello()和变量,i就可以用更少的代码行完成所有工作,对吗?

public class classwithmethodandvariable {

    static int i = 7;

    public static void hello() {
    } 

}

您可以这样称呼:

public class myMainClass {

    classwithmethodandvariable.i++;  // ACCESS INT I AND INCREMENT
    classwithmethodandvariable.hello();  // CALLS METHOD HELLO

}

我们为什么不这样做呢?我看到了另一个类似的问题,但答案是“因为您无法从静态方法访问实例变量”。但是,如果您还使变量也该static怎么办?



1> 小智..:

面向对象的程序设计为将状态隐藏在对象中,然后提供一种修改状态的方法(即行为)。

这是一个非常简单的想法,但是当与继承,接口和其他常见设计模式结合使用时,就可以实现一个非常易于维护的系统。

仅使用静态方法会阻止许多设计模式正常工作,因此您将牺牲系统的可维护性和可扩展性。

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有