1. 程式人生 > >java之 ------ 類的封裝、繼承和多型(二)

java之 ------ 類的封裝、繼承和多型(二)

問題:宣告銀行賬戶類,成員變數包括賬號、儲戶姓名、開啟時間、身份證號碼、存款餘額等賬戶資訊,成員方法包括開戶、存款、取款、查詢(餘額、明細)、銷戶等操作。

主要成員描述如下

public class Account {                        	//賬戶類
    private String name;                   	//儲戶姓名
    private double balance;                  	//賬戶餘額
    public Account(String name)             	//構造方法,引數指定儲戶姓名
    public String getName()                	//返回賬戶名
    public double balance()                 	//檢視賬戶餘額
    public boolean put(double value)         	//存款操作,引數為存入金額
    public double get(double value)           //取款操作,引數為取款金額,返回實際取到金額
}


import java.util.Scanner;
import java.math.*;
class Account{
	String name;
	static int count=0;
	static String[] opea=new String[10000];
	static double[] val=new double[1000];
	double balance;
	static  String accountID="6215000000000000000";
	String id;
	public Account(String name,double balance,String id){
		this.set(name,balance,id);
	}
	public void set(String name,double balance,String id){
		this.name=name;
		this.balance=balance;
		if(id.length()>18||id.length()<1){
			System.out.println("Input ID Error !");
			return ;
		}
		this.id=id;
		accountID=add(accountID);
	}
	public void inquire(){
		System.out.println("-------balance and trad information -------");
		System.out.println("balance : "+this.balance);
		for(int i=0;i<count;i++){
			System.out.println(opea[i]+" "+val[i]);
		}
	}
	public String getName(){
		return "AccoutName : "+this.name+"\nAccountID "+this.accountID+"\nID: "+id.substring(0,6)+"********"+id.substring(14,id.length());
	}
	public double balance(){
		return this.balance;
	}
	public boolean put(double value){
		this.balance+=value;
		if(value==0){
			return false;
		}
		opea[count]="put";
		val[count++]=value;
		return true;
	}
	public double get(double value){
		if(value>this.balance){
			System.out.println("lack of balance !!!");
			return 0;
		}
		opea[count]="get";
		val[count++]=value;
		this.balance-=value;
		return value;
	}
	public boolean exit(){
		return true;
	}
	public static String add(String str){
			char[] c=new char[19];
			int leng=19;
			int sign=0,i;
			for(i=0;i<19;i++){
				leng=leng-1;
				int sum=0;
				sum+=str.charAt(leng)-'0';
				if(i==0){
					sum+=1;
				}
				sum+=sign;
				c[leng]=(char)(sum+48);
				if(sum>=10){
					sign=1;
					c[leng]=(char)(sum%10+48);
				}else{
					sign=0;
				}
			}
			return String.valueOf(c);
	}
}
class Main{
	public static void main(String[] args){
		Account p=new Account("Tom",1000,"340822123409231190");
		System.out.println("-------Accoutn information-------");
		System.out.printf(p.getName());
		System.out.println();
		System.out.println("balance : "+p.balance());
		p.put(123213);
		p.inquire();
		System.out.println();
		
		Account p2=new Account("Sex",100000,"340822123434533454");
		System.out.println("-------Accoutn information-------");
		System.out.printf(p2.getName());
		System.out.println();
		System.out.println("balance : "+p2.balance());
		p2.get(12);
		System.out.println("balance : "+p2.balance());
		p2.get(12000000);
		System.out.println("balance : "+p2.balance());
		p2.inquire();
		System.out.println();
	}
}