1. 程式人生 > >java基礎篇---------類和物件(OOP)

java基礎篇---------類和物件(OOP)

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”);
}
初始化的順序順序:
靜態塊初始化>>>>例項程式碼塊初始化>>>>建構函式初始化