Java this关键字

用Account(账户)、Customer(客户)、Bank(银行)、BankTest(测试)四个类程序:

讲述Java面向对象编程中this关键字、构造器、对象数组、方法调用等相互结合的使用
本人以前的文章已经涉及过构造器、对象数组及方法调用的相关知识,这里讲述一下this关键字的使用:

this关键字是用来调用属性、方法 、构造器
(1)它在方法内部使用 -->当前对象
(2)它在构造器内部使用 -->当前正在创建的对象
我们用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");
        }
    }
}

在这里插入图片描述

    Java越往后面学就越注重代码本身的逻辑性,其实Java中的每个概念和方法的使用并不是那么枯燥难懂,主要搞清楚其本质的思想,编程本身不困难。 希望能够继续努力把java学好学扎实,和各位正在学习java的小伙伴一同共勉,我也会努力地每次做好自己的java学习的一些小笔记与大家一起分享,希望能够跟大家一起交流,更向更多优秀的博主榜样们学习!!!
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fish_Vast

您的打赏是对我最大的支持!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值