当前位置 博文首页 > YHSevenWater的博客:Java this关键字
讲述Java面向对象编程中this关键字、构造器、对象数组、方法调用等相互结合的使用
本人以前的文章已经涉及过构造器、对象数组及方法调用的相关知识,这里讲述一下this关键字的使用:
package com.java.oop2;
/**
* @ClassName Account
* @Description: 账户类
* @Author Seven
* @Date 2021/7/28 14:39
* @Version 1.0
**/
public class Account {
private double balance; //余额
public Account(double balance) { //定义构造器,为balance赋初始值
this.balance = balance;
}
public double getBalance() { //获得余额
return balance;
}
public void setBalance(double balance) { //设置余额
this.balance = balance;
}
public void withdraw(double money){ //取款操作
if(this.balance - money < 0){
System.out.println("取款失败,余额不足!当前余额为:"+this.balance);
}else{
this.balance -= money;
System.out.println("取款成功,取款金额为:"+money+"当前余额剩余:"+this.balance);
}
}
public void deposit(double money){ //存款操作
if(money >0){
this.balance += money;
System.out.println("存款成功,存款金额为:"+money+"当前金额为:"+this.balance);
}
}
}
package com.java.oop2;
/**
* @ClassName Customer
* @Description: 客户类
* @Author Seven
* @Date 2021/7/28 14:39
* @Version 1.0
**/
public class Customer {
private String name; //姓名
private Account account; //账户(Account类型)
public Customer(String name) { //定义构造器,因为Account类型的数据已经在Account类中已经有了构造器,在此只给name定义赋初值。
this.name = name;
}
public String getName() { //获得姓名
return name;
}
public Account getAccount() { //获得客户账户
return account;
}
public void setAccount(Account account) { //设置客户账户
this.account = account;
}
}
package com.java.oop2;
/**
* @ClassName Bank
* @Description: 银行类
* @Author Seven
* @Date 2021/7/28 14:39
* @Version 1.0
**/
public class Bank {
private Customer [] customers; //客户对象数组
private int numberOfCustomers; //客户个数
public Bank(){
customers = new Customer[10]; //需要先对象数组初始化,否则后面会出现空指针报错。
}
public Customer getCustomers(int number) { //获得银行客户信息
if(number >= 0 && number < numberOfCustomers){ //这样判断更为合适
return customers[number]; //返回的是数组,不是单一的数据值
}else{
return null;
}
}
public int getNumberOfCustomers() { //获得银行客户的个数
return numberOfCustomers;
}
public void setNumberOfCustomers(int numberOfCustomers) { //设置银行客户的个数
this.numberOfCustomers = numberOfCustomers;
}
public void addCustomers(String name){ //添加银行客户的方法
//一个类访问另外一个类,先new对象再调用另外类的属性或者方法
customers[numberOfCustomers] = new Customer(name);
numberOfCustomers++;
}
}
package com.java.oop2;
/**
* @ClassName BankTest
* @Description: 测试类
* @Author Seven
* @Date 2021/7/28 15:14
* @Version 1.0
**/
public class BankTest {
public static void main(String[] args) {
Bank bank = new Bank(); //new出Bank的对象,通过bank调用其中的方法和属性。
bank.addCustomers("刘亦菲"); //先添加银行客户
bank.getCustomers(0).setAccount(new Account(0)); //账户余额赋初始值
bank.getCustomers(0).getAccount().deposit(50000); //账户存款
bank.getCustomers(0).getAccount().withdraw(2000); //客户取款
bank.addCustomers("刘诗诗");
bank.addCustomers("刘涛");
System.out.println("银行客户有:"+bank.getNumberOfCustomers()+"个");
System.out.println("她们分别是:");
for (int i = 0; i < bank.getNumberOfCustomers(); i++) {
System.out.print(bank.getCustomers(i).getName()+"\t");
}
}
}