天天看點

面向對象、類與對象的定義

本章目标

了解面向對象的基本概念

了解面向對象的三個主要特征

掌握類與對象的關系

掌握類的定義

掌握對象的聲明及使用

面向過程與面向對象

程式的發展經曆了兩個主要階段:面向過程、面向對象

對于面向對象與面向過程可以用一個例子解釋,如一個木匠要做一個盒子,那麼做這個盒子的出發點會有兩種方式:

——面向對象:先想好要做的盒子,之後再去找相應的工具去做。

——面向過程:不去想要做什麼樣的盒子,随需取用工具。

面向對象的三大特征

封裝(Encapsulation)

——對外部不可見

繼承(Inheritance)

——擴充類的功能

多态(Polymorphism)

——方法的重載

——對象的多态性

類與對象

類是對某一類事物的描述,是抽象的、概念上的定義;對象是實際存在的該類事物的每個個體,因而也稱執行個體(instance)

面向對象、類與對象的定義

換種方式解釋:類與對象的關系

類就相當于是一個模闆,依照此模闆産生産品

面向對象、類與對象的定義

類的定義

面向對象、類與對象的定義

定義Person類

class Person {

  String name;

  int age;

  public void tell() {

  System.out.println("姓名:" + name + ",年齡:" + age);

  }

}

Person類圖

所示的圖形分為三個層次

——第一層表示類的名稱,類的名稱與之前一樣要求開頭首字母大寫;

——第二層表示屬性的定義,按照“通路權限 屬性名稱:屬性類型”的格式定義;

——第三層表示類中方法的定義,按照“通路權限 方法名稱():方法傳回值”的格式定義

面向對象、類與對象的定義

對象的建立及使用

面向對象、類與對象的定義

類名 對象名稱 =  null ;  // 聲明對象

對象名稱 = new 類名() ;  // 執行個體化對象

類名 對象名稱 = new 類名() ;

class Person{
	String name;//聲明姓名屬性
	int age;//聲明年齡屬性
	public void tell(){//取得資訊的方法
		System.out.println("姓名:"+name+",  年齡:"+age);
	}
}
public class ClassDemo02 {
	public static void main(String[] args) {
		Person per = new Person();//建立并執行個體化對象
	}
}
           

通路類中的屬性和方法

通路屬性:對象名稱.屬性名

通路方法:對象名稱.方法名()

class Person{
	String name;//聲明姓名屬性
	int age;//聲明年齡屬性
	public void tell(){//取得資訊的方法
		System.out.println("姓名:"+name+",  年齡:"+age);
	}
}
public class ClassDemo03 {
	public static void main(String[] args) {
		Person per = null;//聲明對象
		per = new Person();//執行個體化對象
		per.name = "張三";//為 name 屬性指派
		per.age = 30;//為 age 屬性指派
		per.tell();//調用類中的方法
	}
/*結果:
 * 姓名:張三,  年齡:30
 * */
}