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真正在系统中运行事先还要对配置文件进行定义.定义步骤就是对 ...
随机推荐
- JAVA 求数组中的最大值
package Code411;//求数组的最大值public class CodeArrayMax { public static void main(String[] args) { int ar ...
- 浮点数运算的精度问题:以js语言为例
在 JavaScript 中整数和浮点数都属于 Number 数据类型,所有数字都是以 64 位浮点数形式储存,即便整数也是如此. 所以我们在打印 1.00 这样的浮点数的结果是 1 而非 1.00 ...
- Django—入门
索引 1.搭建环境 2.创建项目 3.设计模型 4.管理站点 5.视图及URL 6.模板 软件框架 问题1:什么是软件框架? 举个简单的例子,对于一个公司来说,公司中有各个职能部门,每个部门各司其职, ...
- (一)Knockout 计算属性
1 Computed 首先,创建一个view model如下: <body> <p>The fullname is: <span data-bind="text ...
- [原创]基于Zynq AXI-GPIO Standalone & Linux 例程
基于Zynq AXI-GPIO Standalone & Linux 例程 待添加完善中
- Java Web环境搭建
——————————JavaWeb环境搭建 先下载JDK, Tomcat 7.0 安装JDK后,配置环境变量,此处可参考博客: https://www.cnblogs.com/smyhvae/p/37 ...
- 关闭 Visual Studio 的 Browser Link 功能
最近公司弄新项目需要用 MVC,就把 IDE 升级到了 Visual Studio 2013,在开发的时候发现有好多请求一个本地49925的端口 . 很奇怪,一开始以为是 Visual Studio ...
- sklearn交叉验证2-【老鱼学sklearn】
过拟合 过拟合相当于一个人只会读书,却不知如何利用知识进行变通. 相当于他把考试题目背得滚瓜烂熟,但一旦环境稍微有些变化,就死得很惨. 从图形上看,类似下图的最右图: 从数学公式上来看,这个曲线应该是 ...
- kvm-virsh管理工具
virsh 可以进入命令行交互界面 Virsh list 显示所有虚拟机实例 #virt-manager & 启动图形界面来创建 Virsh start c1 --con ...
- CentOS系统安全加固常见方法
关于Linux系统安全加固的具体实现脚本及基线检查规范,以供主机维护人员参考学习. 其中以下脚本主要实现的功能包括: *加固项包括:密码长度.session超时时间.删除不用的帐号和组.限制root用 ...