首先this作为关键字其实是随着对象的创建而产生的,当我们调用对象的一个方法的时候:

例如:

A a = new A();

a.f(1)  其实我们可以理解为a.f(a,1) 编译器默默的把所操作的对象的引用作为第一个参数传递给了f()。 而this就代表了这个引用。 this只能在方法内部使用,表示“调用该方法的那个对象的引用”

this调用类中的属性就不多说了,就表示传进来的对象调用属性。

重点记录一下this语句, 如果想在构造函数里面调用构造函数的话就必须用到了this语句。给出一个例子来说明this语句的用法

import java.math.BigInteger;
import java.util.Scanner; public class Main { public int i;
public String s; Main(){
System.out.println("默认构造函数");
}
Main(int i) {
this.i = i;
}
Main(String s) {
this.s = s;
}
Main(String s, int i) {
this(s);
//this(i); 一个方法里面不能出现两个this语句, 而且this语句必须在第一行
this.i = i;
}
public void show() {
//this("a", 2); 不是构造函数的里面不能调用this语句
this.i = 2; this.s = "a";
System.out.println(s + " " + i);
} public static void main(String x[]) { } }

  我们可以在这加一句对static的理解, static方法就是没有this的方法。

Java中的this的更多相关文章

  1. java中的锁

    java中有哪些锁 这个问题在我看了一遍<java并发编程>后尽然无法回答,说明自己对于锁的概念了解的不够.于是再次翻看了一下书里的内容,突然有点打开脑门的感觉.看来确实是要学习的最好方式 ...

  2. java中的字符串相关知识整理

    字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...

  3. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  4. java中Action层、Service层和Dao层的功能区分

    Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...

  5. Java中常用集合操作

    一.Map 名值对存储的. 常用派生类HashMap类 添加: put(key,value)往集合里添加数据 删除: clear()删除所有 remove(key)清除单个,根据k来找 获取: siz ...

  6. java中的移位运算符:<<,>>,>>>总结

    java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >& ...

  7. 关于Java中进程和线程的详解

    一.进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命 周期.它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而 ...

  8. Java中的进程和线程

     Java中的进程与线程 一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是 ...

  9. Java中的进程与线程(总结篇)

    详细文档: Java中的进程与线程.rar 474KB 1/7/2017 6:21:15 PM 概述: 几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进 ...

  10. 初探java中this的用法

    一般this在各类语言中都表示“调用当前函数的对象”,java中也存在这种用法: public class Leaf { int i = 0; Leaf increment(){ i++; retur ...

随机推荐

  1. vue学习之六路由系统

    一.vueRouter实现原理 VueRouter的实现原理是根据监控锚点值的改变,从而不断修改组件内容来实现的,我们来试试不使用VueRouter,自己实现路由控制,如下代码: <!DOCTY ...

  2. Gson的两种解析用法

    第一种. 常见的解析,直接将json字符串解析为对应的类. public JavaBean getJsonString(String jsonString) { Gson gson = new Gso ...

  3. [svc]sublime text3设置py环境最佳姿势

    搞个py虚拟环境 待sublim调用 - for windows pip install virtualenv pip install virtualenvwrapper pip install vi ...

  4. mysql 备份脚本

    #!/bin/bash cd /data/backup/www /usr/bin/mysqldump -u root --password=root www > /data/backup/www ...

  5. Qt界面控件值获取异常处理

    情景简述: 正常情况,我们从控件获取的值是OK的,但有时候就是奇怪的不对头,那么我们可以给获取后的值加上一个不痛不痒的函数,再返回,结果就OK了.至于原因嘛,[呲牙][呲牙] 比如: //正常情况 d ...

  6. Docker深入浅出3-镜像管理

    当运行容器的时候,使用的镜像如果在本地中不存在,docker就会自动从docker镜像仓库中下载,默认是从dockerhub公共镜像源下载. 1:镜像列表 我们可以使用docker images [r ...

  7. 10588 - Queuing at the doctors

    这题wa 了 八次 你说 巨弱  orz 大神   总结一下  没有将所有的情况考虑清楚 ,当有的时候一个人已经全部看完的时候 别的人还没开始 但是我就把他给结束了 #include <iost ...

  8. Python: 正则表达式中的group()

    正则表达式中,group()用来提出分组截获的字符串,()用来分组 eg:

  9. linux常用命令:ping 命令

    Linux系统的ping 命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地 址192.168.1.1试试 ...

  10. Javassist

    Javassist 实现动态代理 javassist 是一款非常优秀的Java 字节码引擎工具,能够在运行时编译.生成Java Class.