JAVA 构造方法和get,set方法的区别与联

您所在的位置:网站首页 java里的get和set JAVA 构造方法和get,set方法的区别与联

JAVA 构造方法和get,set方法的区别与联

2023-09-13 23:46| 来源: 网络整理| 查看: 265

联系: 都可以给对象赋值,都可以访问private私有属性 区别: 构造方法是一次性用品,是初始化对象的时候调用的,而get/set方法则可以多次修改对象的属性构造方法赋值的时候可以不加引用,如:new 类名( , , , ,),直接可以开辟空间,而get/set方法必须要有引用最终要的一点是在属性私有化的时候,setget方法可以实现从外部类对属性的访问

今天,我们就来做个关于构造方法和set,get方法的综合练习

题目:1、写一个名为Account的类模拟账户。该类的属性和方法如下图所示。该类包括的属性:账号id,余额balance,年利率annualInterestRate;包含的方法:访问器方法(getter和setter方法),取款方法withdraw(),存款方法deposit(),创建Account类的一个子类CheckAccount代表可透支的账户,该账户中定义一个属性overdraft代表可透支限额。在CheckAccount类中重写withdraw方法,其算法如下: 如果(取款金额账户余额), 计算需要透支的额度 判断可透支额overdraft是否足够支付本次透支需要,如果可以 将账户余额修改为0,冲减可透支金额 如果不可以 提示用户超过可透支额的限额

要求:写一个用户程序测试CheckAccount类。在用户程序中,创建一个账号为1122、余额为20000、年利率4.5%,可透支限额为5000元的CheckAccount对象。 使用withdraw方法提款5000元,并打印账户余额和可透支额。 再使用withdraw方法提款18000元,并打印账户余额和可透支额。

上代码:

public class Account { private String id; private double balance; private double annualIntersetRate; // 为属性设置get/set方法 public String getId() { return id; } public double getBalance() { return balance; } public double getAnnualIntersetRate() { return annualIntersetRate; } public void setId(String id) { this.id = id; } public void setBalance(double balance) { this.balance = balance; } public void setAnnualIntersetRate(double annualIntersetRate) { this.annualIntersetRate = annualIntersetRate; } // 设置构造器 public Account(String id, double balance, double annualIntersetRate) { this.id = id; this.balance = balance; this.annualIntersetRate = annualIntersetRate; } public Account() { } // 设置取钱方法 public void withdraw(double money) { if (money System.out.println("您的余额不足"); } } // 设置存钱的方法 public void deposit(double money) { this.balance = this.balance + money; System.out.println("存钱成功,您的余额: " + this.balance); } } public class CheckAcount extends Account { private double overdraft; // 重写父类方法 @Override public void withdraw(double money) { if ( money > getBalance() + this.overdraft) { System.out.println("对不起,您的透支余额不足"); } else if (money this.setOverdraft(getOverdraft() - (money - getBalance())); super.setBalance(0); System.out.println("您的余额为 " + super.getBalance() + "您的透支余额: " + this.getOverdraft()); } } // 利息的get,set方法 public void setOverdraft(double overdraft) { this.overdraft = overdraft; } public double getOverdraft() { return overdraft; } // 子类构造方法 public CheckAcount(String id, double balance, double annualIntersetRate, double overdraft) { super(id, balance, annualIntersetRate); this.overdraft = overdraft; } } public class AccountTest { public static void main(String[] args) { CheckAcount a = new CheckAcount("1122",20000,0.045,5000); //构造方法通过set方法赋值 System.out.println("ID: " + a.getId() + "余额:" + a.getBalance() + "年利率:" + a.getAnnualIntersetRate() + " 可透支: " + a.getOverdraft()); a.withdraw(5000); a.withdraw(16000); a.withdraw(10000); } }

结果图:在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3