尚硅谷JavaSE基礎
5.5 對象的使用
5.5.1?創建對象
1.?關鍵字new
?
類一旦寫好了, 就可以使用關鍵字new創建對象
public class Teacher { String name; // 對象屬性 int age; String gender;
????// 對象方法 public void lesson() { ????System.out.println(name + “老師在上課”); }
????public void eat(String something) { System.out.println("老師在吃" + something); } // 描述對象的詳細信息, 把所有的屬性值串接成一個字符串 public String say() { String str = "姓名:" + name + ",年齡:" + age + ",性別:" + gender; return str; }
}
|
public class TeacherTest { public static void main(String[] args) {? Teacher t = new Teacher();?// 對象創建
} } |
2.?對象創建在哪里了
Teacher t = new Teacher();?
在這里t是什么呢? 是不是對象呢? 答案是否定的, t僅僅是一個引用變量, 什么是引用變量? 就是保存地址的一個特殊變量, 同時它也有類型, 表明它指向的對象的類型是Teacher類型的. 但是上面的對象的使用全是通過t來完成的, 原因就在于通過t可以定位對象的實體, 對象的實體是保存在堆內存中.
3.?對象包含哪些內容
當一個對象被創建時, 這個對象就會包含類中所有的屬性值, 如上面的例子, Teacher屬性中有String name, 和 int age屬性, 所以對象中包含了兩個數據: 一個是name, 一個是age
5.5.2 使用對象
1.?使用屬性
通過引用修改對象的屬性
public class Teacher { String name; // 對象屬性 int age; String gender;
????// 對象方法 public void lesson() { ????System.out.println(name + “老師在上課”); }
public void eat(String something) { System.out.println("老師在吃" + something); } // 描述對象的詳細信息, 把所有的屬性值串接成一個字符串 public String say() { String str = "姓名:" + name + ",年齡:" + age + ",性別:" + gender; return str; }
}
|
public class TeacherTest { public static void main(String[] args) {? Teacher t = new Teacher();? ????????t.name = “張三”; ????????t.age = 30; ????????System.out.println(t.name); // 輸出”張三” System.out.println(t.age); // 輸出30
t.name = “張四”; ????????System.out.println(t.name); // 輸出”張四”
} } |
2.?調用方法
public class Teacher { String name; // 對象屬性 int age; String gender;
????// 對象方法 public void lesson() { ????System.out.println(name + “老師在上課”); }
public void eat(String something) { System.out.println("老師在吃" + something); } // 描述對象的詳細信息, 把所有的屬性值串接成一個字符串 public String say() { String str = "姓名:" + name + ",年齡:" + age + ",性別:" + gender; return str; }
} |
public class TeacherTest { public static void main(String[] args) {? Teacher t = new Teacher();? ????????t.name = “張三”; ????????t.age = 30; ????????t.gender = “男”; ????????System.out.println(t.name); // 輸出”張三” System.out.println(t.age); // 輸出30
t.name = “李三”; ????????System.out.println(t.name); // 輸出”李三”
????????t.lesson(); // 輸出 李三老師在上課 // 思考, 為什么不是輸出張三老師在上課? ????????t.eat(“魚香肉絲”); // 輸出 "老師在吃魚香肉絲" System.out.println(t.say()); // 輸出 “姓名: 李三,年齡:30,性別:男” } } |