- Java面向对象——类与对象的定义
- 来源:软件测试开发技术栈
在现实生活中,随处可见的事物就是各种不同的“对象”,对象是事物存在的“实体”,如人、汽车等。每个对象我们都可以划分为动态部分与静态部分。静态部分,顾名思义就是固定不会改变的部分,我们可以理解为“属性”,任何对象都具备其自身属性,如人的性别、年龄、身高等属性。动态部分,顾名思义就是会发生变化的部分,我们可以理解为“行为”,比如人的行走、唱歌、睡觉等行为。
类是封装对象的属性与行为的载体,反过来说具有相同属性和行为的一类实体被称为类。例如一个人类,人类封装了所有人的共同属性(性别、年龄)和其具有的行为(行走、唱歌),类就是同一类事物的统称,对象是类的实例。
面向对象
面向对象(Object-Oriented)是现在最为流行的软件设计开发方法,在面向对象中两个最核心的成员就是 类与对象。
相对于面向过程,面向过程指的是面对一个问题的解决方法,以功能实现为主,并不考虑其可维护性、复用性的设计。面向对象的主要是以标准的模块化设计,使用时根据标准进行拼装,面向对象的设计的三个主要特征:封装性、继承性、多态性。
- 封装性:封装是面向对象编程的核心思想,将对象的属性与行为封装起来的载体就是类,类通常对使用者隐藏其具体实现细节,内部操作对外部操作而言不可见,保证了类内部数据结构的完整性,使用者不能轻易直接操纵此数据结构,只能执行 类允许公开的数据,避免了外部对内部数据的影响,提高了程序的可维护性。
- 继承性:子类可以继承父对象的属性(数据)和行为(方法),并可以在现有的基础上进行功能的修改和扩充,类似自然中的物种遗传。
- 多态性:多态指一个类实例的相同方法在不同情形具有不同表现形式(或者可以理解为父对象中的同一个行为能在它的多个子对象中有不同的表现),即同一消息可以根据发送对象(函数调用对象)的不同而采用多种不同的行为方式,例如:同样是 move 方法,鸟调用时是飞翔,马调用时是奔跑。
类与对象
类是对某一个事物共性的产物,对象是一个个具体产物,即“类是对象的模板,而对象是类的实例”。比如,人表示为一个类(人类),并不是一个具体的个体,但如 “张三”则是具体的个体,这个具体个体被称作一个对象。类一般以下两个基本组织单元构成:
- 成员属性:如,不同的人都有年龄、身高、性别等信息,用于描述对象具体特征,对象的属性以成员属性的形式定义。
- 方法(行为):如,一个人可以行走、唱歌、睡觉,用于描述功能,对象的行为以方法的形式定义。
类与对象的定义
在Java中,类是一个独立的结构体,所以使用class 关键字进行定义,在类中主要是由成员属性和方法(行为) 构成。我们使用class 关键字定义类,类的定义的基础语法如下:
定义一个Person类
如下,我们定义了一个Person类,其中包含姓名、身高、年龄3个成员属性(变量),并定义了一个printInfo 方法,实现成员属性的输出。
声明并实例化对象
一个类完成定义后,并不能被直接使用,因为它是一个模板,具体的操作必须由具体的实例来执行,由于类数据Java的引用数据类型(类、接口、数组),所以对象的定一个是如下:
因为在Java中引用数据类型时需要进行内存分配的(基础数据类型不涉及内存分配问题),所以在定义时必须通过new 关键字来分配对应的内存空间,之后才可以使用,此过程被称作声明并实例化对象,一个实例化对象则可以使用以下方式进行使用:
- 对象.成员属性:调用类中的成员属性。
- 对象.方法:调用类中的方法。
我们将上述Person 类在进行实例化,并且在未对类中成员属性赋值时,直接调用类中printInfo 方法,然后分别对类中成员属性进行赋值,再次调用printInfo 方法。如下:
如上,我们通过关键字new 获取Person 类的实例化对象,然后通过实例化对象实现类中属性的赋值和方法调用。需要注意的是,当我们在定义变量时,若不对变量进行赋值,则会使用默认值进行初始化。
科学
-
- 已有400多万人买5G手机,但你知道怎么买最优惠吗?
- 众所周知,11月1日国内三大运营商全面开启5G商用,预示着大家盼望已久的5G时代正式到来。而按照工信部早几天发布的数据,这短短的20多天时间里,国内就有87万人开通了5G套餐,使用上了5G网络。 而如
- 互联网乱侃秀
-
- 库克感谢中国从不向苹果施压,iPhone生产线将继续留在中国
- 中国对于世界上任何一个品牌来说都是一个足够大的市场,没有任何一个品牌离开中国市场可以做到世界前列。对于苹果来说,中国市场的重要性不言而喻,库克深知这一点,因此在和中国市场的关系上苹果显得十分小心。 根
- 芯片超人
-
- iOS 13.3火力全开!深度对比iOS 13.2.3,续航逆袭!毫不犹豫
- 【果师兄科技资讯】近日,苹果公司推送iOS系统版本的频率越来越频繁,前两天iOS 13.2.3正式版刚发布,昨日又更新了iOS 13.3 beta 3版本。iOS 13.2.3发布四天后,续航和信号口
- 果师兄说iPhone
-
- 各大互联网公司都有怎样的员工保障
- 来源:钱江晚报 京东: 在昨天的京东集团早会上,京东集团董事局主席兼首席执行官刘强东宣布了一个政策:以后京东的员工只要是在任职期间无论因为什么原因遭遇不幸,公司都将负责其所有孩子一直到22岁(也就是大
- 中国经济网
-
- 微信推出“腾讯QQ”小程序,你还用QQ吗?
- 11月26日午间消息,#微信推出QQ小程序#话题引起关注。据了解,通过“腾讯QQ”小程序,用户可以在微信上查看QQ消息。据报道,腾讯QQ小程序由早先的QQ空间时光机改名而来。 小编亲测,通过微信打开小
- 21世纪经济报道
-
- 小米 MIX 4 要来了?
- “小米是一家以手机、智能硬件和 LoT 平台为核心的互联网公司。”在 2019 年度小米开发者大会上雷军这样介绍小米。 确实,近几年小米除了手机,小爱同学和米家家电也逐渐有了自己的市场,还有米粉在家中
- 爱回收网
-
- 三星旗舰一夜降至惊喜价!2K曲面屏+8GB+512GB,这才是机皇的实力
- 三星手机目前在国内市场已经没有之前的影响力了,2017年爆炸门事件发生之后,三星的口碑和销量就开始双双下滑,从之前的20%市场份额一直降到了1%。可以说是一落千丈,三星旗舰手机在国内的影响力也逐渐变小
- 科技六分钟
-
- 孙宇晨正在微博给网友打钱,一次5万,为蹭网易热点也是够努力了
- 这几天,网易暴力辞退绝症员工的事件闹得沸沸扬扬,引起众多媒体和网友关注。 作者自称是一名在网易游戏工作了5年的老员工,今年1月底,被确诊为扩张型心肌病。在身患绝症的情况下,经历了“逼迫、算计、监视、陷
- 电商在线
-
- 5大荣耀新品今日下午惊艳亮相 期待哪款?
- 今日下午,荣耀将在京举办荣耀V30系列新品发布会,届时荣耀V30、荣耀V30 Pro、荣耀MagicBook 14、荣耀MagicBook 15和荣耀MagicWatch 2五大新品将一同亮相,快来看
- 鲁大师
-
- 多益网络董事长徐波发微博:愿为网易离职员工捐款最多100万,但有三个条件
- IT之家11月26日消息近日,有网易前员工发文称在患绝症情况下遭公司变相裁员,引发网络热议。11月25日,针对暴力裁员一事,网易公司回应称,相关人员确实存在简单粗暴、不近人情等诸多不妥行为。对此,我们
- 同花顺财经
-
- 苹果明年将推出3款5G手机 价格却让人心碎
- 众所周知,2019是商用元年,2020年应该是5G开始迅速增长的一年,如今全世界多个国家和企业的研究重点5G,目前各大主流终端品牌都已发售5G手机,比如华为和三星手机占据了5G手机出货的大部分份额,同
- 中关村在线
-
- 余承东:华为已是中国最大手表厂商;孙宇晨:网易离职人看病钱我出
- 罗永浩被解除限高,“债主”回应:法院组织达成和解,罗永浩已还部分欠款 针对有报道称罗永浩限制高消费令已解除一事,“债主”辰阳公司回应称,由法院组织达成和解,罗永浩已归还部分欠款,剩余部分将分期归还。
- AI财经社
-
- 当小米手机遇上茅台酒,才明白雷军卖酒的真正目的
- 据多家媒体报道,小米与茅台双方就深化未来合作进行了深度交流,相继表达了推动进一步战略合作的意愿。一家是现代互联网高科技企业,一家是传统白酒生产企业;一家是最年轻的世界500强企业,一家是中国A股上市企
- 菲菲科技秀
-
- Java面向对象——类与对象的定义
- 在现实生活中,随处可见的事物就是各种不同的“对象”,对象是事物存在的“实体”,如人、汽车等。每个对象我们都可以划分为动态部分与静态部分。静态部分,顾名思义就是固定不会改变的部分,我们可以理解为“属性”
- 软件测试开发技术栈
-
- 免费网盘即将成为过去式,付费即趋势
- 网盘 网易网盘 作为市场上最后一款完全向个人用户免费的网盘,将于本月的 30 号进行业务调整,届时将关闭网盘常规入口,这意味着免费网盘即将成为过去式。 曾经辉煌一时的 360 网盘也彻底关闭了个人云存
- 智网教派