1. 程式人生 > >Java中類與物件的概念區別

Java中類與物件的概念區別

 Java是一種面向物件的程式設計語言(Object Oriented Programming:OOP),面向物件的程式設計語言中有類和物件的概念,它們在概念上有什麼區別呢?
  這往往是一個令面向物件的初學者感到迷惑的問題。
  
  下面的解說雖然針對的是Java語言,但對所有面向物件的程式設計語言都通用。
  
  什麼是類
  
  在面向物件的程式設計語言中,類是對一類“事物”的屬性與行為的抽象。
  舉一個淺顯的例子。Person(人)是對地球上所有具有特殊智慧的生物包括你,我,他,張三,李四等的抽象。
  “你”,“我”,“他”,“張三”,“李四”等等都屬於“人”這一類所包含的個體。
  
  Java語言中對類Person的定義往往如下:
  public class Person {
   private String name; //屬性:姓名
   private int height; //屬性:身高
   private int weight; //屬性:體重
  
  
   public Person() {}
   public Person(String name, int height, int weight) {
   this.name = name;
   this.height = height;
   this.weight = weight;
   }
  
   //... some methods...
  
   public void doSth() { //行為:
   //... do something
   }
  }
  
  
  什麼是物件
  
  簡單一點說,物件是類的具體的個體。比如,張三是類Person的一個物件。Person可能存在無數個物件(就好像地球上存在數十億人一樣)。
  
  Java中,物件的建立可以使用new來建立一個物件。比如:
  Person zhangsan = new Person("Zhangsan", 170, 65); //建立物件:“Zhangshan”
  zhangsan.doSth(); //物件行為:物件自己發出行為
  
  
  類和物件的關係
  
  類和物件的區別
  1,類是一個抽象的概念,它不存在於現實中的時間/空間裡,類只是為所有的物件定義了抽象的屬性與行為。就好像“Person(人)”這個類,它雖然可以包含很多個體,但它本身不存在於現實世界上。
  2,物件是類的一個具體。它是一個實實在在存在的東西。
  3,類是一個靜態的概念,類本身不攜帶任何資料。當沒有為類建立任何物件時,類本身不存在於記憶體空間中。
  4,物件是一個動態的概念。每一個物件都存在著有別於其它物件的屬於自己的獨特的屬性和行為。物件的屬性可以隨著它自己的行為而發生改變。