• Java中this关键字在构造方法中的使用


    1. Java中this关键字代表对象本身。用this关键字可以在类的内部调用属性和方法,这样代码的可读性比较高,因为它明确的指出了这个属性或方法的来源。

    2. 同时在构造函数中也可以使用this关键字调用本类中的其它构造函数,但有几点需要注意:

    • 构造函数调用其它构造函数,需要将this写在构造函数的第一行。
    • 构造函数不可递归,防止死循环。

    3. 一个类的构造函数分为无参和有参构造函数。通常做法是指定写好一个包含所有字段的构造函数,然后其它构造函数可以直接调用该函数,实现代码重用。

    package org.lyk.entities;
    
    public class Emp implements Comparable<Emp>
    {
        private long empno;
        private String ename;
        private String job; 
        private float sal;
        
        
        public long getEmpno()
        {
            return empno;
        }
        public void setEmpno(long empno)
        {
            this.empno = empno;
        }
        public String getEname()
        {
            return ename;
        }
        public void setEname(String ename)
        {
            this.ename = ename;
        }
        public String getJob()
        {
            return job;
        }
        public void setJob(String job)
        {
            this.job = job;
        }
        public float getSal()
        {
            return sal;
        }
        public void setSal(float sal)
        {
            this.sal = sal;
        }
        
        
        @Override
        public String toString()
        {
            return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", sal=" + sal + "]";
        }
        public Emp()
        {
            this(-1, "无名氏", "未指定", 0);
        }
        public Emp(long empno)
        {
            this(empno,"无名氏","未指定",0);
        }
        public Emp(long empno, String name)
        {
            this(empno, name, "未指定", 0);
        }
        
        public Emp(long empno, String ename, String job, float sal)
        {
            super();
            this.empno = empno;
            this.ename = ename;
            this.job = job;
            this.sal = sal;
        }
        @Override
        public int compareTo(Emp o)
        {
            if(this.sal < o.sal)
                return -1;
            else if(this.sal > o.sal)
                return 1;
            
            if(this.empno < o.empno)
                return -1;
            else if(this.empno > o.empno)
                return 1; 
            
            return 0;
        }
        
        
        
    }
    package org.lyk.main;
    
    import org.lyk.entities.Emp;
    
    public class Main
    { 
        public static void main(String[] args)
        {
            Emp[] emp = new Emp[4];
            
            emp[0] = new Emp();
            emp[1] = new Emp(9989);
            emp[2] = new Emp(9987,"Jerry");
            emp[3] = new Emp(7786,"Larry","programer",889);
            
            
            java.util.Arrays.sort(emp);
            for(Emp item : emp)
            {
                System.out.println(item);
            }
        }
    }

    欢迎加入QQ群参与讨论. 422683877

  • 相关阅读:
    阅读书籍推荐
    lvarchar类型对表结构变更影响
    离职总结 | 如何做个好员工?
    Windows7 general operation/cmd notes
    (转)CONST用法
    Linux多线程的使用一:互斥锁
    hadoop2.5.2学习及实践笔记(六)—— Hadoop文件系统及其java接口
    hadoop2.5.2学习及实践笔记(五)—— HDFS shell命令行常见操作
    hadoop2.5.2学习及实践笔记(四)—— namenode启动过程源码概览
    hadoop2.5.2学习及实践笔记(三)—— HDFS概念及体系结构
  • 原文地址:https://www.cnblogs.com/kuillldan/p/5899881.html
Copyright © 2020-2023  润新知