java面向对象-this关键字
2017-06-20 13:19
309 查看
this关键字:
this代表所在类的一个对象引用。
下面以一个案例讲解,秒懂this关键字:
null****0
问题来了:为什么结果是null和0
原因就在set方法给变量赋值的时候出现的错误。
我们所要使用的是成员变量name,所以只能用该类的对象调用成员变量name,所以在java中给我们提供了能够代表当前类的
对象的一个关键字---this关键字。
所以以上代码就可以修改为
李华****13
注意事项:
哪个对象调用这个方法,方法内部的this就代表那个对象。
使用场景:
局部变量隐藏成员变量的时候
this代表所在类的一个对象引用。
下面以一个案例讲解,秒懂this关键字:
package day07; public class StudentDemo1 { //定义属性 private String name; private int age; //定义访问变量的方法 public String getName(){ return name; } public void setName(String name){ name=name;//由于变量使用原则,就近原则所以会把name赋值给本身的name } public int getAge(){ return age; } public void setAge(int age){ name=name;//由于变量使用原则,就近原则所以会把age赋值给本身的age } }测试类:
package day07; public class StudentMainDemo1 { /** * @param args */ public static void main(String[] args) { StudentDemo1 sd = new StudentDemo1(); //对变量赋值 sd.setName("李华"); sd.setAge(13); System.out.println(sd.getName()+"****"+sd.getAge()); } }打印输出:
null****0
问题来了:为什么结果是null和0
原因就在set方法给变量赋值的时候出现的错误。
public void setName(String name){ name=name;//由于变量使用原则,就近原则所以会把那么赋值给本身的name } public void setAge(int age){ name=name;//由于变量使用原则,就近原则所以会把那么赋值给本身的name }
我们所要使用的是成员变量name,所以只能用该类的对象调用成员变量name,所以在java中给我们提供了能够代表当前类的
对象的一个关键字---this关键字。
所以以上代码就可以修改为
package day07; public class StudentDemo1 { //定义属性 private String name; private int age; //定义访问变量的方法 public String getName(){ return name; } public void setName(String name){ this.name=name;//this指代的是当前类Student的对象 } public int getAge(){ return age; } public void setAge(int age){ this.name=name;////this指代的是当前类Student的对象 } }测试类不变:
package day07; public class StudentMainDemo1 { /** * @param args */ public static void main(String[] args) { StudentDemo1 sd = new StudentDemo1(); //对变量赋值 sd.setName("李华"); sd.setAge(13); System.out.println(sd.getName()+"****"+sd.getAge()); } }输出:
李华****13
注意事项:
哪个对象调用这个方法,方法内部的this就代表那个对象。
使用场景:
局部变量隐藏成员变量的时候
相关文章推荐
- Java面向对象基础--this关键字的解析
- Java基础视频教程第05天_面向对象入门及this关键字
- java面向对象--this关键字、引用变量、构造方法
- Java笔记2 面向对象<1>面向对象概述、构造代码块、匿名对象、this关键字等
- JAVA面向对象知识点总结(2)—封装、构造函数、构造代码块、this关键字
- JAVA面向对象2:构造方法和this关键字
- 黑马程序员--03.Java面向对象--01.【OOP基本概念】【匿名对象】【封装】【构造函数】【this关键字】
- Java面向对象之构造方法、静态、this关键字
- 黑马程序员-----java面向对象之封装、构造函数、this关键字、static静态总结*
- Java--面向对象之一:面向对象概念、类和对象的关系、封装、构造函数、this关键字、static关键字
- Java面向对象笔记(三)this关键字
- java和c++在面向对象上有什么区别?
- 面向对象程序设计--C++/Java
- java和c++在面向对象上有什么区别?
- Java三个月 - 面向对象程序设计OOP的乐趣 - 程序人生
- 深入Java面向对象预备篇(3.研究数组)
- 面向对象与上帝造人——类与对象(java篇)
- Java面向对象程序设计之接口运用
- 面向对象程序设计--C++/Java
- 面向 Java 开发人员的 Ajax: Ajax 的 Java 对象序列