1. 程式人生 > >OOP(一)類與物件

OOP(一)類與物件

類對一類相同事物的抽象描述

物件,屬於該對應類的一個例項

物件的三個主要特徵:

行為---可以對物件施加什麼操作或者方法

狀態---當執行方法後,物件如何響應

標識---如何辨別相同行為與狀態的不同物件

基本定義格式

[修飾符] class 類名

{

成員變數

構造器

方法

}

public class Person {
	private String name;
	private int age;
	private String sex;

	public Person(String name, int age, String sex) {
		this.name = name;
		this.age = age;
		this.sex = sex;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}
	public void printMsg()
	{
		System.out.println("superman");
	}

私有成員變數(例項域)用private修飾符修飾,確保類自身方法能夠訪問這些例項域,而其他類的方法不能讀寫這些域

什麼是構造器

[修飾符] 構造器名(形參列表)

{

//code...

}

作用:對例項域進行初始化。

幾點注意:

  • 構造器和類同名
  • 構造器沒有返回值
  • 每個類至少有一個構造器(如果使用者沒有顯式定義構造器,系統會自動建立一個預設無參的構造器)
  • 構造可有>=0個引數
  • 總是伴隨著new一起呼叫

例項化物件

[類名] 自定義物件名 = new 構造器名();

this關鍵字

情況一:當例項域與區域性變數重名時,this表示隱式引數(使用該例項域的物件)。

情況二:在一個構造器中,呼叫本類的另一個構造器,此時this(形式引數);必須放於構造器第一行。

方法

[修飾符] 返回值 方法名(形參列表)

{

//code....

}

  • 方法不能獨立定義,必須在類裡面進行定義
  • 方法要麼屬於類的一個物件,要麼屬於類(static方法)
  • 方法不能獨立執行,必須使用類或者物件作為呼叫者

傳值機制:總是按值傳遞

方法的過載

同一類中方法名相同引數列表不同(引數的型別,個數,順序)。與方法的返回值型別以及修飾符無關

封裝

將物件相關資訊隱藏在物件內部,不允許外部程式直接訪問,透過該類所提供的方法對內部資訊進行操作與訪問。

基本封裝操作:設定或者獲取例項域的值

  • 一個私有的資料域
  • 一個共有域訪問器方法
  • 一個公有域更改器方法(進行資料域合法性檢查)

控制訪問許可權表