众所周知大数据开发中的JAVA有三大特性,封装、继承、多态。而这三大特性,可以说是大数据开发的基础也可以说是JAVA的起跑线。所以如果想要深刻的了解JAVA,就先深入的了解这三大特性。
一、封装就从字面上理解来说,封装其实就是把“类”的“过程”和“数据”装起来,而且对于该数据的访问只能够通过先前已定义的接口才能够访问。封装是一种隐藏信息的技术,是将一个系统中的结构和行为通过类来划分的过程。通过定义一组类,将特定的数据组合到某一个类中,形成一个整体,将该隐藏的数据进行保护,只对外暴露这些数据的访问的方法。因此,封装就有两个含义:把该隐藏的隐藏起来,把该暴露的暴露出来。
封装和继承几乎都是为多态而准备的。
封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系。也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。
1、.封装的实现
①需要修改属性的访问控制符(修改为private);
② 创建getter/setter方法(用于属性的读写);
③在getter/setter方法中加入属性控制语句(用于判断属性值的合法性);
属性 (成员变量 ) 随对象存放在堆中,直接通过对象调用属性,修改属性值是不安全的,那怎么办?
为了实现良好的封装,我们通常将类的成员变量声明为private,为了能够在外部使用,可以通过定义public方法来对这个变量来访问。对一个变量的操作,一般有读取和赋值2个操作,我们分别定义2个方法来实现这2个操作,一个是getXX(XX表示要访问的成员变量的名字)用来读取这个成员变量,另一个是setXX()用来对这个变量赋值,把成员变量设置为私有的,只能在本类中使用,所以属性也叫全局变量。
2. 封装的优点
① 将变化隔离
②便于使用
③ 提高重用性
④ 提高安全性
4、封装的缺点:
将变量等使用private修饰,或者封装进方法内,使其不能直接被访问,增加了访问步骤与难度。
5、封装的目的:
①封装可以隐藏实现的细节,这让使用者只能通过写好的访问方法来访问这些字段,
②限制对数据的不合理访问、方便数据检查,就可以保护对象信息的完整性。
③便于修改,提高代码的可维护性
④降低了建构大型系统的风险
⑤提高代码的复用性
二、继承继承就如字面意思那样,将多个相同属性和方法提取出来,新建一个父类,然后子类继承父类的特征和行为,一个类只能继承一个父类,而且只能继承访问权限非private的属性和方法,另外如果父类中拥有私有(private)属性继承,则子类是不能被继承的。
1、注意事项:
①子类可以拥有父类的属性和方法。
②子类可以拥有自己的属性和方法。
③子类可以重写覆盖父类的方法。
2、继承的优点:
①减少代码量,能很好的提高复用率。
②使类与类之间存在继承关系,是实现多态操作的前提。
3、 继承的缺点
继承使得多个类之间具有了子父类关系,当一个类存在多个子类的时候,如果父类发生变化,那么这些子类会跟着一同变化,造成类与类之间的“强耦合”关系!
4、继承注意点
①不要仅仅为了获取某个类的某个功能而去继承这个类
②类与类之间要存在所属关系,不能够随意继承
5、结论:
①执行构造方法创建对象完成对象的初始化时,先执行父类的构造,完成父类的初始化,再执行本类的初始化工作。
②第一次创建Phone(父)类,是直接继承Object,而Object是jdk提供的工具类,自然不会有属性,所以Object类只提供了无参的构造,在执行Phone方法时,无论是无参还是有参都会先执行父类Object的无参构造。
③但是对于Phone的子类Mobile,必须也要有自己的构造方法,由于构造执行的特性,对于无参构造,先执行了Phone的无参构造,对于有参构造,则先执行父类Phone的有参,然后才执行本类属性sex的初始化。
④对于父类私有的属性,即使子类继承,但是在test.java中,子类是无法直接访问的,在制定子类的带参构造方法时,只能通过调用父类的带参构造来完成。对于父类非私有的属性,子类对象可以直接调用。
三、多态
多态就是指的同一个行为有不同的表现形式或形态的能力,比如我用同一个键盘,打出了简体字和中文字两种字体。多态性是对象多种表现形式的体现。它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。
1、多态的特点
①消除类型之间的耦合关系,实现低耦合。
②灵活性。
③可扩充性。
④可替换性。
⑤接口性
⑥简化性
2、使用场景及条件
①主要用于方法的重载和重写
②关于子类对象的多态性
③在多态中必须存在有继承关系的子类和父类
④子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法
⑤在多态中需要将子类的引用赋予给父类的对象。
3、 多态存在的前提
①必须有子类和父类,具有继承或实现(继承)
②子类必须重写父类的方法(重写)
③父类的引用变量指向子类的对象(向上转型)
4. 多态的优点
①可替换性,多态对一存在的代码具有可替代性
②可扩充性:增加的子类不影响已存在的类的特性的运行和操作
③接口性:多态时超类通过方法签名想子类提供了一个公共的接口,由子类来完善或者覆盖它而实现的
④灵活性:在应用中体现了灵活多样的操作,提高了使用的效率
⑤简化性: 多态简化对应用软件的代码的编写和修改过程,尤其在处理大量的对象的运算和操作时,这个特点尤为突出和重要
关于JAVA的三大特性就是如此。文章所涉及到的内容和篇幅都是比较基础,可以根据这个思路去进行知识面的拓宽。这个是JAVA基础中的基础,把相关概念弄懂之后,对只有大数据的开发学习也能起到一个很好的桥梁搭建作用。
,