java基礎篇---------類和物件(OOP)
阿新 • • 發佈:2018-11-21
JAVA 的是完全面向物件程式設計的!!!
面向物件程式設計的三大特性:封裝、繼承、多型
1.類
類是構造物件的模板或者藍圖,由類構造物件的過程就是建立類的例項;
類裡面存放類的成員變數,成員方法,
class student { private int age; // 成員屬性 用private修飾,體現其封裝性 private String name; private String sex; private static int count; public void eat() { // 成員方法 System.out.print("吃飯"); } }
2. 物件:
物件是由類創建出來的一個例項,所以物件是屬於類的,物件有三個特徵:
物件的行為: 對物件的操作或者方法;
物件的狀態: 對物件施加那些方法時物件如何響應;
物件的標識: 如何判斷具有相同行為與狀態的不同物件;
物件建立的過程:
(1) 為物件在堆中分配一塊記憶體:
(2) 呼叫合適的建構函式
物件的建立使用new 關鍵字:
public static void main (String args []) { student stu=new student(); //使用new 關鍵字創建出一個student類的物件來, student.eat(); \\使用物件呼叫類中的方法 }
3: 物件的初始化:
有了類,有了物件,可是沒有資料,這個時候就得初始化物件;
(1) set() 和get()方法
在建立物件後,不能直接用物件呼叫類中的成員變數,因為面向物件程式設計的三大特性之一封裝,要求不能直接將成員變數暴露在在外面,所以用private修飾,所以要用set()和get()方法來初始化成員變數:
public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } } public static void main (String args []) { stu.setSex("boy"); // 賦初值 stu.setName("whvo"); stu.setAge(20); stu.getSex(); //得到資料成員的值 stu.getName(); stu.getAge(); }
(2) 使用構造方法初始化: --------體現了方法的過載:方法名稱相同,但是引數個數不同,引數型別不同
1): 不帶引數的構造方法
2): 帶引數的構造方法
public student () { // 第一種: 不帶引數建構函式
this.name=null; // 此處的this 指向的是當前物件的地址值;
this.age=0;
this.sex=null;
}
public student (int age,String name,String sex) { //第二種:帶引數的建構函式
this.name=name; // 此處的this 指向的是當前物件的地址值;
this.age=age;
this.sex=sex;
}
public static void mian(String args [] ) {
student stu=new student (); // 在建立物件時呼叫無參的建構函式初始化物件;
student stu2=new student("whvo","boy",20); // 呼叫有參的建構函式進行初始化;
}
(3)靜態塊初始化 -------------- 只初始化一次
直接在類中使用static關鍵字初始化靜態資料成員,或者裡面放置靜態方法,而且不需要依賴物件,呼叫時直接用類名來呼叫
static {
count = 10;// 只能初始化類中的靜態變數
}
(4)例項塊初始化
{ //例項塊初始化
this.name = “whvo”;
this.sex = “man”;
this.age = 20;
System.out.println(“instance {} init”);
}
初始化的順序順序:
靜態塊初始化>>>>例項程式碼塊初始化>>>>建構函式初始化