尚硅谷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,性别:男”

}

}