面向对象基础之银行案例

目录

引语

一、题目需求

二、解决思路

三、代码实现



引语

之前我们总结了面向对象基础内容,那么怎么将理论付诸实践呢?我们通过下面一道案例题来完善巩固一下。


一、题目需求

定义银行账户类Account,有属性:卡号cid,余额balance,所属用户Customer
银行账户类Account有方法:
(1)getInfo(),返回String类型,返回卡的详细信息
(2)取钱方法withdraw(),参数自行设计,如果取钱成功返回true,失败返回false
(3)存钱方法save(),参数自行设计,如果存钱成功返回true,失败返回false
其中Customer类有姓名、身份证号、联系电话、家庭地址等属性
    Customer类有方法say(),返回String类型,返回他的个人信息。
在测试类Bank中创建银行账户类对象和用户类对象,并设置信息,与显示信息

二、解决思路

1.定义银行账户类和客户类,按题目要求即可

2.按要求定义取钱存钱方法,可以使用if语句进行判断

3.在测试类bank中完善代码的提示信息

三、代码实现

取钱方法withdraw()

public boolean withdraw(int to) {

        if (to > balance) {
            return false;
        } else {
            balance = balance - to;
            return true;
        }
    }

主要是要确定取得金额不会大于余额,返回true,并且余额要相应的减去取出金额即可。

同理可以写出save存钱方法

public boolean save(int in) {

        if (in > 0) {
            balance = balance + in;
            return true;
        } else {
            return false;
        }
    }

银行类和客户类

package HomeworkTwo02;

/*
2.定义银行账户类Account,有属性:卡号cid,余额balance,所属用户Customer
银行账户类Account有方法:
(1)getInfo(),返回String类型,返回卡的详细信息
(2)取钱方法withdraw(),参数自行设计,如果取钱成功返回true,失败返回false
(3)存钱方法save(),参数自行设计,如果存钱成功返回true,失败返回false
其中Customer类有姓名、身份证号、联系电话、家庭地址等属性
    Customer类有方法say(),返回String类型,返回他的个人信息。
在测试类Bank中创建银行账户类对象和用户类对象,并设置信息,与显示信息
*/
public class Account {
    //银行账户类Account,有属性:卡号cid,余额balance,所属用户Customer

    private int cid;
    private double balance;
    private Customer customer;

    //空参构造
    public Account() {

    }

    //有参构造
    public Account(int cid, double balance, Customer customer) {
        this.cid = cid;
        this.balance = balance;
        this.customer = customer;
    }

    public void setCid(int cid) {
        this.cid = cid;
    }

    public int getCid() {
        return cid;
    }

    public void setBalance(double balance) {
        this.balance = balance;
    }

    public double getBalance() {
        return balance;
    }

    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

    //银行账户类Account有方法:
    //1)getInfo(),返回String类型,返回卡的详细信息
    public void getInfo() {
        System.out.println("卡号:" + cid + "\n余额:" + balance + "\n所属用户:" + customer.getName());
    }

    //(2)取钱方法withdraw(),参数自行设计,如果取钱成功返回true,失败返回false
    public boolean withdraw(int to) {

        if (to > balance) {
            return false;
        } else {
            balance = balance - to;
            return true;
        }
    }

    //(3)存钱方法save(),参数自行设计,如果存钱成功返回true,失败返回false
    public boolean save(int in) {

        if (in > 0) {
            balance = balance + in;
            return true;
        } else {
            return false;
        }
    }

}

class Customer {
    //其中Customer类有姓名、身份证号、联系电话、家庭地址等属性
    private String name;
    private int id;
    private int phone;
    private String address;

    //空参构造
    public Customer() {

    }

    //有参构造
    public Customer(String name, int id, int phone, String address) {
        this.name = name;
        this.id = id;
        this.phone = phone;
        this.address = address;
    }

    //set,get
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }

    public void setPhone(int phone) {
        this.phone = phone;
    }

    public int getPhone() {
        return phone;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    //    Customer类有方法say(),返回String类型,返回他的个人信息。
    public void say() {
        System.out.println("姓名:" + name + "\n卡号:" + String.valueOf(id)
                + "\n练习电话:" + String.valueOf(phone) + "\n家庭住址:" + address);
    }
}

最后再写好bank测试类

