在imooc中学习JAVA,记录一下

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

优点:

1、将变化隔离。

2、便于使用。

3、提高重用性。

4、提高安全性。

封装原则:

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

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

一、成员变量私有封装

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

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

java私有成员变量继承吗 java私有成员变量怎么定义_java私有成员变量继承吗

 

 

 

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

java私有成员变量继承吗 java私有成员变量怎么定义_JAVA_02

 

 

 get书写格式:

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

 set书写格式:

public void set成员变量名(新的数据参数){
  this.成员变量名=新的数据参数;
}

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

java私有成员变量继承吗 java私有成员变量怎么定义_成员变量_03

结果:

java私有成员变量继承吗 java私有成员变量怎么定义_父类_04

 

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

 

二、类的继承

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

1.继承的特点:

  • 子类拥有父类非 private 的属性、方法。
  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
  • 子类可以用自己的方式实现父类的方法。
  • Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

2.类的继承格式

class{
}
classextends{
}

3.继承类型

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

java私有成员变量继承吗 java私有成员变量怎么定义_父类_05

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

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

 

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

函数特性:

(1)重载:同一个类中

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

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

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

什么时候使用覆盖操作:

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

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

 

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

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

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

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