8-Java類與物件
阿新 • • 發佈:2021-12-17
類與物件
- 引入類
// 類與物件 // 一個程式就是一個世界,有很多事物(物件[屬性, 行為]) 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; // 屬性可以是基本資料型別,也可以是引用型別
}
- 屬性的注意事項
- 屬性的定義語法同變數,示例:訪問修飾符 屬性型別 屬性名;
這裡老師簡單的介紹訪問修飾符: 控制屬性的訪問範圍 有四種訪問修飾符 public, proctected, 預設, private ,後面我會詳細介紹 - 屬性的定義型別可以為任意型別,包含基本型別或引用型別
- 屬性如果不賦值,有預設值,規則和陣列一致。具體說: 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; }