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);
        }
    }
}
时间: 2024-10-21 22:16:14

Java中this关键字在构造方法中的使用的相关文章

超大文件中查找关键字

一个有10亿条记录的文本文件,已按照关键字排好序存储.请设计算法,可以快速的从文件中查找指字关键字的记录. 因为已经排好序了,可以使用 二分查找方法检索. 又因为文件过于庞大,可以将文件File分成1000份子记录集即读入10000次,每次读入10亿/10000条记录: 每次 读入一次 10亿/10000 条记录时,记作,将其关键字保存于Records数组中 , 当读入一个子记录集时,说明关键字key>=Records[0],故只需将关键字key与Records[i]最后一条记录关键字key'比

请大神指导从大日志文件中统计关键字次数的办法

awk 'NR==FNR{a[$0]=1;next}{if($0 in a)b[$0]++}END{for (i in b)print i,b[i]}' filea fileb | sort 文件A中有若干行数据,每行为一个关键字文件B为大日志文件,大小为10G以下 想着能够统计出文件A中每个关键字在B中的出现次数,例如行1,3行2,10行3,100..... 最笨的办法是逐行读入后用grep,但是太费时间,有没有只打开一次B文件,就能把A中所有行都统计出来的办法呢? aaa 3 bbb 3 c

[转]Java中子类调用父类构造方法的问题分析

在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的? 答案如下:    当你new一个子类对象的时候,必须首先要new一个父类的对像出来,这个父类对象位于子类对象的内部,所以说,子类对象比父类对象大,子类对象里面包含了一个父类的对象,这是内存中真实的情况.构造方法是new一个对象的时候,必须要调的方法,这是规定,要new父类对象出来,那么肯定要调用其构造方法,所以: 第一个规则:子类的构造过程中,必须调用其父类的构造方

java中 this关键字的用法总结

JAVA中this用法总结 2013-07-22 17:06:32|  分类: 技术类_JAVA|举报|字号 订阅 JAVA中this用法总结 1.强调本类中的方法 class Person{ private String name;        //声明姓名属性 private int age;        //声明年龄属性 public void tell(){        //取得信息的方法 System.out.println("姓名:"+getName()+"

java中this关键字的作用

一.this关键字主要有三个应用: (1)this调用本类中的属性,也就是类中的成员变量: (2)this调用本类中的其他方法: (3)this调用本类中的其他构造方法,调用时要放在构造方法的首行. Public Class Student { String name; //定义一个成员变量name private void SetName(String name) { //定义一个参数(局部变量)name this.name=name; //将局部变量的值传递给成员变量 } } 应用一:引用成

Java中this关键字的使用

Java中this关键字的使用主要有两处: 1.构造方法 this指的是调用构造方法进行初始化的对象. //有参构造 public Human(String name, int age) { this(); //调用无参构造 //this(name); //调用有参构造(参数为name的构造方法) this.name = name; this.age= age; } 2.普通方法(非静态方法) this指的是调用该方法的对象. //普通方法 public void setName(String

Java复习笔记--java中this 关键字

Java中this关键字,this可以调用类的成员变量和成员方法,this还可以调用类中的构造方法.使用这种方式值得注意的是, 只可以在无参构造方法中的第一句使用this关键字调用有参构造方法. public class AnyThting{ public AnyThting(){ this("this 调用有参构造方法"); System.out.println("无参构造方法"); } public AnyThting(String name){ System.

java中static关键字总结

Java中,static关键字一般情况下有四种用法: 用来修饰一个变量. 用来修饰一个方法. 用来修饰一个内部类. 用来修饰一段代码块. 1 public class Student{ 2 String name; 3 static int count;//static修饰的变量 4 static{//static修饰的代码块 5 count=0; 6 } 7 public static void playGame(){//static修饰的方法 8 System.out.println("我爱

java学习中,匿名函数、构造方法、构造代码块、构造方法中调用构造方法(java 学习中的小记录)

java学习中,匿名函数.构造方法.构造代码块.构造方法中调用构造方法(java 学习中的小记录) 作者:王可利(Star·星星) 匿名函数 匿名对象:没有名字的对象 匿名对象使用的注意点: 1.一般不会用匿名对象给属性赋值,无法获取属性值,每次new 都是一个新的对象. 2.匿名对象永远都不可能是一个对象. 如:person new().name = "星星":是不行的 匿名对象的好处:书写简单. 匿名对象使用的场景: 1.如果一个对象调用一个方法一次的时候,就可以用匿名对象来调用.