ok,稍等
呵呵,已經給你拆分成了兩個獨立的類了。
我再吧注釋加起吧。
哪兒不清楚的可以給我留言嘛,剛開始學習的時候就要多看看別人寫的代碼,然後從中學習。這里寫的用到了簡單的封裝面向對象靜態類,你可以在多了解下,不難的。
importjava.util.Scanner;
publicclassAtm{
//顯示菜單
staticvoidshowMenu(){
System.out.println();
System.out.print("1.查詢賬戶余額 ");
System.out.print("2.存款 ");
System.out.print("3.取款 ");
System.out.print("0.退出 ");
System.out.print("請選擇操作:");
}
publicstaticvoidmain(String[]arg){
//創建一個account的對象
Accountaccount=newAccount();
System.out.println("*******歡迎使用**********");
//循環操作提示
while(true){
showMenu();//調用顯示菜單的方法
//得到用戶的輸入
Scannerscanner=newScanner(System.in);
intinput=scanner.nextInt();
switch(input){
case1:
account.query();
break;
case2:
System.out.print("請輸入存款額:");
floatin=scanner.nextFloat();
account.in(in);
account.query();
break;
case3:
System.out.print("請輸入取款額:");
floatout=scanner.nextFloat();
account.out(out);
account.query();
break;
case0:
System.out.println("謝謝使用");
System.exit(0);//終止程序
break;
default:
System.out.println("輸入有誤");
}
}
}
}
//帳號類
classAccount{
privatefloatmoney=8000;
//查詢賬戶余額
publicvoidquery(){
System.out.println("賬戶余額:"+money);
}
//取出,out是取出的存款數
publicvoidout(floatout){
if(money<out){
System.out.println("賬戶余額不足");
}
this.money-=money;
}
//存入,in是輸入的存款數
publicvoidin(floatin){
this.money+=in;
}
}
② JAVA 編程創建Account 類模擬銀行賬戶。
我幫你一共寫了四個類,一個賬戶Account類,兩個賬戶類的子類(信用卡賬戶CreditCardAccount類和借記卡DebitCardAccount類),另外再加上一個演示透支效果測試Test類。 代碼貼在下面:
/**
* 賬戶類。
*
* @author CodingMouse
* @version 1.0
*/
public abstract class Account { protected String accountNumber; // 賬號
protected double overage; // 余額
protected double annualInterestRate; // 年利率
/**
* 參數化構造器方法。
*
* 用於開戶。
* @param accountNumber 預設賬號
* @param overage 初始余額
* @param annualInterestRate 預設年利率
*/
public Account(String accountNumber, double overage, double annualInterestRate) {
super();
// 設定賬號。
this.accountNumber = accountNumber;
// 設定初始余額,至少為零。
this.overage = overage >= 0 ? overage : 0;
// 設定年利率,至少為零。
this.annualInterestRate = annualInterestRate >= 0 ? annualInterestRate : 0;
}
/**
* 查詢賬號。
* @return 返回賬號。
*/
public String getAccountNumber() {
return this.accountNumber;
}
/**
* 設置賬號。
* @param accountNumber 新賬號。
*/
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
} /**
* 查詢余額方法。
* @return 返回賬戶余額。
*/
public double getOverage() {
return this.overage;
} /**
* 存款方法。
* @param money 要存入的金額。
* @return 返回true時存款成功,否則存款失敗。
*/
public boolean depositMoney(double money) {
// 如果金額小於零,則不能存款
if (money <= 0)
return false;
// 否則將相應的金額累加到賬戶余額中
this.overage += money;
return true;
}
/**
* 取款方法。
*
* 默認不能透支。
* @param money 要取出的金額。
* @return 返回true時取款成功,否則取款失敗。
*/
public boolean drawMoney(double money) {
// 如果賬戶余額不足,則不能取款
if (this.overage < money)
return false;
// 否則從賬戶余額中扣除相應的金額
this.overage -= money;
return true;
} /**
* 查詢年利率。
* @return 返回年利率。
*/
public double getAnnualInterestRate() {
return this.annualInterestRate;
} /**
* 設置年利率。
* @param annualInterestRate 新的年利率。
*/
public void setAnnualInterestRate(double annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}
}
--------------------------------------------------
/**
* 借記卡賬戶。
*
* 不能透支。
* @author CodingMouse
* @version 1.0
*/
public class DebitCardAccount extends Account { /**
* 重寫父類構造器。
* @param accountNumber 預設賬號
* @param overage 初始余額
* @param annualInterestRate 預設年利率
*/
public DebitCardAccount(String accountNumber, double overage,
double annualInterestRate) {
super(accountNumber, overage, annualInterestRate);
}}
-------------------------------------------------
/**
* 信用卡賬戶。
*
* 可以透支。
* @author CodingMouse
* @version 1.0
*/
public class CreditCardAccount extends Account { private double overdraftLimit; // 透支限度
/**
* 重載構造器。
*
* 便於構建可透支的信用卡賬戶實例。
* @param accountNumber 預設賬號
* @param overage 初始余額
* @param annualInterestRate 預設年利率
* @param overdraftLimit 透支限度
*/
public CreditCardAccount(String accountNumber, double overage,
double annualInterestRate, double overdraftLimit) {
super(accountNumber, overage, annualInterestRate);
this.overdraftLimit = overdraftLimit;
} /**
* 查詢透支限度的方法。
* @return 透支限度金額。
*/
public double getOverdraftLimit() {
return this.overdraftLimit;
} /**
* 設置透支限度的方法。
* @param overdraftLimit 新的透支限度金額。
*/
public void setOverdraftLimit(double overdraftLimit) {
// 透支限度必須為零和正數,否則為零。
this.overdraftLimit = overdraftLimit >= 0 ? overdraftLimit : 0;
} /**
* 重寫父類構造器。
* @param accountNumber 預設賬號
* @param overage 初始余額
* @param annualInterestRate 預設年利率
*/
public CreditCardAccount(String accountNumber, double overage,
double annualInterestRate) {
super(accountNumber, overage, annualInterestRate);
} /**
* 重寫父類取款方法。
*
* 將默認不能透支的取款改為可以透支的取款。
* @param money 要取出的金額。
* @return 返回true時取款成功,否則取款失敗。
*/
@Override
public boolean drawMoney(double money) {
// 如果賬戶余額 + 透支限度的總金額仍不足,則不能取款
if (this.overage + this.overdraftLimit < money)
return false;
// 否則從賬戶余額中扣除相應的金額
this.overage -= money;
return true;
}}
------------------------------------------
/**
* 測試賬戶使用。
*
* @author CodingMouse
* @version 1.0
*/
public class Test { /**
* 主程序方法。
* @param args 入口參數。
*/
public static void main(String[] args) {
// 創建一個不能透支的借記卡賬戶。
System.out.println("------------ 借記卡賬戶 ------------");
DebitCardAccount debitCardAccount = new DebitCardAccount("CHK20100117001", 100, 0.02);
// 初始余額有100元,調用並列印取90元和取120元的結果。
System.out.println("取90元的結果:" + debitCardAccount.drawMoney(90));
// 重新存入90元
debitCardAccount.depositMoney(90);
System.out.println("取120元的結果:" + debitCardAccount.drawMoney(120));
// 創建一個可以透支的信用卡賬戶。
System.out.println("------------ 信用卡賬戶 ------------");
CreditCardAccount crebitCardAccount = new CreditCardAccount("CHK20100117002", 100, 0.03, 50);
// 初始余額有100元,並且透支限度為50元,調用並列印取90元、取120元和取160元的結果。
System.out.println("取90元的結果:" + crebitCardAccount.drawMoney(90));
// 重新存入90元
crebitCardAccount.depositMoney(90);
System.out.println("取120元的結果:" + crebitCardAccount.drawMoney(120));
// 重新存入120元
crebitCardAccount.depositMoney(120);
System.out.println("取160元的結果:" + crebitCardAccount.drawMoney(160));
}
}
-------------------------------------- 在我機器上的測試列印結果為: ------------ 借記卡賬戶 ------------
取90元的結果:true
取120元的結果:false
------------ 信用卡賬戶 ------------
取90元的結果:true
取120元的結果:true
取160元的結果:false ----------------------------------------- 這個題目只是簡單考查了下封裝、繼承、多態三大面向對象特性,我提供的代碼僅作參考。 如果你懶得復制,想要程序源代碼文件或有不明白的地方,可以發郵件到我QQ郵箱,我再回給你。
③ java編寫BankAccount類
publicclassTestBaiKnow{
publicstaticvoidmain(String[]args){
=newBankAccount(1000,3);
tom.save(2000);
System.out.println(tom.calcTotal());
}
}
classBankAccount{
privateStringname;
privatedoublebalance;
privateintyear;
privatedoublerate=0.01;
publicBankAccount(){
this.balance=10;
this.year=1;
}
publicBankAccount(doublebalance,intyear){
this.balance=balance;
this.year=year;
}
publicvoidsave(doublebalance){
this.balance=this.balance+balance;
}
publicdoublefetch(doublebalance){
if(this.balance-balance<=0){
System.out.println("取款大於余額!");
return0;
}else{
this.balance=this.balance-balance;
returnbalance;
}
}
publicdoublecalcTotal(){
returnthis.balance*this.rate*this.year+this.balance;
}
}
④ 編程Account.java:在其中編寫一個名為編寫Account 類。
publicclassAccount{
StringcustomerId;
StringaccountNo;
floatbalance;
//構造方法有身份證號、賬戶號及余額三個參數
publicAccount(StringcustomerId,StringaccountNo,floatbalance){
.customerId=customerId;
this.accountNo=accountNo;
if(balance<0){
System.out.println("余額不能為負");
}else{
this.balance=balance;
}
}
//構造方法只有身份證號、賬戶號二個參數,余額初始化為零
publicAccount(StringcustomerId,StringaccountNo){
this.customerId=customerId;
this.accountNo=accountNo;
this.balance=0;
}
//存款
publicvoiddeposit(floatamount){
this.balance+=amount;
}
//取款
publicvoidwithdraw(floatamount){
if(amount>balance){//取款數額大於余額
System.out.println("沒有那麼多的錢");
return;
}
this.balance-=amount;
}
//查詢余額
publicfloatgetBalance(){
returnthis.balance;
}
}
⑤ java定義一個類實現銀行賬戶的概念。
public class BankAccount {
String account ;
int account_num;
//構造函數
public BankAccount(String account,int account_num){
this.account=account;
this.account_num=account_num;
}
//存錢
public String addNum(int num){
account_num= account_num+num;
return "存錢成功";
}
//取錢
public String getNum(int num){
String result;
if(account_num>num){
account_num =account_num-num;
result="取錢成功";
}else{
result="賬戶余額不足,還剩"+account_num;
}
return result;
}
//顯示余額
public String displayNum(){
return "賬戶余額:"+account_num;
}
//顯示賬號
public String displayAccount(){
return "賬戶:"+account;
}
public static void main(String[] args){
BankAccount lucy = new BankAccount("lucy",100);
BankAccount jack = new BankAccount("jack",50);
//顯示他們各自的余額
System.out.println("===顯示他們各自的余額===");
System.out.println("lucy:"+lucy.displayNum());
System.out.println("jack:"+jack.displayNum());
//存錢取錢
System.out.println("===存錢取錢===");
System.out.println("lucy取50:"+lucy.getNum(50));
System.out.println("jack存200:"+jack.addNum(200));
//顯示賬戶 顯示余額
System.out.println("===存錢取錢===");
System.out.println(lucy.displayAccount()+""+lucy.displayNum());
System.out.println(jack.displayAccount()+""+jack.displayNum());
}
}
運行結果:
===顯示他們各自的余額===
lucy:賬戶余額:100
jack:賬戶余額:50
===存錢取錢===
lucy取50:取錢成功
jack存200:存錢成功
===存錢取錢===
賬戶:lucy賬戶余額:50
賬戶:jack賬戶余額:250
⑥ 編程Account.java:在其中編寫一個名為編寫Account 類。
package practice1;
public class C {
private double a;
private double b;
private double c;
private double[] d;
public String[] i;
public void setValue(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
this.d = new double[2];
this.i = new String[2];
}
public boolean canGetValue() {
double temp;
temp = b * b - 4 * a * c;
if (temp < 0) {
this.i[0] = (-b) / (a * 2) + "+" + Math.sqrt(-temp) / (2 * a) + "i";
this.i[1] = (-b) / (a * 2) + "-" + Math.sqrt(-temp) / (2 * a) + "i";
return false;
} else {
this.d[0] = (-b + Math.sqrt(temp)) / (2 * a);
this.d[1] = (-b - Math.sqrt(temp)) / (2 * a);
return true;
}
}
/**
* @ args
*/
public double getA() {
return a;
}
public double getB() {
return b;
}
public double getC() {
return c;
}
public double getD(int i) {
return d[i];
}
public static void main(String[] args) {
// TODO Auto-generated method stub
C pratice1 = new C();
pratice1.setValue(1, 3, 4);
if (pratice1.canGetValue()) {
System.out.println(pratice1.getA());
System.out.println(pratice1.getB());
System.out.println(pratice1.getC());
System.out.println(pratice1.getD(0));
System.out.println(pratice1.getD(1));
} else {
System.out.println(pratice1.i[0]);
System.out.println(pratice1.i[1]);
}
}
}