目次:
ビデオ: The Quiz Hierarchy - Intro to Java Programming 2024
Javaではサブクラスを使用できます。サブクラスの作成はうまくいきますが、それらのサブクラスを使用するコードを記述しない限り、これらのサブクラスから何も取得しません。ここでは、サブクラスを使用するコードを探索します。
タイプFの人、タイプPの人、タイプTの人のいずれかに分類される時が来ました。
- タイプFの人物 は、基本を見たいと思っています。 ( F は の基礎を表します。 ) "最も基本的な形式で原則を説明するプログラムを表示します"と、タイプFの人が言います。タイプFの人は、鐘や笛を心配していません。鐘が後で来る、そして笛が決して来ないかもしれない。あなたがタイプFの人なら、
FullTimeEmployee
とPartTimeEmployee
サブクラスを使用するプログラムを見たいと思っています。 。 - タイプPの人間 は実用的なアプリケーションを望んでいる。 (文字 P は 実用 を意味する)タイプ-Pの人々は文脈の中でアイデアを見る必要がある。さもなければ、アイデアはあまりにも速く浮かびます。 「
FullTimeEmployee
とPartTimeEmployee
サブクラスの有用性を示すプログラムを私に見せてください。 "私はあなたの臭いの抽象化のための使用はありません。私は実生活の例を欲しがっています。 " - Type-T person は、 FullTimeEmployee および
PartTimeEmployee
サブクラスのコードをテスト
します。コードをテストするということは、入力が普通であるとき、入力が予期せぬときに、そして入力が完全に非現実的であっても、出力の精度をチェックするということです。さらに、タイプTの人は、テストコードの標準的な、簡単に認識できるアウトラインを使用して、他のプログラマーがテスト結果を迅速に理解できるようにしたいと考えています。タイプTの人物は、FullTimeEmployee
およびPartTimeEmployee
サブクラスを使用するJUnitテストを作成します。
以下のコードは、タイプ-Fの群衆のためのものです。
タイプPまたはタイプTの人はallmycodeにアクセスしてください。 com。このサイトには、タイプPおよびタイプTリーダーを満たすための例が含まれています。
このコードは、サブクラス
FullTimeEmployee
と
PartTimeEmployee
を使用するベアボーンプログラムを示しています。ここにプログラムの出力があります。
public class DoPayrollTypeF {
ftEmployee。 setName( "Barry Burd");
ftEmployee。 setJobTitle( "CEO");
ftEmployee。setWeeklySalary(5000。00);
ftEmployee。 setBenefitDeduction(500.00);
ftEmployee。 cutCheck(ftEmployee。findPaymentAmount());
<! - 3 - >
システム。でる。 println();
ptEmployee。 setName( "Steve Surace");
ptEmployee。 setJobTitle( "Driver");
ptEmployee。 setHourlyRate(7,53);
ptEmployee。 cutCheck(ptEmployee。findPaymentAmount(10));
Employee
、
FullTimeEmployee
、および
PartTimeEmployee
の3つのクラスに注意する必要があります。 。
コードの前半は常勤の従業員を扱っています。
ftEmployee
変数で使用できるメソッドの数はいくつですか?たとえば、
ftEmployeeを呼び出すことができます。
ftEmployee
には
FullTimeEmployee
型があるため、setWeeklySalary
また、
ftEmployeeを呼び出すこともできます。
FullTimeEmployee
クラスは
Employee
クラスを拡張するため、setName
cutCheck
は
Employee
クラスで宣言されているため、
ftEmployeeを呼び出すことができます。 cutCheck
。しかし、
ftEmployeeも呼び出すことができます。
findPaymentAmount
メソッドは
FullTimeEmployee
クラスにあるため、findPaymentAmount
型を一致させる
コードの前半をもう一度見てください。最後の声明(常勤の従業員が実際に小切手を切る)に特に注意してください。このステートメントは、長さの良い値とそのタイプをチェーン化しています。これを見るには、内側から
Method
ftEmployeeのステートメントを読んでください。 findPaymentAmount
は、空のパラメータリストとともに呼び出されます。
findPaymentAmount
メソッドにはパラメータがないため、これはうまくいきます。
-
findPaymentAmount
メソッドは、double
型の値を返します。 -
倍の
値はftEmployeeです。 findPaymentAmount
戻り値はメソッド - ftEmployeeに渡されます。 cutCheck
。これは、
cutCheckメソッドが
double型の1つのパラメータを取るため、良いことです。
素朴なイラストを見てください。一致するパラメータ。
メソッドには常に、パラメータリストに必要な値の型を渡します。記事の後半
コードの後半で、コードは
PartTimeEmployee
型のオブジェクトを作成します。PartTimeEmployee
型の変数は、
FullTimeEmployee
変数で実行できるものと同じものを実行できます。しかし、
PartTimeEmployee
クラスには、
setWeeklySalary
メソッドと
setBenefitDeduction
メソッドはありません。代わりに、
PartTimeEmployee
クラスには
setHourlyRate
メソッドがあります。したがって、最後の2行目は
setHourlyRate
メソッドへの呼び出しです。
コードの最後の行がはるかに面白いです。その行で、コードは
10
(作業時間数)を
findPaymentAmount
メソッドに渡します。これを以前の
findPaymentAmount
呼び出しと比較してください。これは、コードの前半の常勤従業員の呼び出しです。
FullTimeEmployee
と
PartTimeEmployee
の2つのサブクラスの間には、2つの異なる
findPaymentAmount
メソッドがあります。 2つのメソッドには、2つの異なる種類のパラメータリストがあります。
FullTimeEmployee
クラスの
findPaymentAmount
メソッドはパラメータを取りません。
- PartTimeEmployee
クラスの
findPaymentAmountメソッドは、
int - パラメータを1つとります。
これはコースのためのパーです。パート・アルバイトの支払い金額を見つけることは、常勤の従業員の支払い金額を見つけることと同じではありません。パートタイム従業員の給料は、従業員が1週間に働く時間数に応じて毎週変更されます。フルタイムの従業員の給料は毎週同じです。したがって、
FullTimeEmployeeクラスと
PartTimeEmployeeクラスはどちらも
findPaymentAmount
メソッドを持っていますが、各クラスのメソッドは全く異なります。