号外~~~
号外~~~
以后小小猿每写一篇博客都要附加上一张高清大图,注意什么风格的都有,做好准备哟~~~
今天第一次就不搞什么花里胡哨的图片了
附上高空地球照一张
不知道大家对于这样的图片是什么看法
小小猿我的想法就是通过一些案例可以把一些知识带给大家
如果有什么写的不好或者错误的地方
还请各位同学能够不吝赐教~~~
那么接下来进入我们今天的正题——Java模拟银行的一个小案例
我们一起来看看这个案例具体要实现一些什么功能
定义一个银行账户类,里面要写上两个方法,一个存款的方法,一个取款的方法。在取款之前我们要先判断账户里是否还有钱,取款的数额是否超过账户里的钱。还要有一个测试类的银行账户类,用来测试我们的程序。
这里我们来说一下,我们必须要保证我们的实体类的纯洁性,也就是我们的实体类只能写一些对于这个实体有具体作用的方法或者属性,至于其他的那些测试方法,我们一般情况下放在测试类里面。
实体类里面:一个double类型的money变量用来保存钱;一个Scanner(Scanner的作用是专门计算机与用户进行交互的);两个方法,一个取款的withdraw(),一个存款的save()。
实体类BankAccount
1.取款的方法withdraw()
根据题意,在取款之前我们要先进行判断,判断账户里是否还有钱,或者是要取款的数额是否大于账户里面的钱。
这里我们就必须要与用户进行交互了,就要把Scanner请过来了,。如果账户里的钱小于零也就是没有钱,那么我们直接输出一句话(余额不足,交易失败),然后直接退出程序,不给你机会。没办法,这个社会就是这么残酷,没钱就是不行,所以还是那句话路漫漫其修远兮,吾将上下而求索,哈哈哈,大家干了这碗鸡汤~~~
if(money<0){
System.out.println("余额不足,交易失败!");
return;
}
取款的钱数我们直接用Scanner去接收一下,叫做 v ,然后直接用money去减去取款的钱数 v
因为我们已经取完钱了,接下来我们要输出一句话(是否退出?(0退出,1存款,2继续取款)),这个我们用也是用Scanner去接收一下,叫做 i ,接下来我们做一个判断,如果我们选择1,那么调用save()方法,如果是2,那么调用withdraw(),如果用户选择0,那么直接输出(欢迎下次光临),然后退出程序。
//取款
public void withdraw(){
if (money<0){
System.out.println("余额不足,交易失败");
return;
}else {
System.out.println("请输入您要取款的数额:");
double v = sc.nextDouble();
if (v>money){
System.out.println("余额不足,交易失败");
}else {
money-=v;
System.out.println("目前账户余额还有:"+money);
}
System.out.println("是否退出?(0退出,1存款,2继续取款)");
int i = sc.nextInt();
if (i==1){
save();
}else if (i==2){
withdraw();
}else {
System.out.println("欢迎下次光临");
return;
}
}
}
2.存款的方法save()
存款的就没有取款那么麻烦了,用Scanner接收用户输入的钱数,还是用 v 表示,然后直接用钱数加上v就好,下面我们还是要进行一个判断,还是让用户选择,接下来的操作,同上。
//存款
public void save(){
System.out.println("请输入您要存款的数额:");
double v = sc.nextDouble();
money+=v;
System.out.println("目前账户余额还有:"+money);
System.out.println("是否退出?(0退出,1继续存款,2取款)");
int i = sc.nextInt();
if (i==1){
save();
}else if (i==2){
withdraw();
}else {
System.out.println("欢迎下次光临");
return;
}
}
测试类TestBankAccount
我们先把实体类里面的东西拿过来BankAccount bankAccount = new BankAccount(),因为我们要让用户去选择进行的操作,所以还是要把Scanner请过来。然后用户选择(0退出,1存款,2取款),如果是1,那么我们调用BankAccount类里面的save()存款方法,如果是2,那么我们调用BankAccount类里面的withdraw()取款方法,如果是0,直接退出程序。
public class TestBankAccout {
public static void main(String[] args) {
BankAccount bankAccount = new BankAccount();
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要进行的操作(0退出,1存款,2取款):");
int i = sc.nextInt();
if (i==1){
bankAccount.save();
}else if (i==2){
bankAccount.withdraw();
}else {
System.out.println("欢迎下次光临");
return;
}
}
}
接下来我们看看具体的运行效果
请输入您要进行的操作(0退出,1存款,2取款):
1
请输入您要存款的数额:
10000
目前账户余额还有:10000.0
是否退出?(0退出,1继续存款,2取款)
1
请输入您要存款的数额:
200
目前账户余额还有:10200.0
是否退出?(0退出,1继续存款,2取款)
2
请输入您要取款的数额:
2000
目前账户余额还有:8200.0
是否退出?(0退出,1存款,2继续取款)
0
欢迎下次光临
关于静态方法与实例方法的调用,小小猿想给大家分享一点自己总结
同一个类中:
类型 | 方式 |
---|---|
静态方法调用静态方法 | 类名.静态方法()类名可以省略 |
静态方法调用实例方法 | 新创建的对象名.实例方法() |
实例方法调用实例方法 | 1.新创建的对象名.实例方法()2.当前对象this.实例方法()this可以省略 |
实例方法调用静态方法 | 类名.静态方法()类名可以省略 |
不同类中:
类型 | 方式 |
---|---|
静态方法调用静态方法 | 类名.静态方法() |
静态方法调用实例方法 | 新创建的对象名.实例方法() |
实例方法调用实例方法 | 新创建的对象名.实例方法() |
实例方法调用静态方法 | 类名.静态方法() |