JAVA静态成员和实例成员例子-计算税金.docVIP

  • 4
  • 0
  • 约6.31千字
  • 约 6页
  • 2017-06-07 发布于湖北
  • 举报

JAVA静态成员和实例成员例子-计算税金.doc

JAVA静态成员与实例成员 类是类型而不是对象,一般在类里定义的成员是每个由此类产生的对象都拥有的,因此可以称之为对象成员,但是有时需要让类的所有对象在类的范围内共享某个成员,而这个成员不属于任何由此类产生的对象,它是属于整个类的,这种成员称之为静态成员。例如,Math类中的pow方法是一个静态方法。静态方法不向对象施加任何操作。我们用Math.pow(x,y)调用Math类的pow方法计算幂xy,它并不使用任何一个Math对象来执行此任务,也没对任何对象施加操作。 6.1 静态字段和实例字段 实例:自动编号 主要知识点:实例成员与静态成员的概念。实例成员与静态成员的特征。实例成员与静态成员的访问规则。 问题描述:修改2.3节雇员税金计算实例,给雇员类添加一个属性雇员编号。当创建一个雇员对象时,按创建雇员对象的顺序自动给该雇员的雇员编号设置一个值,同时还给雇员类添加一个number字段和getNumber方法。通过number字段和getNumber方法都可获得系统中雇员的人数。 分析:我们在雇员类中除增加雇员编号属性之外,还增加了一个Number属性以计算存在于系统中雇员的人数,Number这个属性不应该属于哪个特定的对象,它是属于雇员类的,因此Number属性必须定义为静态属性。每创建一个对象(调用构造函数),雇员人数加1。由于Number属性是静态属性,因此不管有无雇员,都可读取Number属性的值。Number属性的值是雇员对象的数目,客户是不能修改该属性值的,因此Number属性是只读属性即只有getNumber方法获取Number属性的值,不能有setNumber方法。 为了自动给员工的编号,我们在雇员类中再增加一个nextID字段,该字段也应该是静态字段,因为即使没有雇员对象,该字段也是存在的。它属于这个类,而不属于单个对象。 1.打开2.3节雇员税金计算实例创建的Employee.java代码文件 2.修改Employee类(修改部分见带底纹部分)。 package ch4; import java.text.*; public class Employee { ??? private String name; ??? private double salary; ??? private int id; ??? private static int nextID=1000; ??? private static int number; ?牋 牋?public Employee(String name,double salary){于单 牋牋牋?this.name = name;ing 牋牋牋?this.salary=salary;g na 牋牋牋?number=number+1;ry;g 牋牋牋?nextID=nextID+1;ry;g 牋牋牋?id=nextID;tID+ 牋?}?i 牋?public String getName(){am 牋牋牋?return name;getN 牋?}?r 牋?public void setName(String aName){ s 牋牋牋?name=aName;etNa 牋?}?n 牋?public double getSalary(){ a 牋牋牋?return salary;tSal 牋?}?r 牋?public void setSalary(double aSalary){ar 牋牋牋?if(aSalary0)Sala 牋牋牋?salary=aSalary ;ary( 牋?}?s 牋?}? 牋?public int getID(){ry 牋牋牋?return id;etID 牋?}?r 牋?public void setID(int aID){e 牋牋牋牋 id=aID;d se 牋?}牋 牋?}牋 牋?public static int getNumber(){Sa 牋牋牋?return number;t ge 牋?}?r 牋?}? 牋?public static int getNextID(){Sa 牋牋牋?return nextID;t ge 牋?}?r 牋?public void setNextID(int aNextID){y) 牋牋牋?nextID=aNextID;xtID 牋 } n 牋?public String tellAboutSelf(){tI 牋牋牋?DecimalFormat a=new DecimalFormat(?00000{于单个对″); ??????? String output=”编号:?? ” + a.format(id) + “\n” + ??????? “姓名:?? ” + getName() + “\n” +

文档评论(0)

1亿VIP精品文档

相关文档