当前位置 博文首页 > YHSevenWater的博客:Java this关键字

    YHSevenWater的博客:Java this关键字

    作者:[db:作者] 时间:2021-08-11 16:05

    用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学习的一些小笔记与大家一起分享,希望能够跟大家一起交流,更向更多优秀的博主榜样们学习!!!

    cs