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