this关键字

来源:互联网 发布:sql server创建视图 编辑:程序博客网 时间:2024/05/29 15:24

/*

作业:请把手机类写成一个标准类,然后创建对象测试功能。

手机类:

成员变量:

品牌:String brand;

价格:int price;

颜色:String color;

成员方法:

针对每一个成员变量给出对应的getXxx()/setXxx()方法。

最后定义测试:

创建一个对象,先通过getXxx()方法输出成员变量的值。这一次的结果是:null---0---null

然后通过setXxx()方法给成员变量赋值。再次输出结果。这一次的结果是:三星---2999---土豪金

*/

class Phone {

//品牌

private String brand;

//价格

private int price;

//颜色

private String color;

//getXxx()setXxx()方法

public String getBrand() {

return brand;

}

public void setBrand(String brand) {

this.brand= brand;

}

public int getPrice() {

return price;

}

public void setPrice(int price) {

this.price= price;

}

public String getColor() {

return color;

}

public void setColor(String color) {

this.color= color;

}

}

 

class PhoneTest {

public static void main(String[] args) {

//创建手机对象

Phone p = new Phone();

//直接输出默认值

System.out.println(p.getBrand()+"---"+p.getPrice()+"---"+p.getColor());

//给成员变量赋值

p.setBrand("三星");

p.setPrice(2999);

p.setColor("土豪金");

//再次输出

System.out.println(p.getBrand()+"---"+p.getPrice()+"---"+p.getColor());

}

}


/*

我们曾经曰:起名字要做到见名知意。

this:是当前类的对象引用。简单的记,它就代表当前类的一个对象。

注意:谁调用这个方法,在该方法内部的this就代表谁。

this的场景:

解决局部变量隐藏成员变量

*/

//定义学生类

class Student {

//姓名

private String name;

//年龄

private int age;

//姓名获取值

public String getName() {

return name;

}

//姓名设置值

public void setName(String name) { //name = "林青霞";

//name = name; //变量的使用规则:就近原则

//这里是类名,目前还没有说过类似的用法,所以这个是有问题的

//这里的调用只能通过对象名

//这个对象如果存在,它应该代表的是Student的一个对象。

//那么,谁能够代表当前类的对象呢? java就提供了一个关键字this

//Student.name = name;

this.name= name;

}

//年龄获取值

public int getAge() {

return age;

}

//年龄赋值

public void setAge(int age) {

this.age= age;

}

}

 

//测试类

class StudentTest {

public static void main(String[] args) {

//创建学生对象

Student s = new Student();

//给成员变量赋值

s.setName("林青霞");

s.setAge(27);

//获取数据

System.out.println(s.getName()+"---"+s.getAge());

}

}



/*

标准的代码改进版

this:哪个对象调用那个方法,this就代表那个对象

*/

class Student {

private String name;

private int age;

public String getName() {

return name; //这里其实是隐含了this

}

public void setName(String name) {

this.name= name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age= age;

}

}

 

class StudentTest2 {

public static void main(String[] args) {

//创建一个对象

Student s1 = new Student();

s1.setName("林青霞");

s1.setAge(27);

System.out.println(s1.getName()+"---"+s1.getAge());

//创建第二个对象

Student s2 = new Student();

s2.setName("刘意");

s2.setAge(30);

System.out.println(s2.getName()+"---"+s2.getAge());

}

}



0 0