this在java中的用法
this在java中的用法
1.使用this关键字引用成员变量
作用:解决成员变量与参数或局部变量命名冲突的问题
public class Dog {
String name;
public Dog(String name) {
this.name = name;
}
}
2.使用this关键字引用成员函数。在方法中引用调用该方法的对象
作用:让类中一个方法,访问该类的另一个方法或实例变量
class Dog {
public void jump() {
System.out.println("正在执行jump方法");
}
public void run() {
Dog d = new Dog();
d.jump();
System.out.println("正在执行run方法");
}
}
public class DogTest {
public static void main(String[] args) {
Dog dog = new Dog();
dog.run();
}
}
Dog类中run方法调用jump方法一定要通过对象调用,因为jump方法并没有被static修饰。但不必在run()方法中重新定义一个Dog类,因为DogTest类中当程序调用run()方法时,一定会提供一个Dog对象,这样就可以直接使用这个已经存在的Dog对象,而无须创建新的Dog对象。
因此通过this关键字就可以在run()方法中调用该方法的对象
即
public void run(){
this.jump();//Java允许省略this前缀,即可直接写成jump();
System.out.println("正在执行run方法");
}
static修饰的方法中不能使用this引用
例如:
public class DogTest {
public void dog() {
System.out.println("汪汪汪");
}
public static void main(String[] args){
this.dog(); //报错:Cannot use this in a static context。
//省略掉this的情况下:同样报错,因为在静态方法中,不能直接访问非静态成员(包括方法和变量)。非静态的变量是依赖于对象存在的,对象必须实例化之后,它的变量才会在内存中存在。
//解决办法:法1.将dog()同样设置为静态 法2.先实例化对象,然后使用对象来调用函数
}
}
3.使用this关键字在自身构造方法内部引用其它构造方法
在某个构造方法内使用this(参数列表),即可跳转到其他构造方法
4.用this关键字代表自身类的对象
return this 即代表return整个自身类
this在java中的用法的更多相关文章
- JAVA中ArrayList用法
JAVA中ArrayList用法 2011-07-20 15:02:03| 分类: 计算机专业 | 标签:java arraylist用法 |举报|字号 订阅 Java学习过程中做题时 ...
- Java中instanceof用法
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:resu ...
- 【本地资源路径&&网络资源路径&&正反斜杠在Java中的用法】
一.概念和用法 左正右反 先来看看转义字符的概念:通过 \ ,?来转变后面字母或符号的含义.意思就是改变字母本身的含义. 以"\"符号为例,JAVA中有很多操作,例如文件操作等,需 ...
- pat——1017. Queueing at Bank (java中Map用法)
由PAT1017例题展开: Suppose a bank has K windows open for service. There is a yellow line in front of the ...
- Java中Map用法详解
原文地址http://blog.csdn.net/guomutian911/article/details/45771621 原文地址http://blog.csdn.net/sunny2437885 ...
- Java中finalize()用法
Java中finalize() 垃圾回收器要回收对象的时候,首先要调用这个类的finalize方法(你可以 写程序验证这个结论),一般的纯Java编写的Class不需要重新覆盖这个方法,因为Obj ...
- java中final用法
1.修饰基础数据成员 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰成常量,不可修改. 2.修饰类或者对象的引用的final 在java中我们无法让对象被修饰为final ...
- Java中Iterator用法整理
迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的I ...
- java中log4j用法详细讲解和一些小总结
0.Log4j的用法详解 首先,在项目中的classes 中新建立一个log4j.properties文件即可: 在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义.定义步骤就是对 ...
随机推荐
- 递归遍历所有xml的节点及子节点
import java.io.File; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; i ...
- NIagara Workbench ( 温度控制)
1.在原来BoilerControl的基础上建立一个 2.检查通过标签构造的报告的时候,在键盘上按下Control键并一直保持的同时按下L键 将会弹窗一个ORD窗口代表定义的参数.同时按下Contro ...
- 等待activity出现(android特有的wait_activity)
前言 在启动app的时候,如果直接做下一步点击操作,经常会报错,于是我们会在启动完成的时候加sleep.那么问题来了,这个sleep时间到底设置多少合适呢?设置长了,就浪费时间,设置短了,就会找不到元 ...
- 必须知道的Linux内核常识详解
一.内核功能.内核发行版 1.到底什么是操作系统 (1)linux.windows.android.ucos就是操作系统: (2)操作系统本质上是一个程序,由很多个源文件构成,需要编译连接成操作系统程 ...
- Ios还是安卓的判断
最近在做app的h5页面,涉及到一些小知识点 记录一下 1.微信屏蔽了下载的链接,所以在网页中添加的下载链接都要在浏览器中打开,这里需要一个提示用户在浏览器打开的提示弹框 //判断是否在微信终端打开 ...
- 关闭IIS开启自启
关闭IIS开启自启 win+R输入services.msc 找到服务名称为World Wide Web Publishing Service 双击停止,右键禁用
- 译:Dataiku 白皮书之《在银行和保险行业应用数据科学》
原文链接:Data Science For Banking & Insurance 如果不能正常访问,请点击备份获取. 在银行和保险行业应用数据科学 互联网巨头和金融技术创业时代的求生和发展 ...
- Web 录音
所需文件下载地址 链接:https://pan.baidu.com/s/1Dzbv8gPUZJ3T8Fe02hOJvg 提取码:zbgt py文件 from flask import Flask, j ...
- Java之为何配置环境变量
一.不要问一个程序员为什么命名是基础零(^_^) 二.Java为什么跨平台: 因为有java虚拟机,一个程序的运行必然要依赖于系统,java的跨平台是因为java虚拟机jvm把不同平台编写的代码编译成 ...
- CSS3_伸缩盒模型_弹性布局_等分布局_flex 布局
伸缩盒模型 CSS3 引入的布局模式 Flexbox 布局 主要思想: 让容器有能力让其子项目能够改变其宽度,高度,以最佳方式填充可用空间. 特点: display: flex; 只能控制其子元 ...