Java基础 this关键字

this:代表当前对象

this.属性;  操作当前对象的属性

this.方法();  调用当前对象的方法

封装对象的属性的时候,尝使用this关键字

class Telphone{

private float screen;    //若将“private”改为“public”,

private float cpu;

private float mem;

public void sendMessage(){

System.out.println("sendMessage");

}

public float getScreen(){

return screen;

}

public float setScreen(float screen){    //若将“public”改为“private”,则该方法只能在类的内部使用

this.screen=screen;    //为了区分属性和参数名,所以在参数名前+this,意思为:将参数的值赋给当前对象的属性

this.sendMessage();    //调用当前对象的方法

}

public float getCpu(){

return cpu;

}

public void setCpu(float cpu){

this.cpu=cpu;

}

public float getMem(){

return mem;

}

public void setMem(float mem){

this.mem=mem;

}

 

public Telphone(){

System.out.println("无参的构造方法执行了");

}

public Telphone(float newScreen,float newCpu,float newMem){

if(newScreen<3.5f){

System.out.println("输入的数据错误");

screen=3.5f;

}

cpu=newCpu;

mem=newMem;

System.out.println("有参的构造方法执行了");

}

}

class Ex17{

public static void main(String[] args){

Telphone phone2=new Telphone(1.5f,1.4f,2.0f);

//若将“private”改为“public”,则在此添加 “phone2.screen=6.0f;” 不会报错

System.out.println("screen:"+phone2.getScreen());

}

}

 

this的使用

1.在方法和构造方法中,使用this来访问字段及方法

如,方法sayHello中使用this.name是相同的。即:

void sayHello{

System.out.println("Hello!My name is "+name);

}

void sayHello{

System.out.println("Hello!My name is "+this.name);

}

的含义相同

2.使用this解决局部变量与域同名的问题  /*域就是范围的意思
                    例{}之间,称为一块域,用来描述变量适用范围,全局变量的域是整个类,局部变量只适用于他所在的{}之间*/

使用this还可以解决局部变量(方法中的变量)或参数变量与域变量同名的问题。

如:Person(int age,String name){

this.age=age;

this.name=name;

}

这里,this.age表示域变量,age表示参数变量

 

通过this关键字可明确访问一个类的成员变量

class Person{

  int age;

   public Person(int age){

    this.age=age;

  }

   public int getAge(){

    return (this.)age;

  }

}

在构造方法中,this.age是访问成员变量,age是访问局部变量

 

3.构造方法中,用this调用另一构造方法

构造方法中,还可用this来调用另一构造方法。如:

Person(){

this(0,"");

.......

}

在构造方法中调用另一构造方法,则这条调用语句必须放在第一句

posted @ 2017-11-29 00:35  糖分控  阅读(212)  评论(0编辑  收藏  举报