• this关键字


    1.this调用当前类中的属性和方法;

    class Book{
        private String bName;
        private double bPrice;
        public Book(String bName,double bPrice){
            /*
                以下的代码中this.bName表示的是类中的bName属性,而后面的bName指的是
                当前方法中的参数bName中的属性;
            */
    
            this.bName=bName;
            this.bPrice=bPrice;
            //此时this加或者不加都代表本类中的方法;
            this.print();
        }
        public static void print(){
            System.out.println("这个是本类中的方法");
        }
        public String getInfo(){
            
            return "书名:" + this.bName + ",价格:" + this.bPrice;
        }
    }
    public class Test{
        public static void main(String args[]){    
            Book book = new Book("java",17.2);//默认调用构造方法;
            System.out.println(book.getInfo());
        }
    }

    1.this表示构造方法;

    class Emp{
        private int empno;
        private String ename;
        private String job;
        private double sal;
        //下面定义四个构造方法;
        public Emp(int empno){
            this.empno = empno;
            this.ename = "无名氏";
            this.job = "无记录";
            this.sal = 0;
        }
        public Emp(int empno, String ename){
            this.empno = empno;
            this.ename =  ename;
            this.job = "后勤";
            this.sal = 800.0;
        }
        public Emp(int empno, String ename,String job){
            this.empno = empno;
            this.ename =  ename;
            this.job = job;
            this.sal = 1000.0;
        }
        public Emp(int empno,String ename,String job,double sal){
            this.empno = empno;
            this.ename =  ename;
            this.job = job;
            this.sal = sal;
        }
        public String toString(){
            return "编号:" + this.empno + ",姓名:" + this.ename + ",工作:" + this.job + ",工资:" + this.sal;
        }
    }
    public class Test{
        public static void main(String args[]){    
            Emp e_1 = new Emp(8888);
            Emp e_2 = new Emp(7856,"小明");
            Emp e_3 = new Emp(7666,"小红","web开发");
            Emp e_4 = new Emp(7399,"smith","后端开发",150000.00);
            System.out.println(e_1);
            System.out.println(e_2);
            System.out.println(e_3);
            System.out.println(e_4);
        }
    }

    以上代买过于繁杂,我们可以通过this([参数],[参数],...)来对本类中的构造方法进行调用,但是在进行调用的时候应当保留一个构造方法不被其他构造方法调用,即保留一个出口

    class Emp{
        private int empno;
        private String ename;
        private String job;
        private double sal;
        //下面定义四个构造方法;
        public Emp(int empno){
            this(empno,"无名氏","无记录",0);
        }
        public Emp(int empno, String ename){
            this(empno,ename,"后勤",800.0);
        }
        public Emp(int empno, String ename,String job){
            this(empno,ename,job,1000.0);
        }
        public Emp(int empno,String ename,String job,double sal){
            //在此构造方法中保留出口
            this.empno = empno;
            this.ename =  ename;
            this.job = job;
            this.sal = sal;
        }
        public String toString(){
            return "编号:" + this.empno + ",姓名:" + this.ename + ",工作:" + this.job + ",工资:" + this.sal;
        }
    }
    public class Test{
        public static void main(String args[]){    
            Emp e_1 = new Emp(8888);
            Emp e_2 = new Emp(7856,"小明");
            Emp e_3 = new Emp(7666,"小红","web开发");
            Emp e_4 = new Emp(7399,"smith","后端开发",150000.00);
            System.out.println(e_1);
            System.out.println(e_2);
            System.out.println(e_3);
            System.out.println(e_4);
        }
    }

     this表示当前对象(重要),

    class Print{
        public void prin(){
            System.out.println("this =  " + this);
        } 
    }
    public class Test{
        public static void main(String args[]){    
            Print p1 = new Print();
            System.out.println(p1);
            p1.prin();//
            Print p2 = new Print();
            System.out.println(p2);
            p2.prin();//
    
        }
    }

    运行结果:

    Print@15db9742
    this =  Print@15db9742
    Print@6d06d69c
    this =  Print@6d06d69c
    

      

  • 相关阅读:
    构建之法第九、十章读后感
    构建之法第七章读后感
    构建之法五、六章读后感
    构建之法第四章读后感
    一组阶段小记之再读构建之法
    打印控件
    TTS语音
    VS2005通过网络连接CE设备进行调试开发
    Windows XP下安装WinCE6.0开发环境
    利用VS2005创建WINCE 6.0 平台
  • 原文地址:https://www.cnblogs.com/hu1056043921/p/7274475.html
Copyright © 2020-2023  润新知