this关键字的三种用法:

  • 通过this关键字可以明确的访问一个类的成员变量,解决成员变量与局部变量名称冲突问题。
    实例:
public class Student {//定义四个成员变量String name;int age;long phone;String address;//有参构造方法public Student(String name, int age, long phone, String address) {this.name = name;this.age = age;this.phone = phone;this.address = address;}//成员变量的getxxx()/setxxx()方法public String getName(){return this.name;}public void setName(String name) {this.name = name;}
}

上面代码中构造方法中定义的参数name,age等它是局部变量,在类中也定义了name,age等成员变量,在构造方法中使用age则是访问局部变量,如果想访问类中的成员变量,使用this.age则是访问成员变量。

  • 通过this关键字调用成员方法
    实例:
public class Student {public void test1(){System.out.println("test1方法执行了");}public void test2(){//调用test1()方法this.test1();}
}

在test2()方法中通过this.test1()访问test1()方法,注意此处的this关键字可以不写,效果是一样的。

public class Student {public void test1(){System.out.println("test1方法执行了");}public void test2(){//省略this关键字test1();}
}
  • 构造方法是在对象实例化的时候被调用的,所以就不能象调用其它方法一样调用构造方法,但可以在构造方法中使用this([参数1,参数2,…])来调用构造方法
    实例:
public class Student {//成员变量private String name;public Student() {System.out.println("我是无参构造方法");}public Student(String name) {this();//调用无参构造方法this.name = name;System.out.println("我是有参构造方法");}//输出打印姓名的方法public void printName(){System.out.println("姓名:" + name);}public static void main(String[] args) {Student student = new Student("hello");student.printName();}
}

在有参构造方法中调用了无参构造方法,在使用this调用构造方法时有以下注意几点:

  • 只能在构造方法中使用this()调用其他的构造方法,不能在成员方法中使用
  • 在构造方法中使用this()调用构造方法的语句必须位于第一行,而且只能出现一次
public class Student {//成员变量private String name;public Student() {System.out.println("无参构造方法...");//调用有参构造方法由于不在第一行,编译错误this("张三");}public Student(String name) {this.name = name;}}
  • 不能在一个类中的两个构造方法中使用this()互相调用
public class Student {//成员变量private String name;public Student() {//错误,不能相互调用this("张三");}public Student(String name) {//错误,不能相互调用this();}
}

Java中的this关键字(三种用法)相关推荐

  1. java里break的使用方法_Java中break的第三种用法说明

    在Java中,break语句有三种用法,第一种是用于终止switch语句中的语句序列,第二种是用于退出循环,然而第三种是用作goto语句的"文明"形式! 我们知道,goto语句会破 ...

  2. Java中List集合的三种遍历方式(全网最详)

    Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...

  3. Java中实现接口的三种方式您造吗?

    本文介绍了Java中实现接口的三种方式:常规实现方式.匿名内部类和 Lambda表达式实现方式.希望已经了解的同学可以重新温习一下,不了解的同学则从中受益! Java中接口最常规的实现方式 同学们都会 ...

  4. java中实现多线程的三种方式

    java中实现多线程的三种方式 1.实现多线程的方法: 在java中实现多线程的两途径:继承Thread类,实现Runable接口(Callable) 2.继承Thread类实现多线程: ​ 继承类T ...

  5. java中Map遍历的三种方式

    Java中Map遍历的三种方式 前言 一:在for循环中使用entries实现Map的遍历: 二:在for循环中遍历key或者values,一般适用于只需要map中的key或者value时使用,在性能 ...

  6. Python扩展库numpy中where()函数的三种用法

    第一种用法:只给where()函数传递一个数组作为参数,返回其中非0元素的下标. 第二种用法:给where()函数传递一个包含True/False值的数组,返回该数组中True值的下标,结合numpy ...

  7. kotlin中when表达式的三种用法

    这个是一个开头 我们都知道,在kotlin中可以用when表达式来替换if else表达式来使用,比如如下代码: if (count == 42) {println("I have the ...

  8. java中break什么意思_Java中break的第三种用法说明

    在Java中,break语句有三种用法,第一种是用于终止switch语句中的语句序列,第二种是用于退出循环,然而第三种是用作goto语句的"文明"形式! 我们知道,goto语句会破 ...

  9. [转载] java中50个关键字以及各自用法大全

    参考链接: Java中的默认数组值 关键字和保留字的区别 正确识别java语言的关键字(keyword)和保留字(reserved word)是十分重要的.Java的关键字对java的编译器有特殊的意 ...

最新文章

  1. javascript检测对象中是否存在某个属性判断方法小结
  2. Oracle+Python适合 Oracle DBA 使用的 Python
  3. the 12th UESTC Programming Contest Final Justice is Given by Light (几何+ 二分)
  4. 计算机操作系统:虚拟存储器
  5. 《ASP.NET Core 3 框架揭秘(上下册)》送书结果公告
  6. Spring Boot:构建一个RESTful Web应用程序
  7. 编程大师论道:PHP的魅力和不足何
  8. web api添加拦截器
  9. 关于Memcache使用的工具类
  10. 软件开发项目云端All-In-One体验
  11. zabbix 3.2 mysql_zabbix3.2的server和zabbix-agent2.2怎么监控MySQL的办法
  12. 【机器学习】21个机器学习面试问答
  13. altium 交叉线_关于各个设备,用直通线还是交叉线连接的详解
  14. Matlab:绘制正弦曲线与余弦曲线
  15. FPGA与ASIC对比
  16. Faker:快速创造大量符合测试要求的有效测试数据
  17. NYOJ34韩信点兵
  18. Android 10.0在电话拨号盘(Dialer app中)通过暗码进入工厂测试模式
  19. 如何判断一个APP页面是原生的还是H5页面
  20. 300多个地级市GDP及第一、二、三产业占比数据(1990-2021年)

热门文章

  1. AIX系统月维护查什么(一)
  2. Mac IDEA 最常用快捷键
  3. Matlab编程技巧:通过脚本导入Excel数据字典
  4. 若依框架代码自动生成器研究----表查询篇
  5. PASCAL VOC 2012数据集及其增强版介绍
  6. Hive窗口函数详解
  7. Xshell远程连接
  8. 数字图像处理:实验三 图像增强
  9. 操作系统之进程调度与内存管理
  10. Easy Excel 使用