JAVA(成员变量私有封装,类的继承)

在imooc中学习JAVA,记录一下

封装是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式。

优点:

1、将变化隔离。

2、便于使用。

3、提高重用性。

4、提高安全性。

封装原则:

1、将不需要对外提供的内容都隐藏起来。

2、把属性都隐藏,提供公共方法对其访问。

一、成员变量私有封装

为不让外侧类随意的调用,修改某些类中的成员变量,我们需要对一些类中的成员变量进行私有封装。

1.将类中的成员变量设为私有化

 

 

 

2.使用get方法,set方法用于读取,修改成员变量的内容

 

 

 get书写格式:

public 成员变量类型 get成员变量名() {                      //get后的成员变量名首字母要大写              

  return this.成员变量名;

 set书写格式:

public void set成员变量名(新的数据参数){

  this.成员变量名=新的数据参数;

}

3.在外侧类中查询,修改上文成员变量的值

结果:

 

4.如果该类中没有定义set方法用于修改私有成员变量的值,那么外侧的类就不能随意的修改该类的私有成员变量。

 

二、类的继承

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

1.继承的特点:

  • 子类拥有父类非 private 的属性、方法。

  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

  • 子类可以用自己的方式实现父类的方法。

  • Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。

  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

2.类的继承格式

class 父类 {
}
class 子类 extends 父类 {
}
3.继承类型

需要注意的是 Java 不支持多继承,但支持多重继承。

 4.子父类中成员变量的特点:

 <1.当子父类中的成员变量同名的时候,使用super区分父类。super.成员变量 (代表父类的空间)

 

<2.当子父类中成员函数相同时,会运行子类的函数,这种现象称为覆盖操作。

函数特性:

(1)重载:同一个类中

(2)覆盖:在子类中,覆盖也称为重写

注意:子类方法覆盖父类时,子类权限必须要大于等于父类权限。

静态只能覆盖静态,或被静态覆盖。

什么时候使用覆盖操作:

当一个类进行子类的扩展时,子类需要保留父类的功能声明,

但是要定义子类中该功能的特有内容时,就使用覆盖操作进行完成。

 

<3.在子类构造对象时,子类的构造函数中第一行有一个默认的隐式语句,super();

调用了父类中空参数的构造函数。

如果父类中没有空参数的构造函数,那么子类的构造函数必须用super明确调用父类的哪个构造函数。同时如果子类构造函数中如果使用了this调用本类的构造函数时i,那么super就没有了,因为super和this都只能定义第一行,所以只能有一个,但可以肯定的是子类中肯定会有其他构造函数访问父类的构造函数。

注意:父类的初始化动作先完成。

 

posted @ 2021-03-11 15:40  金芒果决斗  阅读(858)  评论(0)    收藏  举报