1. 程式人生 > 其它 >8-Java類與物件

8-Java類與物件

類與物件

  • 引入類
// 類與物件
// 一個程式就是一個世界,有很多事物(物件[屬性, 行為])

public class Object01{

	public static void main(String[] args) {
		
		/*
		張老太養了兩隻貓,一隻貓的名字叫小白,今年三歲,白色
		一隻叫小花,今年100歲,請編寫一個程式,當用戶輸入小貓的名字時,
		就顯示這個貓的年齡,名字,顏色,如果使用者的輸入小貓名有誤
		顯示 張老太沒有這隻貓
		 */
		
		// 單獨變數來解決 => 不利於資料的管理(把一隻貓的資料拆解)
		// 第一隻貓的資訊
		String cat1Name = "小白";
		int cat1Age = 3;
		String cat1Color = "白色";

		// 第二隻貓的資訊
		String cat2Name = "小花";
		int cat2Age = 100;
		String cat2Color = "花色";


		// 陣列  ===> 資料型別不能體現出來,
		// 只能通過下標獲取資訊,造成變數名字和內容對應關係不明確
		// 不能體現貓的行為
		// 第一隻貓的資訊
		// String[] cat1 = {"小白", "3", "白色"};
		// String[] cat2 = {"小花", "100", "花色"};


		// 現有技術的缺點
		// 不利於資料的管理
		// 效率低,引出我們新的知識點,類和物件
		// java的設計者引入類與物件(OOP),根本原因是現有的技術不能完美的解決新的需求
		// 
		// 
		// 
		// 使用OOP面向物件解決
		// 例項化一隻貓【建立一個貓物件】
		// 1.new Cat()  建立一隻貓
		// 2.Cat cat1 = new Cat();把建立的貓賦值給cat1
		Cat cat1 = new Cat();
		cat1.name = "小白";
		cat1.age = 3;
		cat1.color = "白色";
		cat1.weight = 10;

		// 建立第二隻貓物件
		Cat cat2 = new Cat();
		cat2.name = "小花";
		cat2.age = 100;
		cat2.color = "花色";
		cat2.weight = 23.9;

	
		// 怎麼使用,怎麼訪問物件的屬性
		System.out.println("第一隻貓的資訊" + cat1.name + " " + cat1.age + " " + cat1.color + " " + cat1.weight);
		System.out.println("第一隻貓的資訊" + cat2.name + " " + cat2.age + " " + cat2.color + " " + cat2.weight);


	}
}

// 使用面向物件的方式解決養貓問題
// 定義一個貓類 Cat - > 自定義資料型別
// 
class Cat{

	// 屬性
	String name;
	int age;
	String color;
	double weight;
}

  • 類在記憶體中的存在形式(重要)

public class Object02{

	public static void main(String[] args) {
		
	}
}

class Car{
	String name; // 屬性 成員變數 欄位  field
	double price;
	String color;
	String[] master; // 屬性可以是基本資料型別,也可以是引用型別
}
  • 屬性的注意事項
  1. 屬性的定義語法同變數,示例:訪問修飾符 屬性型別 屬性名;
    這裡老師簡單的介紹訪問修飾符: 控制屬性的訪問範圍 有四種訪問修飾符 public, proctected, 預設, private ,後面我會詳細介紹
  2. 屬性的定義型別可以為任意型別,包含基本型別或引用型別
  3. 屬性如果不賦值,有預設值,規則和陣列一致。具體說: int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000, boolean false,String null

public class Properties{
	public static void main(String[] args) {
		
		// 建立物件
		// p1 是物件名(物件引用
		// new Perso() 建立的物件空間才是真正的物件
		Person p1 = new Person();

		// 物件的屬性預設值,遵守資料的規則
		System.out.println("當前人的資訊");
		System.out.println("age=" + p1.age + " name = " + p1.name + " sal=" + p1.sal + " isPass " + p1.isPass);
	}
}

class Person{

	int age;
	String name;
	double sal;
	boolean isPass;
}