• java中this的用法如:this.name=name


    package com.chensi;
    
    /**
     *  这个是为了搞懂那个  this.name = name的。
     * @author ZHL
     *
     */
    public class ThisTestZhl {
        
        private int i = 0;
        
        private String s = "zhl";
        //第一个构造器
        ThisTestZhl(int i){
            System.out.println("第一个构造器");
            //这时候的this。i 表示的是成员变量的i 是0,然后this。i = i ;这时候成员变类被局部变量赋值了
            System.out.println("这个是this。i--"+(this.i));
            System.out.println("这个是i--"+i);
            System.out.println("----------");
            this.i = i;
            System.out.println("这个是i--"+i+"
    "+"这个是this。i--"+(this.i));
            System.out.println("*********");
            System.out.println("this.i----"+(this.i));
        }
        //第二个构造器
        ThisTestZhl(String s){
            System.out.println("第二个构造器");
            System.out.println("s--"+s);
            System.out.println("this.s---"+(this.s));
            this.s = s;
            System.out.println("---------");
            System.out.println("字符串构造器"+s);
            System.out.println("字符串构造器this.s--"+(this.s));
        }
        //第三个构造器 ,带有两个参数的构造器
        ThisTestZhl(int i ,String s){
            //this(i);
            this(s);
            System.out.println("第三个构造器");
        }
        
        public ThisTestZhl increment(){
            System.out.println("入口");
            System.out.println("入口 i---"+i);
            System.out.println("入口 this.i ---"+(this.i));
            this.i++;
            System.out.println("出口 i---"+i);
            System.out.println("出口 this.i ---"+(this.i));
            return this;
        }
        
        
        
        public static void main(String[] args) {
            ThisTestZhl tto = new ThisTestZhl(10);
            //ThisTestZhl tto2 = new ThisTestZhl("豆豆");
            //ThisTestZhl tto3 = new ThisTestZhl(10,"chensi");
            System.out.println(tto.increment().increment().increment().i);
            //tto.increment();
        }
        
        
        
        
        
        
        /* this: 通过this可以调用本类的构造方法,成员变量,成员方法
         * this() 调用构造方法
         * this.变量名  调用成员变量
         * this.方法名 调用成员方法
         */
        
        /*
         *  
    
            细节问题注释已经写的比较清楚了,这里不在赘述,只是总结一下,其实this主要要三种用法:
            
            1、表示对当前对象的引用!
            
            2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。
            
            3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
            
            还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!
            
            
            说明在什么情况下需要用到this:
                    第一、通过this调用另一个构造方法,用发是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。
                    第二、函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。
                                当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this,用了也不为错,呵呵。
                    第三、在函数中,需要引用该函所属类的当前对象时候,直接用this。
                                其实这些用法总结都是从对“this是指向对象本身的一个指针”这句话的更深入的理解而来的,死记不然容易忘记而且容易搞错,要理解!
             */
        
    }

    结果:

    第一个构造器
    这个是this。i--0
    这个是i--10
    ----------
    这个是i--10
    这个是this。i--10
    *********
    this.i----10
    入口
    入口 i---10
    入口 this.i ---10
    出口 i---11
    出口 this.i ---11
    入口
    入口 i---11
    入口 this.i ---11
    出口 i---12
    出口 this.i ---12
    入口
    入口 i---12
    入口 this.i ---12
    出口 i---13
    出口 this.i ---13
    13

  • 相关阅读:
    Android url中文编码问题
    android studio error configuration with name default not found
    Android studio 配置JNI环境
    Github获取仓库最新Release版本号API
    微信小程序开发——设置默认图片、错误加载图片
    微信小程序开发-rem转换rpx小工具
    微信小程序开发小技巧——单击事件传参、动态修改样式、轮播样式修改等
    解决vue-router嵌套路由(子路由)在history模式下刷新无法渲染页面的问题
    VUE图片懒加载-vue lazyload插件的简单使用
    vue项目微信分享之后路由链接被破坏怎么办
  • 原文地址:https://www.cnblogs.com/zhanghaoliang/p/5600002.html
Copyright © 2020-2023  润新知