关于this关键字

this:所在方法的调用者对象

this关键字:
    1:如果存在成员变量和局部变量同名,方法中默认访问局部变量(就近原则),可以通过this关键之指定访问成员变量的数据
   
   2:如果在一个方法中访问了一个变量,且该变量只存在成员变量的情况下,java编译器会在该变量的前面添加this关键字
   
    3: 在一个构造函数中调用其它的构造函数       
         格式:
             this(参数列表)
   
  this关键字调用其它构造函数的注意点:
    
       1:在一个构造函数中调用其它的构造函数时,this关键字必须位于构造函数中的第一个语句     
       2: 不能在构造函数中出现构造函数互相调用的情况,因为这是个死循环

public class Demo4 {

    public static void main(String[] args) {
        Person p1 = new Person("张三",29);
        Person p2 = new Person("李四",28);
        String s =p1.compare(p2);
        System.out.println(s);

    }

}

class Person{
    String name;
    int age;

    Person(String name, int age){
        this.name = name;  //指向的是调用此构造函数的对象,Person p1 = new Person("张三",29);中 this.name 就是 p1.name = (传进来的)"张三";
        this.age = age;
    }

    String compare(Person p){
        if(this.age > p.age){  //此处的this.age中的this指的是compare方法的调用者:p1,意思类似于 p1.age ;
            return this.name+"比"+p.name+"大";
        }else if(this.age == p.age){
            return "两人一样大";
        }else{
            return this.name+"比"+p.name+"小";
        }
    }

}
时间: 2024-11-09 07:01:01

关于this关键字的相关文章

JAVA synchronized关键字锁机制(中)

synchronized 锁机制简单的用法,高效的执行效率使成为解决线程安全的首选. 下面总结其特性以及使用技巧,加深对其理解. 特性: 1. Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码.       2. 当一个线程同时访问object的一个synchronized(this)同步代码块时,其它线程仍然可以访问非修饰的方法或代码块.       3. 当多个线程同时访问object的synchronized(this)同步代码

Java 中几个重要的关键字

Java中的关键字特别多,大致如下: 访问控制 private protected public 类,方法和变量修饰符 abstract class extends final implements interface native new static strictfp synchronized transient volatile 程序控制 break continue return do while if else for instanceof switch case default 异常

RobotFramework自动化测试框架的基础关键字(五)

1.1.1        Run Keyword If判断的使用 Run Keyword If是一个常用的用来做逻辑判断的关键字,意思是如果满足了某一个判断条件,然后就会执行关键字,我们对list3中放入0,1,2三个元素,然后遍历list3,判断当取到元素为0时,我们输出"男生". @{list3} Create List      0     1     2 :FOR       ${value} in    @{list3} Run Keyword If        '${va

this关键字的使用

* this关键字的使用: * 1.this:可以理解为:当前对象 或 当前正在创建的对象 * * 2.this可以用来调用:属性.方法.构造器 * * 3.this调用属性.方法 * 在方法中:我们可以在方法中通过"this.属性"或者"this.方法"的方法,表示调用当前对象的指定属性或方法.但是通常 * 情况下,我们都省略了"this.".但是如果方法的形参和当前对象的属性名相同的情况下,我们必须显式的使用"this.变量&quo

关键字和继承

1.关键字的使用 2.继承

【转】C++中的explicit关键字

在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上.再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决.但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的.了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且在编写自己的代码时也可以尝试使用.既然C++语言提供这种特性,我想在有些时候这种特性将会非常有用. 按默认规定,只用传一个参数的构造函数也定义了一个隐式转换.举

就是要你懂Java中volatile关键字实现原理

原文地址http://www.cnblogs.com/xrq730/p/7048693.html,转载请注明出处,谢谢 前言 我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是java.util.concurrent包的核心,没有volatile就没有这么多的并发类给我们使用. 本文详细解读一下volatile关键字如何保证变量在多线程之间的可见性,在此之前,有必要讲解一下CPU缓存的相关知识,掌握这部分知识一定会让我们更好地理解volatile的原理,从而更好.更正确地地

abstract关键字

abstract关键字 一,abstract关键字: abstract关键字表示的是抽象的意思,可以用来修饰类和方法.修饰的类我们称之为抽象类,修饰的方法我们称为抽象方法 二.abstract修饰类,抽象类: public abstract class 类名{} 抽象类用来表示一些抽象的概念 抽象类的特点: a.抽象类不能被实例化 b.抽象类中可以有属性,方法,构造方法,都是用来给子类继承 c.抽象类中的方法不一定全部都是抽象方法 三.abstract修饰方法,抽象方法(不需要实现,由子类来实现

this关键字

this关键字 一:this的关键字的用法: 1.调用属性: this.health=100; this.name="小黄"; 2.调用方法: this.print(); 3.调用构造方法 this();--->如果是使用,必须是构造方法中的第一条语句 this("小黑",100,100,"雄"); 二:this关键字的使用方法: 1.调用本类的属性this.属性名: a.可以在构造方法中调用的属性进行赋值 b.可以在本类的方法中调用对象的

Static关键字

1.static修饰的资源属于类级别的资源,静态的资源,对于类的所有实例对象的共享的资源 2.static关键字可以用来修饰属性,方法,代码块 3.static修饰的资源,在类加载期间执行 Static修饰的属性 static关键字修饰属性,属于对类所有实例对象共享的变量 访问静态的属性:类名.属性名 Static修饰的方法 static关键字修饰的方法属于静态方法可以直接类名.方法名()进行调用,一般的是把静态方法作为工具方法 静态方法中不能调用对象的资源(对象属性,对象方法); Static