Java构造方法,封装类,this用法,面向对象思想的综合运用(代码附详细注解)
程序员文章站
2022-04-15 19:05:23
该篇文章纯属原创,有详细注解,适合学过Java se但对构造方法,封装类,和面向对象编程思想理解不够的同学。目前我也还算是新手,正在学数据库,哪里写的不对,还望大佬指出。第一次发表文章,如果觉得有用就点个赞呗。...
Java构造方法,封装类,this用法,面向对象思想的综合运用(代码附详细注解)
package javase;
import java.util.Scanner;
public class Day15 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入姓名:");
String name = s.next();
System.out.printf("欢迎%s到我行办理业务\n",name);
System.out.println("请输入六位数字密码:" );
long code = s.nextLong();
//当密码不是123456时,循环输入
while(code != 123456){
System.out.println("密码错误,请重新输入");
code = s.nextLong();
}
System.out.println("密码正确");
//调用Account类有参构造函数,创建账户对象,实例初始化
//将实参数值传递给Account构造方法中的形参
Account a = new Account("1000",2000,0.0123);
//调用Customer类有参构造方法,创建客户对象,实例初始化,
//其中实例act初始化为Account的新对象a的实例
Customer c = new Customer(name,a);
//输出当前账户信息
System.out.println("您当前余额为" + a.getBalance());
System.out.println("您当前年利率为" + a.getRate());
while(true){
System.out.println("请输入您所需要办理的业务(1存钱;2取钱;选择其他则退出登录):" );
int choice = s.nextInt();
if(choice == 1){
System.out.println("请输入存钱金额:");
//调用客户c的账号a的存钱方法,将输入金额值传递给存钱方法的形参money
c.getAct().deposit(s.nextFloat());
}
else if(choice == 2){
System.out.println("请输入取钱金额:");
//调用客户c的账号a的取钱方法
c.getAct().withdraw(s.nextFloat());
}
else break;
}
}
}
//创建账户类
class Account{
//属性私有化,实现封装
private String id;
private float balance;
private double rate;
//有参构造方法,使用this可实现在相同变量名的前提下,将局部变量的值赋予类变量
public Account(String id, float balance, double rate){
//我的(即类Account的)id等于形参id,我的balance等于形参balance...
this.id = id;
this.balance = balance;
this.rate = rate;
}
//使用set方法对封装类Account进行写入操作
public void setId(String id){
this.id = id;
}
//使用get方法对封装类进行读取操作
public String getId(){
return id;
}
public void setBalance(float balance){
this.balance = balance;
}
public float getBalance(){
return balance;
}
public void setRate(double rate){
this.rate = rate;
}
public double getRate(){
return rate;
}
//创建存钱方法
public void deposit(float money){
this.balance += money;
System.out.println("成功存入" + money);
System.out.println("目前余额为:" + this.balance);
}
//取钱方法
public void withdraw(float money){
this.balance -= money;
if(this.balance < 0){
System.out.println("余额不足,取钱失败");
//取钱失败时,返还所扣减的金额
this.balance += money;
System.out.println("目前余额为:" + this.balance);
}
else{
System.out.println("成功取出:"+ money);
System.out.println("目前余额为:" + this.balance);
}
}
}
//创建客户类
class Customer{
private String name;
private Account act;
public Customer(){
}
//有参构造方法
public Customer(String name, Account act){
this.name = name;
this.act = act;
}
//使用set方法对封装类进行写入
public void setName(String name){
this.name = name ;
}
//使用get方法对封装类进行读取
public String getName(){
return name;
}
public void setAct(Account act){
this.act = act;
}
public Account getAct(){
return act;
}
}
本文地址:https://blog.csdn.net/weixin_42523683/article/details/107892742
上一篇: 静态方法通过反射获取list集合