Java中的this关键字(三种用法)
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关键字(三种用法)相关推荐
- java里break的使用方法_Java中break的第三种用法说明
在Java中,break语句有三种用法,第一种是用于终止switch语句中的语句序列,第二种是用于退出循环,然而第三种是用作goto语句的"文明"形式! 我们知道,goto语句会破 ...
- Java中List集合的三种遍历方式(全网最详)
Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...
- Java中实现接口的三种方式您造吗?
本文介绍了Java中实现接口的三种方式:常规实现方式.匿名内部类和 Lambda表达式实现方式.希望已经了解的同学可以重新温习一下,不了解的同学则从中受益! Java中接口最常规的实现方式 同学们都会 ...
- java中实现多线程的三种方式
java中实现多线程的三种方式 1.实现多线程的方法: 在java中实现多线程的两途径:继承Thread类,实现Runable接口(Callable) 2.继承Thread类实现多线程: 继承类T ...
- java中Map遍历的三种方式
Java中Map遍历的三种方式 前言 一:在for循环中使用entries实现Map的遍历: 二:在for循环中遍历key或者values,一般适用于只需要map中的key或者value时使用,在性能 ...
- Python扩展库numpy中where()函数的三种用法
第一种用法:只给where()函数传递一个数组作为参数,返回其中非0元素的下标. 第二种用法:给where()函数传递一个包含True/False值的数组,返回该数组中True值的下标,结合numpy ...
- kotlin中when表达式的三种用法
这个是一个开头 我们都知道,在kotlin中可以用when表达式来替换if else表达式来使用,比如如下代码: if (count == 42) {println("I have the ...
- java中break什么意思_Java中break的第三种用法说明
在Java中,break语句有三种用法,第一种是用于终止switch语句中的语句序列,第二种是用于退出循环,然而第三种是用作goto语句的"文明"形式! 我们知道,goto语句会破 ...
- [转载] java中50个关键字以及各自用法大全
参考链接: Java中的默认数组值 关键字和保留字的区别 正确识别java语言的关键字(keyword)和保留字(reserved word)是十分重要的.Java的关键字对java的编译器有特殊的意 ...
最新文章
- javascript检测对象中是否存在某个属性判断方法小结
- Oracle+Python适合 Oracle DBA 使用的 Python
- the 12th UESTC Programming Contest Final Justice is Given by Light (几何+ 二分)
- 计算机操作系统:虚拟存储器
- 《ASP.NET Core 3 框架揭秘(上下册)》送书结果公告
- Spring Boot:构建一个RESTful Web应用程序
- 编程大师论道:PHP的魅力和不足何
- web api添加拦截器
- 关于Memcache使用的工具类
- 软件开发项目云端All-In-One体验
- zabbix 3.2 mysql_zabbix3.2的server和zabbix-agent2.2怎么监控MySQL的办法
- 【机器学习】21个机器学习面试问答
- altium 交叉线_关于各个设备,用直通线还是交叉线连接的详解
- Matlab:绘制正弦曲线与余弦曲线
- FPGA与ASIC对比
- Faker:快速创造大量符合测试要求的有效测试数据
- NYOJ34韩信点兵
- Android 10.0在电话拨号盘(Dialer app中)通过暗码进入工厂测试模式
- 如何判断一个APP页面是原生的还是H5页面
- 300多个地级市GDP及第一、二、三产业占比数据(1990-2021年)