大飞_Rflyee:http://blog.csdn.net/rflyee/article/details/12057289

首先了解一下java中类的引用,

对于java中类的引用,可以这样理解:

public class A{
public static void main(String[] args){
B b1 = new B();
B b2 = new B(); b1.reName(1); //1
b2.reName(2); //2
}
}
class B{
public void reName(int i){...}
}

对于类似这样的定义,编译器是如何知道到底是b1还是b2调用了reName()?其实在这里编译器做了一些幕后工作。

它把调用方法的对象作为一个参数传递给了方法reName()。所以可以这样理解上述调用:B.reName(b1,1);B.reName(b2,2);(当然这些只是内部表现形式)

以下为正题:

1、对“调用方法的那个对象”的引用,
对于在方法内部引用当前类的对象我们一般不会按上边那样引用,而是使用Java提供的关键字this。
this只能在方法内部使用;表示对“调用方法的那个对象”的引用。因此一般只有当需要当前对象的引用时,才使用this关键字。比如:

public class BigApple{
...
public BigApple getInstance(){
return this; //this:该方法所属类的对象的引用
}
}

2、在构造器中调用构造器


但是需要注意:


1、必须在起始处,否则编译错误;


2、只能调用一个构造方法,两个以上错误。

3、只有在构造方法中才可以调用构造方法,其他方法不可以。

public class Person{
String name = null;
int age = 0; public Person(String name,int age){
this(String name); //1、必须在起始处,否则编译错误;2、只能调用一个构造方法,两个以上错误。
//此处完全可以改为this.name = name; 所以只作为例子说明,不代表这样写的好处。
this.age = age;
}
public Person(String name){
this.name = name;
}
}

3、以上也展示了this的另外一种用法:this.name = name; 这是为了区分参数和数据成员;(显然前边为数据成员,后边为参数)

大飞_Rflyee:http://blog.csdn.net/rflyee/article/details/12057289

Java关键字this的用法总结的更多相关文章

  1. 深入Java关键字this的用法的总结

    在Java程序设计中经常会见到this的使用,this使得程序设计变得规范.简单.灵活.但是在使用过程中,在不同场 合它的含义并不完全相同,使用不当还会出现错误, 本文对this的几种用法和出现的问题 ...

  2. (转载)深入Java关键字this的用法的总结

    在Java程序设计中经常会见到this的使用,this使得程序设计变得规范.简单.灵活.但是在使用过程中,在不同场 合它的含义并不完全相同,使用不当还会出现错误, 本文对this的几种用法和出现的问题 ...

  3. 【Java学习笔记之二十】final关键字在Java继承中的用法小结

    谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法. ...

  4. java基础 -- 关键字static的用法

    static关键字的基本作用就是方便在没有创建对象的情况下调用类的方法/变量, static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问. static ...

  5. Java关键字

    Java关键字简介 类别 关键字 说明 访问控制 private 私有的 protected 受保护的 public 公共的 类.方法和变量修饰符 abstract 声明抽象 class 类 exte ...

  6. Java关键字this、super使用总结

    版权声明:原创作品,如需转载,请与作者联系.否则将追究法律责任. 作者:熔岩日期:2007-03-01MSN :leizhimin@126.com声明:原创作品,未经授权,谢绝转载! 好久没有对所学知 ...

  7. Java关键字介绍之this与super

    1.什么是super?什么是this? super关键字表示超(父)类的意思.this变量代表对象本身. 2.使用super&this调用成员变量和方法 可以使用super访问父类被子类隐藏的 ...

  8. Java关键字及其作用

    Java关键字及其作用 一. 关键字总览 访问控制 private protected public             类,方法和变量修饰符 abstract class extends fin ...

  9. 【Java学习笔记之一】java关键字及作用

    Java关键字及其作用 一. 总览: 访问控制 private protected public 类,方法和变量修饰符 abstract class extends final implements ...

随机推荐

  1. android 38 Abdroid客户端和服务端交互

    服务端: package com.sxt.day05; import java.io.IOException; import java.util.ArrayList; import javax.ser ...

  2. 开启MYSQL远程连接权限

      开启MYSQL远程连接权限   1 2 3 4 5 //建议设置固定IP mysql> GRANT ALL PRIVILEGES ON *.* TO root@"8.8.8.8&q ...

  3. Qt 学习之路:QML 基本元素

    QML 基本元素可以分为可视元素和不可视元素两类.可视元素(例如前面提到过的Rectangle)具有几何坐标,会在屏幕上占据一块显示区域.不可视元素(例如Timer)通常提供一种功能,这些功能可以作用 ...

  4. eslint error

    暂时不想解决 报错: 3:16 error Component should be written as a pure function react/prefer-stateless-function ...

  5. Android推送技术研究

    前言 最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些东西偏底层硬件和通信行业, 我对这些一窍不通, 只能说说自己的理解. 为什 ...

  6. MVC3.0 提交表单的方法

    在views中使用 @using (Html.BeginForm()) 来完成,其中放一个submit类型的提交按钮,如: @using (Html.BeginForm()) { @Html.Vali ...

  7. PHP 开启报错机制

    屏蔽PHP错误提示 方法一:在有可能出错的函数前加@,然后or die("") 如: @mysql_connect(...) or die("Database Conne ...

  8. c++ Cout 输出格式

    控制符是在头文件iomanip.h中定义的对象.使用前必须把iomanip.h包含进来 1. I/O的书写格式 I/0流是输入或输出的一系列字节,当程序需要在屏幕上显示输出时,可以使用插入操作符“&l ...

  9. requirejs+anjularjs+express框架

    1.目录 2.首页login.html如下: <!DOCTYPE html><html> <head> <title>登录界面</title> ...

  10. (JavaScript实现)页面无操作倒计时退出

    项目前端页面需要实现,页面没人操作进入倒计时,以下为前端代码实现. //设置(倒计时功能)开关 var _mouseActiveListener_flag = true; beforecount:触发 ...