美文网首页
Java关键字this

Java关键字this

作者: 南在南方i | 来源:发表于2020-02-15 12:34 被阅读0次

    调用本类属性

    this明确是一个灵活的关键字,他不会明确的表示出任何一个固定的概念

    利用this调用本类属性

    类之中有许多成员,在大部分情况下,类里面是直接进行成员的调用,但是很多时候为了能够更加清楚地描述出调用的是本类属性,所以调用属性时,可以采用this.属性的方式

    通过代码观察其意义:

    class NewPerson{
        String name;
        int age;
        public NewPerson(String name,int age){
            this.name = name;
            this.age = age;
        }
        public String getInfo(){
            return "姓名:"+this.name+",年龄:"+this.age;
        }
    }
    
    class ThisTest{
        public static void main(String[] args){
            NewPerson per = new NewPerson("张三",15);
            System.out.println(per.getInfo());
        }
    }
    

    此代码在构造方法上的参数很明确是要做什么,就是为了name和age属性赋值,当参数和属性名称相同的时候,就会出现混淆的概念,那么就需要用户自己利用this.属性手工的调用方法中的属性

    调用本类方法

    在一个类中方法实际上存在有两类:普通方法、构造方法,而this调用本类方法的语法是不同的

    调用本类的其他方法:this.方法()

    在一个类的不同方法之间可以通过this.方法()调用,示例代码如下:

    class NewPerson{
        String name;
        int age;
        public NewPerson(String name,int age){
            this.name = name;
            this.age = age;
            this.paint();
        }
        public void paint(){
            System.out.println("姓名:"+this.name+",年龄:"+this.age);
        }
    }
    

    调用本类其它构造方法:this()

    一个类中是可以存在有构造方法的,而且构造方法可以重载,并且构造方法只在实例化对象中调用一次
    因此我们举例:一个Preson类中要求提供有三个构造方法,但是不管调用哪个构造方法都会执行一句“新的Person类对象实例化了”的输出,使用this();的代码如下:

    class NewPerson{
        String name;
        int age;
    
        public NewPerson(){
            System.out.println("新的Person类对象实例化了");
        }
        public NewPerson(String name){
            this();//使用无参构造方法
            this.name = name;
        }
        public NewPerson(String name,int age){
            this(name);//使用单参构造方法
            this.age = age;
        }
        public void paintf(){
            System.out.println("姓名:"+this.name+",年龄:"+this.age);
        }
    }
    

    使用this()"方法可以进行简化代码,但是也是有限制的:\color{red}{该语句只能放在构造方法的首行,,且在使用此方法时应避免循环的形式出现,留给出口}

    相关文章

      网友评论

          本文标题:Java关键字this

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