• 浅谈this关键字


    1.this指向当前的对象,更确切的说this是执行当前对象的一个引用变量,比如以下代码,输出的结果的地址值是相同的,也就是this指向了P这个对象

     1 public class Person {
     2     String name;
     3     int age;
     4     public void say(){
     5         
     6         
     7         System.out.println("this:"+this);
     8     }
     9     public static void main(String[] args) {
    10         Person p=new Person();
    11         p.say();
    12         System.out.println("p:"+p);
    13     }
    14 }

    2.在一个类中,当这个类中的成员变量被与他同名的构造方法中的局部变量隐藏时,我们可以通过this.变量名调用。如下代码:当第7行我们不用this关键字时,输出是“张三吃”,反之“李四吃”,这里的this就是指向11行的p,相当于p.name。

     1 public class Person {
     2     String name="李四";
     3     int age;
     4     
     5     public Person(){
     6     String    name="张三";
     7         System.out.println(this.name+"吃");
     8         
     9     }
    10     public static void main(String[] args) {
    11         Person p=new Person();
    12         
    13     }
    14 }

    3.当构造方法调用构造方法时,我们可以用this([参数列表])来调用,无参用this(),如以下代码。需要追的是this必须书写在第一行。打印时先打印this的结果:12行,然后打印7行。

     1 public class Person {
     2     String name;
     3     int age;
     4     
     5     public Person(String name){
     6         this("李四",23);    
     7     System.out.println("一个变量的构造方法");
     8         
     9     }
    10     public Person(String name,int age){
    11         
    12         System.out.println("两个变量的构造方法");
    13     }
    14     public static void main(String[] args) {
    15         Person p=new Person("张三");
    16     }
    17 }
  • 相关阅读:
    Java高级特性 第11节 JUnit 3.x和JUnit 4.x测试框架
    Java高级特性 第10节 IDEA和Eclipse整合JUnit测试框架
    Java高级特性 第9节 Socket机制
    Java面向对象和高级特性 项目实战(一)
    Java高级特性 第8节 网络编程技术
    Java高级特性 第7节 多线程
    二十一、字符串类的创建
    二十二、经典问题解析二
    二十一、C++中的临时对象
    二十、对象的销毁
  • 原文地址:https://www.cnblogs.com/dear-java/p/4966259.html
Copyright © 2020-2023  润新知