首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果所有东西都应该是Java中的对象(不包括原始类型),这难道不是与静态的观点相矛盾吗?

如果所有东西都应该是Java中的对象(不包括原始类型),这难道不是与静态的观点相矛盾吗?
EN

Software Engineering用户
提问于 2015-07-24 14:37:00
回答 1查看 427关注 0票数 0

我经常编写代码来生成一个对象,然后在静态类中使用静态方法来操作所述对象。

我错过了OOP的重点吗?我怎么知道我是不是在想面向对象的思想呢?我怀疑我是..。

EN

回答 1

Software Engineering用户

发布于 2015-07-24 17:28:37

是的,您在编码中缺少OOP原则。OOP不是要承载原始类型,OOP是指有一个具有责任的对象(本质上是方法)。

把握原则是一个很好的开端,可以了解哪种方法属于OOP。

在OOP中,您希望将大多数实例视为具有职责和实例字段(实例特定变量)的对象。但是,有时(有时)您会发现需要有一个静态类,只要您确实确信这个类不需要实例,静态类就非常有效。但是,在你安顿下来创造一个对象之前,你要想--“我错过了一个对象吗?”

您的功能方式:

代码语言:javascript
复制
var alice = new Person("Alice");

ChangeName(alice, "John");

// Somewhere in your static code
function ChangeName(Person person, string name) {
    person.name = name;
}

OOP Way:

代码语言:javascript
复制
var alice = new Person("Alice");
alice.ChangeName("John");

public class Person {
    private _name;    

    public Person(string name) {
        _name = name;
    }

    public void ChangeName(string name) {
        _name = name;
    }
}
票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/290720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档