尚硅谷JavaSE基礎(chǔ)

5.5 對象的使用

5.5.1?創(chuàng)建對象

1.?關(guān)鍵字new

?

類一旦寫好了, 就可以使用關(guān)鍵字new創(chuàng)建對象

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);

}

// 描述對象的詳細(xì)信息, 把所有的屬性值串接成一個字符串

public String say() {

String str = "姓名:" + name + ",年齡:" + age + ",性別:" + gender;

return str;

}

 

}

 

 

public class TeacherTest {

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

Teacher t = new Teacher();?// 對象創(chuàng)建

 

}

}

 

2.?對象創(chuàng)建在哪里了

Teacher t = new Teacher();?

在這里t是什么呢? 是不是對象呢? 答案是否定的, t僅僅是一個引用變量, 什么是引用變量? 就是保存地址的一個特殊變量, 同時它也有類型, 表明它指向的對象的類型是Teacher類型的. 但是上面的對象的使用全是通過t來完成的, 原因就在于通過t可以定位對象的實體, 對象的實體是保存在堆內(nèi)存中.

3.?對象包含哪些內(nèi)容

當(dāng)一個對象被創(chuàng)建時, 這個對象就會包含類中所有的屬性值, 如上面的例子, Teacher屬性中有String name, 和 int age屬性, 所以對象中包含了兩個數(shù)據(jù): 一個是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);

}

// 描述對象的詳細(xì)信息, 把所有的屬性值串接成一個字符串

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.?調(diào)用方法

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);

}

// 描述對象的詳細(xì)信息, 把所有的屬性值串接成一個字符串

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,性別:男”

}

}