使用繼承計算定期存款和迴圈存款利息的 Java 程式
繼承 是一種允許我們訪問一個類屬性和行為到另一個類的概念。其方法和成員變數被繼承的類稱為超類或父類,繼承這些方法和成員變數的類稱為子類或派生類。在 Java 中,我們使用 extends 關鍵字來繼承一個類。
問題陳述
建立一個 Java 程式,使用繼承計算定期存款 (FD) 和迴圈存款 (RD) 的利息。該程式應提示使用者在 FD 和 RD 之間進行選擇,輸入金額和期限,並根據賬戶持有人的年齡計算利息。
在本文中,我們將討論一個使用繼承計算 FD 和 RD 利息的 Java 程式。首先,在您本地機器的 IDE 中建立以下四個 Java 檔案:
-
Acnt.java - 此檔案將包含一個抽象類“Acnt”來儲存賬戶詳細資訊,如利率和金額。它還將包含一個抽象方法“calcIntrst”,該方法帶有一個引數“amnt”來計算利率。
-
FDacnt.java - 它將計算定期存款 (FD) 的利率。“FDacnt”類將繼承“Acnt”類並覆蓋“calcIntrst”方法。
-
RDacnt.java - 它將計算迴圈存款 (RD) 的利率。“RDacnt”類將繼承“Acnt”類並覆蓋“calcIntrst”方法。
-
Intrst.java - 此檔案將包含 main 方法。
使用繼承計算定期存款和迴圈存款利息的 Java 程式
考慮以下用於實現繼承以計算 FD 和 RD 利息的不同 Java 檔案和類。
Acnt.java
public abstract class Acnt{
double intrstRate;
double amnt;
abstract double calcIntrst(double amnt);
}
FDacnt.java
import java.util.*;
public class FDacnt extends Acnt {
double FDintrstRate;
double FDAmnt;
int period;
int age;
double Gen, SenCitizen;
Scanner input = new Scanner(System.in);
@Override
double calcIntrst(double amnt){
this.FDAmnt = amnt;
System.out.println("Enter your FD days");
period = input.nextInt();
System.out.println("Enter the age of account holder ");
age = input.nextInt();
if (amnt < 10000000) {
if (period >= 7 && period <= 14) {
Gen = 0.0450;
SenCitizen = 0.0500;
} else if (period >= 15 && period <= 29) {
Gen = 0.0470;
SenCitizen = 0.0525;
} else if (period >= 30 && period <= 45) {
Gen = 0.0550;
SenCitizen = 0.0600;
} else if (period >= 45 && period <= 60) {
Gen = 0.0700;
SenCitizen = 0.0750;
} else if (period >= 61 && period <= 184) {
Gen = 0.0750;
SenCitizen = 0.0800;
} else if (period >= 185 && period <= 365) {
Gen = 0.0800;
SenCitizen = 0.0850;
}
FDintrstRate = (age < 50) ? Gen : SenCitizen;
} else {
if (period >= 7 && period <= 14) {
intrstRate = 0.065;
} else if (period >= 15 && period <= 29) {
intrstRate = 0.0675;
} else if (period >= 30 && period <= 45) {
intrstRate = 0.00675;
} else if (period >= 45 && period <= 60) {
intrstRate = 0.080;
} else if (period >= 61 && period <= 184) {
intrstRate = 0.0850;
} else if (period >= 185 && period <= 365) {
intrstRate = 0.10;
}
}
return FDAmnt * FDintrstRate;
}
}
RDacnt.java
import java.util.*;
public class RDacnt extends Acnt{
double RDIntrstRate;
double RDamnt;
int periods;
double monthlyAmnt;
double Gen, SenCitizen;
Scanner input = new Scanner(System.in);
@Override
double calcIntrst(double amnt){
this.RDamnt = amnt;
System.out.println("Enter your RD months");
periods =input.nextInt();
System.out.println("Enter the age of account holder");
int age =input.nextInt();
if (periods >= 0 && periods <= 6) {
Gen = .0750;
SenCitizen = 0.080;
} else if (periods >= 7 && periods <= 9) {
Gen = .0775;
SenCitizen = 0.0825;
} else if (periods >= 10 && periods <= 12) {
Gen = .0800;
SenCitizen = 0.0850;
} else if (periods >= 13 && periods <= 15) {
Gen = .0825;
SenCitizen = 0.0875;
} else if (periods >= 16 && periods <= 18) {
Gen = .0850;
SenCitizen = 0.0900;
} else if (periods >= 22) {
Gen = .0875;
SenCitizen = 0.0925;
}
RDIntrstRate = (age < 50) ? Gen : SenCitizen;
return RDamnt * RDIntrstRate;
}
}
Intrst.java
import java.util.*;
public class Intrst{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Choose from the Options: " + "\n1." + " FD Interest" + " \n2." + " RD Interest"
+ "\n3." + " Exit");
int choice = sc.nextInt();
switch (choice){
case 1:
FDacnt fds = new FDacnt();
System.out.println("Enter your FD Amount");
double fAmnt = sc.nextDouble();
System.out.println("Interest gained on your FD Amount is: $ " + fds.calcIntrst(fAmnt));
break;
case 2:
RDacnt rds = new RDacnt();
System.out.println("Enter your RD amount");
double RAmnt = sc.nextDouble();
System.out.println("Interest gained on your RD Amount is: $ " + rds.calcIntrst(RAmnt));
break;
default:
System.out.println("Choose correct choice");
}
}
}
要編譯此程式碼,請鍵入命令:javac Intrst.java 現在要執行:Java Intrst
輸出
Choose from the Options: 1. FD Interest 2. RD Interest 3. Exit 1 Enter your FD Amount 56000 Enter your FD days 325 Enter the age of account holder 32 Interest gained on your FD Amount is: $ 4480.0
以上程式是一個選單驅動的程式。當我們執行此程式時,螢幕上將顯示三個選項。選擇 1 計算 FD 的利率,選擇 2 計算 RD 的利率。
程式碼解釋
該程式使用繼承建立類層次結構。父類 Acnt 有兩個子類 FDacnt 和 RDacnt。每個子類分別計算 FD 和 RD 的利息。以下是其工作原理:使用者在 FD 和 RD 之間進行選擇。如果選擇 FD,則程式會詢問金額和期限,並根據賬戶持有人的年齡計算利息。如果選擇 RD,則程式會詢問金額和期限,並根據賬戶持有人的年齡計算利息。利息的計算使用普通公民和老年公民的不同利率。該程式使用 switch 語句在不同選項之間導航。
結論
我們使用了層次繼承的概念來計算 FD 和 RD 的利息。Acnt 類被其兩個子類 FDacnt 和 RDacnt 繼承。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP