• 让天下没有难学的技术
    多数学员都来自推荐,这就是口碑的力量

java对象的使用

创建对象

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

 使用对象

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

对象的独立性

1. 同一个类创建多个对象

public class TeacherTest {
public static void main(String[] args) {
Teacher t1 = new Teacher();
t1.name = “张三”;
t1.age = 30;
t1.gender = “男”;
System.out.println(t1.name); // 输出”张三”
System.out.println(t1.age); // 输出30
System.out.println(t1.gender); // 输出”男”

Teacher t2 = new Teacher();
t2.name = “李四”;
t2.age = 40;
t2.gender = “女”;
System.out.println(t2.name); // 输出”李四”
System.out.println(t2.age); // 输出40
System.out.println(t2.gender); // 输出”女”
}
}

不仅可以创建两个对象, 可以创建任意多个对象, 前提是内存有空间.

2. 对象之间的关系

1 对象之间是独立的, 如上例子中, t1是一个独立的对象, t2也是一个独立的对象, 两者互不干扰.

2 但是两个对象都是Teacher类型的, 所以它们的共同点是隶属于同一个类, 拥有类似的属性

3 同一个类的不同对象虽然是独立的, 但是它们所占用的内存空间大小是一样的.

3. 对象交换

public class TeacherTest {

public static void main(String[] args) {
Teacher t1 = new Teacher();
t1.name = “张三”;
t1.age = 30;
System.out.println(t1.name); // 输出”张三”

Teacher t2 = new Teacher();
t2.name = “李四”;
t2.age = 40;
System.out.println(t2.name); // 输出”李四”

// 对象的交换和普通变量的交换类似
// 需要声明一个临时变量
Teacher tmp = t1;
t1 = t2;
t2 = tmp;

System.out.println(t1.name); // 输出”李四” 思考 如果输出t1的年龄,是多少?
System.out.println(t2.name); // 输出”张三”
}
}

匿名对象

1. 什么是匿名对象

在创建对象后并不把对象的地址保存在引用变量中, 而是直接使用创建好的对象的引用访问成员.

public class TeacherTest {

public static void main(String[] args) {
new Teacher().eat(“宫暴鸡丁”); // 后面不能再使用这个对象了
}
}

2. 匿名对象特点

因为对象没有使用引用变量保存, 所以对象访问完成后, 就无法再次访问了

3. 匿名对象作用

a) 适用于对象的一次性使用场景中

b) 适用于方法调用时传递对象

c) 适用于对象的传递(对象作为参数传递)

想要了解跟多关于java培训课程内容欢迎关注尚硅谷java培训,尚硅谷除了这些技术文章外还有免费的高质量大 java培训课程视频供广大学员下载学习。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注