什么是类?对象?类与对象的关系是什么?
什么是对象? 万物皆对象。它包括现实中客观存在的事物,也包括抽象的时间、规则、思维。简单点说,对象具有状态、行为和标识。
类什么是类? 具有相同特性和行为的对象组成的集合就是类,JAVA实际中的类就是指一个数据类型。
对象与类的关系类是对象的抽象,而对象是类的具体实例。类与对象的关系:抽象(该抽象是名词)与类的实例化就是对象,对象的共性特征抽象(该抽象是动词)出来就是类。
比如你要买一台PC,你在订单上列出了这台PC的CPU和显卡型号、显示屏的大小、键盘是104还是87位、主机的颜色等等,这所有信息组成在一起就是一个电脑的类,但你只有它的参数并没有一个符合这个要求的实物对象,而当服务员拿出了一台符合这个订单的具体PC时,这个PC就是那个类的具体对象。
实习找工作遇到个印象较深的基础面试问题, 面试官:男人和女人是同一个类吗? 我:是同一类。 面试官:钢笔和铅笔是同一个类吗? 我:是同一类。 面试官:男人和钢笔是同一个类吗? 我犹豫了3秒钟, 我:不是同一类 面试官:看来你对基础概念理解的还不到位啊。
这里,首先你要懂得万物皆对象,对象都是类的实例,而类是对象的抽象。那么我在JAVA中就可以定义男人和钢笔都是A类或B类或C类,而这个类可以是描述都是看的见或摸的着的特征,亦或是什么都不描述的但就是用来实例化男人和钢笔的类(类可以是你随性定义的),即男人和钢笔是同一类。同理,时间和水是一类吗?思维和手是一类吗?都是的。 其实面试官在这也埋了一个坑----没有交代问题的前提条件。我认为完美的答案应该是: “从生活角度讲,男人和女人是同一类,钢笔和铅笔是同一类,但男人和钢笔不是同一类。 从Java中类与对象的关系来说,男人和女人是同一类,钢笔和铅笔是同一类,男人和钢笔也是同一类。”
面试官还问过我一个对象问题: 面试官:若我是一个完全不懂IT和编程的人,你能给我解释一下什么是对象吗? 我:在JAVA中,对象就是一类数据的实例化,他们有着一种或几种的相同特征。 面试官:你认为一个普通人听得懂这个吗?你只需要说万物皆对象就好,再举几个生活中的例子,没必要去背概念。
最后,我还是收到了这加公司的Offer,也是我工作生涯所进的第一家公司,也让我认识到了什么叫资产阶级的剥削,当然,这些都是后话了。。。