什么是类?对象?类与对象的关系是什么?
对象
什么是对象?
万物皆对象。它包括现实中客观存在的事物,也包括抽象的时间、规则、思维。简单点说,对象具有状态、行为和标识。
类
什么是类?
具有相同特性和行为的对象组成的集合就是类,JAVA实际中的类就是指一个数据类型。
对象与类的关系
类是对象的抽象,而对象是类的具体实例。类与对象的关系:抽象(该抽象是名词)与类的实例化就是对象,对象的共性特征抽象(该抽象是动词)出来就是类。
比如你要买一台PC,你在订单上列出了这台PC的CPU和显卡型号、显示屏的大小、键盘是104还是87位、主机的颜色等等,这所有信息组成在一起就是一个电脑的类,但你只有它的参数并没有一个符合这个要求的实物对象,而当服务员拿出了一台符合这个订单的具体PC时,这个PC就是那个类的具体对象。
实习找工作遇到个印象较深的基础面试问题,
面试官:男人和女人是同一个类吗?
我:是同一类。
面试官:钢笔和铅笔是同一个类吗?
我:是同一类。
面试官:男人和钢笔是同一个类吗?
我犹豫了3秒钟,
我:不是同一类
面试官:看来你对基础概念理解的还不到位啊。
这里,首先你要懂得万物皆对象,对象都是类的实例,而类是对象的抽象。那么我在JAVA中就可以定义男人和钢笔都是A类或B类或C类,而这个类可以是描述都是看的见或摸的着的特征,亦或是什么都不描述的但就是用来实例化男人和钢笔的类(类可以是你随性定义的),即男人和钢笔是同一类。同理,时间和水是一类吗?思维和手是一类吗?都是的。
其实面试官在这也埋了一个坑----没有交代问题的前提条件。我认为完美的答案应该是:
“从生活角度讲,男人和女人是同一类,钢笔和铅笔是同一类,但男人和钢笔不是同一类。
从Java中类与对象的关系来说,男人和女人是同一类,钢笔和铅笔是同一类,男人和钢笔也是同一类。”
面试官还问过我一个对象问题:
面试官:若我是一个完全不懂IT和编程的人,你能给我解释一下什么是对象吗?
我:在JAVA中,对象就是一类数据的实例化,他们有着一种或几种的相同特征。
面试官:你认为一个普通人听得懂这个吗?你只需要说万物皆对象就好,再举几个生活中的例子,没必要去背概念。
最后,我还是收到了这加公司的Offer,也是我工作生涯所进的第一家公司,也让我认识到了什么叫资产阶级的剥削,当然,这些都是后话了。。。
什么是类?对象?类与对象的关系是什么?相关推荐
- 使用扩展方法和静态门面类实现伪领域对象
背景介绍 领域对象,在此特指充血的领域对象模型,在解决什么是伪领域对象之前,需要事先解释何为充血的领域对象.在此后的介绍中,假设我们存在对象模型Employee-Department. 在面向对象的实 ...
- python类_python类和对象
1.self? python的self相当于c++的指针 self相当于每个房子的门派号,同一个类生成很多对象,对象很相似.当一个对象的方法被调用时,对象为第一个参数传递给方法. 2.python的魔 ...
- python释放类对象_Python 基本功: 10. 面对对象-类 Class
虽然 Python 可以写函数式编程,但是本质上是一门面对对象编程语言 (object-oriented programming language),简称 oop.面对对象编程是把代码包装成一个对象 ...
- 对象类什么是面向对象(1)
时间紧张,先记一笔,后续优化与完善. 面向对象(Object Oriented,OO)是前当计算机界关怀的重点,它是90年代件软发开方法的主流.面向对象的观点和应用已超出了程序筹划和件软发开,扩展到很 ...
- 关于类、方法、对象(实例):静态方法
类里面的方法有3种:类的实例方法(平时常用的带有self的方法).静态方法(@staticmethod ).类方法(@classmethod) 这里主要看一下类的实例方法和静态方法的区别: (1)实例 ...
- Struts2教程6:在Action类中获得HttpServletResponse对象的四种方法
在struts1.x Action类的execute方法中,有四个参数,其中两个就是response和request.而在Struts2中,并没有任何参数,因此,就不能简单地从execute方法获得H ...
- python3 类字符串名实例化对象
方法一: class obj(object): pass a = eval('obj()') 方法二: # 如果是经常需要这样可以 # 将用来创建对象的字符串预编译成code对象. create_ob ...
- python类的属性和对象属性_在python的类中动态添加属性与生成对象
本文将通过一下几个方面来一一进行解决 1.程序的主要功能 2.实现过程 3.类的定义 4.用生成器generator动态更新每个对象并返回对象 5.使用strip 去除不必要的字符 6.rematch ...
- 【Groovy】Groovy 方法调用 ( 使用 对象名.成员名 访问 Groovy 类的成员 | 使用 对象名.‘成员名‘ 访问类的成员 | 使用 对象名[‘成员名‘] 访问类成员 )
文章目录 一.使用 对象名.成员名 访问 Groovy 类的成员 二.使用 对象名.'成员名' 访问 Groovy 类的成员 三.使用 对象名['成员名'] 访问 Groovy 类的成员 四.完整代码 ...
- 【设计模式】代理模式 ( 动态代理 | 模拟 Java 虚拟机生成对应的 代理对象 类 )
文章目录 前言 一.模拟 JVM 生成对应的 代理对象 二.模拟 JVM 生成对应的 代理对象 完整流程展示 1.目标对象接口 2.被代理对象 3.调用处理程序 4.模拟 JVM 生成的代理对象类 5 ...
最新文章
- python封装 继承 多态 举例_python面向对象中的封装、继承、多态
- java解析excel的js页面,Java导入Excel文件页面实现JS
- 带着canvas去流浪系列之一:绘制柱状图
- 【转】TestNG常用注解
- vue 随机显示数组的其中一个_两个显示器组建双屏其中一个屏幕出现重影解决方法...
- block的理解 ios_iOS面试--字节跳动最新iOS开发面试题
- python输出文件夹路径_python如何获取文件夹下第一层文件的路径,
- 和java_那些和Java的点滴
- python3数据库同步_Python同步Mysql不同数据库的表
- RS485协议和Modbus协议有什么区别?工业网关能用吗?
- 哔哩哔哩视频音频下载器批量下载器
- 在阿里 AI Lab 做 NLP 高级算法专家是一种什么样的体验?
- zoj 3551 Bloodsucker 概率DP
- Windows主机连接Windows虚拟机上Oracle数据库
- 阿里云智能编码插件Cosy,让你的开发过程既高效又轻松
- 笑喷了,电视剧里的代码真能运行吗?
- win 7 系统(x64)安装vs2012时遇到的问题
- LIMS实验室系统管理软件的国内外应用现状
- [机器学习] 深入理解 目标函数,损失函数和代价函数
- 移动二班 21号 pycharm 04.09
热门文章
- python交互界面制作_Python 如何编写交互界面?_后端开发
- Mysql出现问题:ERROR 3636 (HY000): Recursive query aborted after 1001 iterations. Try increasing解决方案
- 设置Windows账号出错,该组不存在client
- css3 手机相册,CSS相册简单实现方法(功能分析及代码)
- 位(bit)、字节(Byte)、字(word)、字长
- MoveIt!之ROS1Melodic版本发布(MoveItCpp教程)
- CGB2009-京淘项目DAY10
- PBR渲染(二)——PBR皮肤渲染
- echarts——实现中国地图+世界地图的切换——技能提升
- android10续航,2017年旗舰手机续航排名:超过10小时的仅这三款