目录
引语
之前我们总结了面向对象基础内容,那么怎么将理论付诸实践呢?我们通过下面一道案例题来完善巩固一下。
一、题目需求
定义银行账户类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