欢迎来到天天文库
浏览记录
ID:50827068
大小:34.00 KB
页数:6页
时间:2020-03-15
《JAVA静态成员与实例成员例子-计算税金.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JAVA静态成员与实例成员类是类型而不是对象,一般在类里定义的成员是每个由此类产生的对象都拥有的,因此可以称之为对象成员,但是有时需要让类的所有对象在类的范围内共享某个成员,而这个成员不属于任何由此类产生的对象,它是属于整个类的,这种成员称之为静态成员。例如,Math类中的pow方法是一个静态方法。静态方法不向对象施加任何操作。我们用Math.pow(x,y)调用Math类的pow方法计算幂xy,它并不使用任何一个Math对象来执行此任务,也没对任何对象施加操作。6.1静态字段和实例字段实例:自动编号主要知识点:实例成员
2、与静态成员的概念。实例成员与静态成员的特征。实例成员与静态成员的访问规则。问题描述:修改2.3节雇员税金计算实例,给雇员类添加一个属性雇员编号。当创建一个雇员对象时,按创建雇员对象的顺序自动给该雇员的雇员编号设置一个值,同时还给雇员类添加一个number字段和getNumber方法。通过number字段和getNumber方法都可获得系统中雇员的人数。分析:我们在雇员类中除增加雇员编号属性之外,还增加了一个Number属性以计算存在于系统中雇员的人数,Number这个属性不应该属于哪个特定的对象,它是属于雇员类的,因此N
3、umber属性必须定义为静态属性。每创建一个对象(调用构造函数),雇员人数加1。由于Number属性是静态属性,因此不管有无雇员,都可读取Number属性的值。Number属性的值是雇员对象的数目,客户是不能修改该属性值的,因此Number属性是只读属性即只有getNumber方法获取Number属性的值,不能有setNumber方法。为了自动给员工的编号,我们在雇员类中再增加一个nextID字段,该字段也应该是静态字段,因为即使没有雇员对象,该字段也是存在的。它属于这个类,而不属于单个对象。1.打开2.3节雇员税金计算
4、实例创建的Employee.java代码文件2.修改Employee类(修改部分见带底纹部分)。packagech4;importjava.text.*;publicclassEmployee{ privateStringname; privatedoublesalary; privateintid; privatestaticintnextID=1000; privatestaticintnumber; publicEmployee(Stringname,doublesalary){
5、 this.name=name; this.salary=salary; number=number+1; nextID=nextID+1; id=nextID; } publicStringgetName(){ returnname; } publicvoidsetName(StringaName){ name=aName; } publicdoublegetSalary(){ returnsalary;
6、 } publicvoidsetSalary(doubleaSalary){ if(aSalary>0) salary=aSalary; } publicintgetID(){ returnid; } publicvoidsetID(intaID){ id=aID; } publicstaticintgetNumber(){ returnnumber; } publicstaticintgetNextID
7、(){ returnnextID; } publicvoidsetNextID(intaNextID){ nextID=aNextID; } publicStringtellAboutSelf(){ DecimalFormata=newDecimalFormat(”000000″); Stringoutput=”编号: ”+a.format(id)+“”+ “姓名: ”+getName()+“”+ “工资: ”+getSa
8、lary()+””+ “税金: ”+Tax.CalculateTax(this)+””; returnoutput; }}3.创建如下代码文件,并以Tax.java文件保存。packagech4;publicclassTax{ finalstaticdouble RATE=
此文档下载收益归作者所有