封裝繼承多型-java面向物件三大特徵
第七章 封裝和繼承
一、面向物件的三大特徵
封裝、繼承、多型
二、封裝
將類的屬性(欄位)設定為私有的(private),並新增getter/setter方法操作屬性。
注意:get|set方法的固定語法格式為:get屬性名 set屬性名
private String name; getName setName
private int userAge; getUserAge setUserAge
get和set方法可以成對出現,也可以只有get或者只有set。
三、包
1.設定類所在的包:在原始檔的第一行新增: package 包名
package com.bdqnsjz.demo;
public class Test{}
2.匯入包:在原始檔的package和類名中間新增: import 包名
package com.bdqnsjz.demo;
import com.dbqnsjz.homework;
public class Test{}
注意:
包名由小寫字母組成,不能以圓點開頭或結尾
包名之前最好加上唯一的字首,通常使用組織倒置的網路域名
常見的包:java.lang:虛擬機器自動引入
java.util:提供一些實用類
java.io: 輸入、輸出
package和import的順序是固定的:
1.package必須位於第一行(忽略註釋行)
2.只允許有一個package語句
3.其次是import
4.接著是類的宣告
四、訪問修飾符
同一個類中 同一個包中 子類中 任何地方
private yes no no no
預設修飾符 yes yes no no
protected yes yes yes no
public yes yes yes yes
注意:優先順序從低到高依次為:private(私有的) < 預設 < protected(受保護的) < public(公共的)
上述訪問修飾符適用於:屬性、方法。不適用於類。
五、static關鍵字
static是靜態的。static可以修飾屬性、方法。被static修飾的屬性和方法又叫靜態屬性和方法。
靜態成員和非靜態成員的區別:
1.靜態成員有被static關鍵字修飾,非靜態成員沒有。
2.靜態成員通過 類名.成員名 進行呼叫;非靜態成員通過 物件名.成員名 進行呼叫。
注意:靜態成員雖然使用方便,但是靜態成員在記憶體中會一直存在,並且只有1個例項。