没有量,何来质?当今不少程序员对于技术细节要不就是茫然不知,要不就是旁门左道,程序员职业被定义成“青春饭”,何知达到手中无剑心中有剑的境界岂是三年五载之功?就拿.NET这种所谓”傻瓜“框架,又有几人能做精?在技术层面,不熟知细节,何谈指点江山?当今有几个架构师写的系统框架能够将程序员将要实现的代码紧扣在框架之内,实现可维护性和扩展性?没有十年的细节磨练,能成合格的架构师?对于初学者以至于一部分程序员,现在所缺乏的就是对细节一丝不苟的研究。很多在CSDN上的问题,一看就是连最基本的入门书都没有读过,但却从事的开发,是”程序员“。现在到企业招人要找专家,软件工程师,测试工程师,架构师,吓倒一批人; 而来了一批专家,软件工程师,测试工程师,架构师,失望一批人。企业不知道自己要找什么样的人; 一些人不知自已是什么样的人。岂知“家,师”是乱叫的,自封的?是的,被叫乱了。还是国外简单: seeking for developer, senior developer, x year experience in xxxx. 一下就知道自己的定位。这现象说明啥?跑题胡说一通,纯属个人观点,自勉。
.net 较容易迷失方向.vs , C#, .net 这些东西搞混的很多见.
简单明了的回答。 人是一个类。学生,教师,音乐家。这都是一都是一个类。不过他们可以都属于人这个类。而对象则是指一个实体。是独一无二的。 比如。张三,这就是一个对象,一个独一无二的东西。也许你会说世界上不可能只有一个人叫张三,但是。张三有他特定的属性,比如身份证号。 public class Person { //定义了 一个Person类 in id; string name; //定义其成员变量。保证他的唯一性。 } Person p = new Person(); //实例化一个对象P Do you understand?
呵呵,很正常!一知半解就对了,最好是啥不用知道。这个问题,实际根本无解,就像哲学家最感兴趣一个一个命题“who am I”-------我是谁,谁又是我,没有一个哲学家能回答,但并不妨碍哲学家们去讨论“to be or not to be”,生存或死亡,存在或不存在 我是谁并不重要,重要的是我们活着,我们存在,我们会思考,我们能解决问题-------- 啥是对象也并不重要,总结出对象的概念是哲学家干的事情,而不是我们。 我们是程序员,我们知道啥是“好的对象”,啥是“坏的对象”就成了,我们要做的事情就是“面对好的对象编程,而不是面对一个散发着臭气的坏对象去编程”就可以了
音乐来说, Nobody、我不介意你恨我(像这种歌曲名字)就可以理解为对象。而音乐呢是一个统称 理解为 类
那么这个定义:Student xiaoMing = new Student();如果我说 xiaoMing 是 Student的一个 instance正确否?
如果我说 xiaoMing 是 Student的一个 object正确否?
如果我说 Student 是 Entity 正确否?
如果我说 Student 是 Class 正确否?如果正确的话,你说 “实例Instance和对象Object是完全不同的概念”,你是怎么理解的?(Entity是不同的概念,我没提Entity)
而不是某某哲学家的言论,结论.人类的一切活动都是可以在概念上进行抽提的,
对于 OO, 关键不在程序上, 这是真的,
不信可以看看 Booch 的书, 作者费了好大篇幅将分类学.
语文:主、谓、宾、定、状、补-------------好像每次做需求分析的时候,我都觉着自己是在做语文题目。谁是主语??他要操作谁??怎么操作??有没有限制???
哲学:恩 抽象再抽象---------这不是哲学家门的事情??比较佩服“胡塞尔”,连“烦”这种存意识的东西,都能有一个完整的定义,“抽象”,太“抽象”了,不过老胡同志的另一句话到还成,具有实际意义-------“回到事情的本身处”数学:没有数学就没有计算机,数学一定要学。经济学:经济学是个数字统计打交道滴,程序员也多数是和数字统计打交道滴,为啥不学呢? 何况我们还要炒股呢??(嘿嘿,我认识的大多数成功的程序员都炒股,而且都是高手)兵法:战场瞬息万变,讲的就是变化和应对。俺们程序员也有对手:需求变化,“臭味”,bug------他们是敌人,我要打败他---战略、战术一样少不了博弈论:你的决定不重要,重要的是大家的决定。事情都是交互影响滴,所以程序员千万别“闭门造车”,要学会了解“大家”的决定
上面说起 原版书, 非常同意, 国内著书界, 包括译书的, 真是糟糕透了.希望 Richard Stevens 那样的在国内多多出现.
对象相当于具体某个人 ,如 胡景涛
面向对象 有封装 继承 多态 几个特征
封装 ;把代码写在一个类里 需要时候 调用哪个即可 提高安全性
继承 实现代码重用性
多态 方法名字先攻 但是 参数个数或类型不同 实现不同功能
如INT A(STRING B) INT A(STRING B,STRING C)
只能用“大道自然,大道至简”“道可道非常道”来表述
就我看来“凡物皆对象”就成,一个int是对象,一个string是对象,一个方法也是对象,一个算法也是对象--------------------没有啥不是对象滴
这个里面只有“好对象”和“坏对象”的区别,就像“好人”和“坏人”的区别一样,“好人”有一个通常标准的定义(当然事无绝对。好人未必好,坏人也未必坏,只是一个通常的定义),那么“好对象”基本也有一个通常的标准,实际一般的对象书里面讲的那些原则,手段就是教给你啥是“好对象”而已
so,我给的建议就是:不要纠缠“对象”了,只要知道啥是“好对象”就成
人是一个类。学生,教师,音乐家。这都是一都是一个类。不过他们可以都属于人这个类。而对象则是指一个实体。是独一无二的。
比如。张三,这就是一个对象,一个独一无二的东西。也许你会说世界上不可能只有一个人叫张三,但是。张三有他特定的属性,比如身份证号。
public class Person { //定义了 一个Person类
in id;
string name; //定义其成员变量。保证他的唯一性。
}
Person p = new Person(); //实例化一个对象P
Do you understand?
呵呵,很正常!一知半解就对了,最好是啥不用知道。这个问题,实际根本无解,就像哲学家最感兴趣一个一个命题“who am I”-------我是谁,谁又是我,没有一个哲学家能回答,但并不妨碍哲学家们去讨论“to be or not to be”,生存或死亡,存在或不存在
我是谁并不重要,重要的是我们活着,我们存在,我们会思考,我们能解决问题--------
啥是对象也并不重要,总结出对象的概念是哲学家干的事情,而不是我们。
我们是程序员,我们知道啥是“好的对象”,啥是“坏的对象”就成了,我们要做的事情就是“面对好的对象编程,而不是面对一个散发着臭气的坏对象去编程”就可以了
面对对象编程:按照现实世界在我们头脑中的意识映射的原型编程就像ls说的,人物:在我们头脑中的意识映射有身高,都性别,有年龄,有头发的颜色,等等,有会走,会跑,会跳等等动作方法,我要做的就是反映现实世界的那个人在你头脑的东西
so:看的出来,即使我已这么清楚地话来表达,对象和面对对象编程,对你也没有啥帮助所以上面一直说 不要管啥是对象了,对象理解的再清楚,如果你头脑的是坏的对象,那么你实际编程中用坏的对象去编写,那么带来的麻烦也不会比你不对象要少多少。
so:我们真正要做的事情是分清楚啥是“好的对象”,啥是“坏的对象”就成了,这才是OO程序员要做的事情ps:lz结贴把,在讨论下去就没啥意义了