众所周知大数据开发中的JAVA有三大特性,封装、继承、多态。而这三大特性,可以说是大数据开发的基础也可以说是JAVA的起跑线。所以如果想要深刻的了解JAVA,就先深入的了解这三大特性。

一、封装

就从字面上理解来说,封装其实就是把“类”的“过程”和“数据”装起来,而且对于该数据的访问只能够通过先前已定义的接口才能够访问。封装是一种隐藏信息的技术,是将一个系统中的结构和行为通过类来划分的过程。通过定义一组类,将特定的数据组合到某一个类中,形成一个整体,将该隐藏的数据进行保护,只对外暴露这些数据的访问的方法。因此,封装就有两个含义:把该隐藏的隐藏起来,把该暴露的暴露出来。

封装和继承几乎都是为多态而准备的。

封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系。也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。

java大数据开发学习资料(大数据开发应该如何学习)(1)

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中,子类是无法直接访问的,在制定子类的带参构造方法时,只能通过调用父类的带参构造来完成。对于父类非私有的属性,子类对象可以直接调用。

java大数据开发学习资料(大数据开发应该如何学习)(2)

三、多态

多态就是指的同一个行为有不同的表现形式或形态的能力,比如我用同一个键盘,打出了简体字和中文字两种字体。多态性是对象多种表现形式的体现。它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。

1、多态的特点

①消除类型之间的耦合关系,实现低耦合。

②灵活性。

③可扩充性。

④可替换性。

⑤接口性

⑥简化性

2、使用场景及条件

①主要用于方法的重载和重写

②关于子类对象的多态性

③在多态中必须存在有继承关系的子类和父类

④子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法

⑤在多态中需要将子类的引用赋予给父类的对象。

3、 多态存在的前提

①必须有子类和父类,具有继承或实现(继承)

②子类必须重写父类的方法(重写)

③父类的引用变量指向子类的对象(向上转型)

4. 多态的优点

①可替换性,多态对一存在的代码具有可替代性

②可扩充性:增加的子类不影响已存在的类的特性的运行和操作

③接口性:多态时超类通过方法签名想子类提供了一个公共的接口,由子类来完善或者覆盖它而实现的

④灵活性:在应用中体现了灵活多样的操作,提高了使用的效率

⑤简化性: 多态简化对应用软件的代码的编写和修改过程,尤其在处理大量的对象的运算和操作时,这个特点尤为突出和重要

关于JAVA的三大特性就是如此。文章所涉及到的内容和篇幅都是比较基础,可以根据这个思路去进行知识面的拓宽。这个是JAVA基础中的基础,把相关概念弄懂之后,对只有大数据的开发学习也能起到一个很好的桥梁搭建作用。

java大数据开发学习资料(大数据开发应该如何学习)(3)

,