this代表当前类的引用对象:哪个对象调用方法,该方法内部的this就代表那个对象
this关键字主要有两三个应用:

(1)this调用本类中的属性,也就是类中的成员变量;
class People
{
private int age;
private String name;
People(String name,int age)
{
/*
错误写法,实际就是x=x;改变的是局部变量的值。因为赋值是会先寻找局部变量,若局部变量没有,才会找成员变量
name=name;
age=age;
*/
//this是区分局部变量和成员变量同名问题,this代表所在函数所属对象的引用。简单理解: 哪个对象调用this所在的函数,this就代表这个对象
this.name=name;
this.age=age;
} public void speak()
{
System.out.println("myname is "+name+", age is "+age);
} } class PeopleDemo
{
public static void main(String[] args)
{
People p2=new People("zhang san",18);
p2.speak(); }
}
(2)定义类中的函数时,函数内部要用到调用此函数的对象时,可以用this来表示这个对象。但凡定义本类内部功能时,使用了本类对象,都能用this表示
//定义一个比较年龄是否相同的功能
public boolean compare(Person p1)
{
//compare功能用到了本类的对象,需要本类对象和其他对象进行比较
return this.age==p1.age;
}
(3)this()用在本类中构造函数间相互调用,定义时要放在构造方法的第一行,因为初始化要先执行。
class People
{
private int age;
private String name; People()//构造函数1
{
this("lisi",10);//调用了构造函数2
} People(String name,int age)//构造函数2
{ this.name=name;
this.age=age;
} public void speak()
{
System.out.println("myname is "+name+", age is "+age);
}
} class PeopleDemo
{
public static void main(String[] args)
{
People p2=new People();
p2.speak(); }
}

  

【java】this用法的更多相关文章

  1. 【转】java list用法示例详解

    转自:http://www.jb51.net/article/45660.htm java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对java list用法做了详解. Lis ...

  2. Java List 用法代码分析 非常详细

    Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3 ...

  3. Java split用法

    Java split用法 java.lang.string.split split 方法  将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separat ...

  4. Java Enum用法详解

    Java Enum用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举 ...

  5. Java 习惯用法总结

    转自:http://www.importnew.com/15605.html 首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » Java 习惯用法总结 2015/04/ ...

  6. 你真的了解java的lambda吗?- java lambda用法与源码分析

    你真的了解java的lambda吗?- java lambda用法与源码分析 转载请注明来源:cmlanche.com 用法 示例:最普遍的一个例子,执行一个线程 new Thread(() -> ...

  7. java TreeMap用法

    转自:http://huchenqiang90.blog.163.com/blog/static/11250080020101025956498/ 最近工作遇到需要按一个model中不同的列进行排序的 ...

  8. 最全面的Java多线程用法解析

    1.创建线程 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable ...

  9. java Socket用法详解(转)

    在客户/服务器通信模式中, 客户端需要主动创建与服务器连接的 Socket(套接字), 服务器端收到了客户端的连接请求, 也会创建与客户连接的 Socket. Socket可看做是通信连接两端的收发器 ...

  10. Java习惯用法总结

    在微博中看到的一个不错的帖子,总结的很详细,拷贝过来,一是为了方便自己查阅,也能和大家一起共享,后面有原文的链接地址: 在Java编程中,有些知识 并不能仅通过语言规范或者标准API文档就能学到的.在 ...

随机推荐

  1. pip3 freeze导出依赖包 --Python3

    1.导出依赖包到*.txt文件 pip3 freeze>blueflag.txt 2.导出后的结果

  2. ionic3开发ios端

    ionic框架是一端开发,三端适用(android端,ios端,web端),意思是在其中一端开发的代码,拿到另外两端,代码同样生效 那现在就说一下在web端开发拿到ios端开发前需要做的事情 开发io ...

  3. HDU - 1061-快速幂签到题

    快速幂百度百科:快速幂就是快速算底数的n次幂.其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高. HDU - 1061 代码实现如下: import java.util.Sc ...

  4. e1000e 网卡如遇到大包未线速问题解法

    e1000e 网卡如遇到大包(>1280)未线速,把'DEFAULT_ITR'改为0, 不设中断频率上限试试 see@intel/e1000e/param.c/* Interrupt Throt ...

  5. BFS 路径记录

    有一迷宫 N*M,要求输出可通行的最短路径. 可以先倒着 BFS 一遍迷宫,这样 dis[] 数组储存的就是各点到迷宫终点的最短距离. 然后再从起点开始 BFS 一遍 dis[] ,只要满足 dis[ ...

  6. 从rnn到lstm,再到seq2seq(二)

    从图上可以看出来,decode的过程其实都是从encode的最后一个隐层开始的,如果encode输入过长的话,会丢失很多信息,所以设计了attation机制. attation机制的decode的过程 ...

  7. NodeJS中使用swig模板引擎

    NodeJS中的默认引擎是jade有点过于复杂,而且不是以HTML为基础的,学习成本和前端适应成本都很大.而ejs虽然简单,但不支持模板导入,而且效率一般. swig的语法简单,学习成本很低,符合常规 ...

  8. sql语句查询结果合并union all用法

    整理别人的sql 大概的思想是用union 和union all --合并重复行select * from Aunion select * from B --不合并重复行select * from A ...

  9. 曾经觉得学习晦涩难懂的我是如何爱上linux的

    2016年冬天,我已经是一名学习计算机科学与技术专业的大三的“老腊肉”了,但是当时的水平依旧平平.就在2016年快要结束的时候,我周围的同学们被一股考研和工作的压力炸开了锅,我也在默默思考着我的人生, ...

  10. LeetCode 总结,二叉树各种类型问题小结

    三大遍历 前序遍历 中序遍历 后序遍历 关于三大基础遍历,必须要条件反射式的记住:三种遍历的迭代方式使用的都是栈,后序遍历必须使用了 两个栈,其余乱七八糟的解决方式统统就不要再记了. 广度遍历: 分析 ...