尚硅谷JavaSE基礎(chǔ)

5.5 對(duì)象的使用

5.5.1?創(chuàng)建對(duì)象

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

?

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

public class Teacher {

String name; // 對(duì)象屬性

int age;

String gender;

 

????// 對(duì)象方法

public void lesson() {

????System.out.println(name + “老師在上課”);

}

 

 

 

????public void eat(String something) {

System.out.println("老師在吃" + something);

}

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

public String say() {

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

return str;

}

 

}

 

 

public class TeacherTest {

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

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

 

}

}

 

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

Teacher t = new Teacher();?

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

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

當(dāng)一個(gè)對(duì)象被創(chuàng)建時(shí), 這個(gè)對(duì)象就會(huì)包含類中所有的屬性值, 如上面的例子, Teacher屬性中有String name, 和 int age屬性, 所以對(duì)象中包含了兩個(gè)數(shù)據(jù): 一個(gè)是name, 一個(gè)是age

5.5.2 使用對(duì)象

1.?使用屬性

通過(guò)引用修改對(duì)象的屬性

public class Teacher {

String name; // 對(duì)象屬性

int age;

String gender;

 

????// 對(duì)象方法

public void lesson() {

????System.out.println(name + “老師在上課”);

}

 

public void eat(String something) {

System.out.println("老師在吃" + something);

}

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

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; // 對(duì)象屬性

int age;

String gender;

 

????// 對(duì)象方法

public void lesson() {

????System.out.println(name + “老師在上課”);

}

 

public void eat(String something) {

System.out.println("老師在吃" + something);

}

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

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(“魚(yú)香肉絲”); // 輸出 "老師在吃魚(yú)香肉絲"

System.out.println(t.say()); // 輸出 “姓名: 李三,年齡:30,性別:男”

}

}