目录:
视频: JAVA112.06 构造方法 / new / 构造方法重载 / this() 2024
您可以在Java中使用子类。创建子类很好,但是除非你编写代码来使用它们,否则这些子类没有任何好处。因此,在这里,您将探索使用子类的代码。
现在您已经到了将自己归类为F型人员,P型人员或T型人员的时候了。
- 一个F型的人 想看基本面。 (字母 F 代表 基础。 )“给我看一个程序,以最基本的形式列出原则,”F型人士说。一个F型的人不担心花里胡哨。钟声迟来了,口哨可能永远不会来。如果您是type-F人员,则希望看到使用
FullTimeEmployee
和PartTimeEmployee
子类的程序,然后移开,以便完成一些工作。 - P型人物 需要实际应用。 (字母 P 代表 的实际意义。 )P型人员需要在上下文中看到想法;否则,这些想法就会过快地消失。 P型人士说:“向我展示一个程序,演示
FullTimeEmployee
和PartTimeEmployee
子类的用处。 “我没有用你的臭气抽象。我想要真实的例子,现在我想要它们! “ - 类型-T人员 要 测试
FullTimeEmployee
和PartTimeEmployee
子代码中的代码。测试代码意味着把代码放在脚步上 - 当输入是平常的,输入是意想不到的时候,甚至当输入是完全不现实时,检查输出的准确性。更重要的是,T型人员希望使用一个标准的,易于识别的测试代码轮廓,以便其他程序员可以快速理解测试结果。类型-T人员创建使用FullTimeEmployee
和PartTimeEmployee
子类的JUnit测试。
下面的代码是用于F型人群的,它简洁明了,睡前阅读很好。
如果您是P型或T型人,请访问allmycode。 COM。该网站包含满足Type-P和Type-T阅读器的示例。
此代码向您显示使用子类
FullTimeEmployee
和
PartTimeEmployee
的基本程序。这是程序的输出。
public class DoPayrollTypeF {
FullTimeEmployee ftEmployee = new FullTimeEmployee();
ftEmployee。 setName(“Barry Burd”);
ftEmployee。 setJobTitle( “总裁”);
ftEmployee。setWeeklySalary(5000.00);
ftEmployee。 500.00; setBenefitDeduction(500.00);
ftEmployee。 cutCheck(ftEmployee。findPaymentAmount());
PartTimeEmployee ptEmployee = new PartTimeEmployee();
ptEmployee。 setName(“Steve Surace”);
ptEmployee。 setJobTitle( “驱动器”);
ptEmployee。 setHourlyRate(7.53);
ptEmployee。 cutCheck(ptEmployee。findPaymentAmount(10));
Employee
,
FullTimeEmployee
和
PartTimeEmployee
要理解此代码,需要注意三个类: 。
代码的前半部分涉及一名全职员工。注意有多少方法可用于
ftEmployee
变量?例如,您可以致电
ftEmployee。 setWeeklySalary
,因为
ftEmployee
的类型为
FullTimeEmployee
。您也可以致电
ftEmployee。 setName
,因为
FullTimeEmployee
类扩展了
Employee
类。
因为在
Employee
类中声明了
cutCheck
,所以可以调用
ftEmployee。 cutCheck
。但您也可以致电
ftEmployee。 findPaymentAmount
,因为
findPaymentAmount
方法在
FullTimeEmployee
类中。
使类型匹配
再次查看代码的前半部分。特别注意最后一个陈述 - 全职雇员实际上被剪掉了一张支票。声明形成了一个很好的,长期的价值链和类型。您可以通过从内部读取声明来查看:
方法
ftEmployee。用一个空的参数列表调用findPaymentAmount
。这很好,因为
findPaymentAmount
- 方法不带任何参数。
findPaymentAmount
方法返回一个double
类型的值。 -
double
值,即ftEmployee。 findPaymentAmount
返回传递给方法 - ftEmployee。 cutCheck
。这很好,因为
cutCheck方法带有一个
double类型的参数。
看看这个奇特的图解。匹配参数。总是在参数列表中为其提供一个方法所需的值类型。
故事的后半部分在代码的后半部分,代码将创建一个
PartTimeEmployee
类型的对象。一个
PartTimeEmployee类型的变量可以完成
FullTimeEmployee
变量可以做的一些相同的事情。但
PartTimeEmployee
类没有
setWeeklySalary
和
setBenefitDeduction
方法。相反,
PartTimeEmployee
类具有
setHourlyRate
方法。所以倒数第二行是对
setHourlyRate
方法的调用。
代码的最后一行是最有趣的。在该行上,代码将
10
(工作小时数)传递给
findPaymentAmount
方法。将此与前面的
findPaymentAmount
调用相比较 - 前半部分代码中全职雇员的调用。在两个子类之间,
FullTimeEmployee
和
PartTimeEmployee
是两个不同的
findPaymentAmount
方法。这两种方法有两种不同的参数列表:
FullTimeEmployee
类的
findPaymentAmount
方法不带任何参数。
PartTimeEmployee
- 类的
findPaymentAmount
方法使用一个int
参数。 - 这是课程的标准。查找兼职员工的支付金额与查找全职员工的支付金额不同。兼职员工的工资每周都在变化,这取决于员工在一周内工作的小时数。全职员工的工资每周保持不变。因此,
FullTimeEmployee
和PartTimeEmployee
类都有findPaymentAmount
方法,但是每个类的方法工作方式都不相同。