Java区分一个对象是否可以做类
在面向对象方面有许多抽象的概念,对于从0学起的入门者来说不太友好。关于Java类在实际设计程序时,往往不能很快速地去判断一个内容是否可以划分为一个类。这里总结一些具体化的思路。
面向对象是把整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤中的行为。
我们将繁琐的步骤,通过行为、功能,模块化,这就是面向对象。后期可以通过增加其他的方法来进行对“规则”的改变,这样一种低耦合方向在扩展上具有更佳的体验。
类是一组相关的属性和行为的集合。是一个抽象的概念。对象是该类事物的具体表现形式,具体存在的个体。
类就是对一些具有共性特征,并且行为相似的个体的描述。
根据词性划分
通常,我们用名词来确定一个对象或一个类;动词来形容对象的方法;形容词所集合的名词来确定对象的属性。从词性上可以很好的区分一个词是设置为方法或属性或类。对于具有相同名词和动词的名词可以作为类。
不可再分的TYPE
一般依靠于逻辑上的“不可再分”思想。即,不能再分成类的即做对象。但真正理解起来,入门者会感觉有一定难度。正如马丁·海德格尔在《存在与时间》所说:“由于我们已忘记了我们的这种忘 记…"。我想恰恰可以用一种通过习惯来显式区分的简单方法。
TYPE
我们会给一个类许多需要的属性,入门者也会遇到许多”附加属性“的练习(目的是熟悉这门语言的语法)。
1.在刚开始使用类的设计思想时,不妨问一下,目标对象的属性是否还可以以type等相似词汇来进行形容。比如,电子宠物中有猫和狗可以领养。如果以电子宠物新建类,猫与狗做其下的对象,那么可以新建一个type属性用来表示属于猫,或是属于狗。 当我们将电子宠物作为一个类时,并没有想到猫或狗两种type,所以可能顺手就写出了这两个属性。恰恰这个type就说明了可以建成猫和狗的两个类。如果属性中出现了type就需要再考察下是否可以设置为类。
2.在需求上是否要针对这个type的各不同选项再划分,这个type的不同对象是否有无关这个type属性的动作行为。针对狗,狗还要挑选品种,但是不同品种的狗的方法/其他属性并不受品种的影响,狗是宠物,还可划分,故狗可成一类,不同品种的狗在需求上不需要再进行type的划分。