美文网首页
10-this调用本类属性

10-this调用本类属性

作者: c88bc9f9d088 | 来源:发表于2020-10-20 08:31 被阅读0次

    this可以算是Java里面比较复杂的关键字,因为this的使用形式上决定了它的灵活性,在程序里面,使用this可以实现以下三类结构的描述:

  • 当前类中的属性:this属性;
  • 当前类中的方法(普通方法、构造方法):this()、this.方法名称();
  • 描述当前对象;

使用this调用当前类中属性
    通过现在的分析可以发现,利用构造方法或者是setter方法都可以进行类中的属性的赋值,但是在进行赋值的时候,之前采用的是如下的定义形式:

class Person {  //定义一个类
    private String name;   //人员的姓名
    private int age;       //人的年龄

    //方法名称与类名称相同,并且无返回值定义
    public Person(String n,int a){   //定义有参构造
        name = n; //为类中的属性赋值(初始化)
        age = a;  //为类中的属性赋值(初始化)
    }
    
    public void tell(){
        System.out.println("姓名:"+name+"、年龄:"+age);
    }
}
public class JavaDemo {   //主类
    public static void main(String [] args){
        Person per = new Person("王五",20);
        per.tell();
    }
}

    但是这个时候在构造方法定义的过程之中会发现有一点点问题:

public Person(String n,int a){ 
        name = n;
        age = a;
    }

    这个问题出现在参数名称上,可以发现,此时构造方法中两个参数的目的是为了类中的name或age属性初始化,但是现在却发现此时的代码n和a参数名称不好。
    如果说现在将构造方法中的参数名称修改为name、age,则发现无法进行属性的正确设置:

public Person(String name,int age){ 
        name = name;
        age = age;
}

    在Java程序之中“{}”是作为一个结构体的边界符,那么在程序里面当进行变量(参数、属性都称为变量)使用的时候都会以“{}”作为一个查找边界,所以按照就近取用的原则,此时的构造方法并没有能够访问类中的属性,所以此时为了明确的标记出类中的属性与参数的区别,往往会在属性前追加一个“this”,表示本类属性。

class Person {  //定义一个类
    private String name;   //人员的姓名
    private int age;       //人的年龄

    //方法名称与类名称相同,并且无返回值定义
    public Person(String name,int age){   //定义有参构造
        this.name = name; //为类中的属性赋值(初始化)
        this.age = age;  //为类中的属性赋值(初始化)
    }
    
    public void tell(){
        System.out.println("姓名:"+this.name+"、年龄:"+this.age);
    }
}
public class JavaDemo {   //主类
    public static void main(String [] args){
        Person per = new Person("王五",20);
        per.tell();
    }
}

    在你以后所编写的程序代码之中,只要是访问本类中属性的时候,请一定要加上“this”实现访问。

相关文章

  • 10-this调用本类属性

        this可以算是Java里面比较复杂的关键字,因为this的使用形式上决定了它的灵活性,在程序里面,使用t...

  • 第四天___②

    this 属性调用 从实际使用角度来讲this可以做三件事: 调用本类属性 调用本类方法(包含普通与构造) 表示当...

  • Java关键字this

    调用本类属性 this明确是一个灵活的关键字,他不会明确的表示出任何一个固定的概念 利用this调用本类属性 类之...

  • Java this vs super

    1. this vs super this 表示当前对象引用,调用本类(包括继承)的属性、方法、本类构造方法 su...

  • This

    this吃透的话是需要时间的,让人头疼 this的三件事情:1.调用本类的属性,2.调用本类的方法(普通与构造)3...

  • super关键字--java学习第10天

    super:用来调用父类中指定的操作,可以用来修饰属性、方法、构造器。 this:用来调用本类对象的操作。...

  • C#面向对象基础

    Static:调用本类对象的时候可以直接调用(不用创建对象,模拟全局变量) This:表示当前类的对象 3.属性(...

  • 05.静态的概述和特点

    静态的概述 当在定义类的时候,类中都会有相应的属性和方法。而属性和方法都是通过创建本类对象调用的。当在调用对象的某...

  • 【五】static 关键字

    1. 静态的概述 当在定义类的时候,类中都会有相应的属性和方法。而属性和方法都是通过创建本类对象调用的。当在调用对...

  • swift中的初始化器

    指定初始化器 纵向调用有父类就要调用父类的初始化器,保证继承的属性也有值。super之前初始化本类所有的属性,之后...

网友评论

      本文标题:10-this调用本类属性

      本文链接:https://www.haomeiwen.com/subject/zqprmktx.html