package HomeworkTwo02;

public class Bank {
    public static void main(String[] args) {
        //在测试类Bank中创建银行账户类对象和用户类对象,并设置信息 与显示信息
        Account a = new Account(100001,5000.0,null);
        Customer c = new Customer("张三",11223345,1456789,"新福村");
        a.setCustomer(c);
        a.getInfo();
        c.say();
        System.out.println("-------------");
       if( a.save(150) == true) {
           System.out.println("存钱成功!");
           System.out.println("余额:" + a.getBalance() );
       }else {
           System.out.println("存款失败");
       }
        System.out.println("-------------");
        if(a.withdraw(50000) == true) {
            System.out.println("取钱成功!");
            System.out.println("余额:" + a.getBalance() );
        }else {
            System.out.println("取款失败");
        }
    }
}

输出结果

卡号:100001
余额:5000.0
所属用户:张三
姓名:张三
卡号:11223345
练习电话:1456789
家庭住址:新福村
-------------
存钱成功!
余额:5150.0
-------------
取款失败

好了,这就是今天这个题目的解析,最后给大家放一个圆柱问题,做题过程都是差不多的,只是我们需要用面向对象编程的思想去完成他,感谢大家的观看!

package HomeworkTwo03;
/*(1)声明一个圆柱体类型,
        (2)声明属性:底边的半径,和高
        (3)声明方法:
        A:方法的功能:在方法中打印圆柱体的详细信息
        圆柱体的底边的半径是xxx,高是xxx,底面积是xxx,体积是xxx。
        B:方法的功能:返回底面积
        C:方法的功能:返回体积
        D:方法的功能:为圆柱体的底边的半径,和高赋值
        E:方法的功能:为圆柱体的底边的半径,和高赋值,并返回赋值的结果
        如果底边的半径或高为<=0,赋值失败,返回false,否则返回true
        (4)并测试*/
public class Round {
//(2)声明属性:底边的半径,和高
    private double radius;
    private double high;
    //空参构造
    public Round() {

    }
    public Round(double radius,double high) {
        this.radius = radius;
        this.high = high;
    }
    //set get
    public void setRadius(double radius) {
        this.radius = radius;
    }
    public double getRadius() {
        return radius;
    }
    public void setHigh(double high) {
        this.high = high ;

    }
    public double getHigh() {
        return high;
    }
    //方法的功能:在方法中打印圆柱体的详细信息
    public void getInfo() {
        System.out.println("半径:" + radius + "\n高:" + high);
    }
//    方法的功能:返回底面积
    public void getFloorSpace() {
        double fl = 2 * 3.14 *(radius * radius);
        System.out.println("圆柱底面积:" + fl);
    }
//    方法的功能:返回体积
    public void getVolume() {
        double vo =  2 * 3.14 *(radius * radius)* high;
        System.out.println("圆柱体积:" + vo);
    }
//    方法的功能:为圆柱体的底边的半径,和高赋值,并返回赋值的结果
//        如果底边的半径或高为<=0,赋值失败,返回false,否则返回true
    public boolean setRadiusBack(double ra) {
        if(ra <= 0) {
            return false;
        }else {
            radius = ra;
            return true;
        }

    }
    public boolean setHighBack(double hi) {
        if(hi<=0) {
            return false;
        }else {
            high = hi;
            return true;
        }
    }
}
package HomeworkTwo03;

public class RoundTest {
    public static void main(String[] args) {
        Round r = new Round(5,3);
        r.getFloorSpace();
        r.getVolume();
        r.getInfo();
        System.out.println("----------");
        if(r.setRadiusBack(15) == true) {
            System.out.println("圆柱底面半径设置成功!" + "\n现在半径为:" + r.getRadius());
        }else{
            System.out.println("圆柱底面半径设置失败!");
        }
        System.out.println("----------");
        if(r.setHighBack(-3) == true) {
            System.out.println("圆柱高设置成功!" + "\n现在高为:" + r.getRadius());
        }else{
            System.out.println("圆柱高设置失败!");
        }
    }
}

输出结果

圆柱底面积:157.0
圆柱体积:471.0
半径:5.0
高:3.0
----------
圆柱底面半径设置成功!
现在半径为:15.0
----------
圆柱高设置失败!

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/ww166955/article/details/119785445
今日推荐