面向对象学习笔记15 - 关键词this

this

this的意思

this是指当前正在创建的对象,可以调成员变量、方法、构造器

示例

class Person{
    String name;
    int age;
    public void setAge(int age){
        this.age = age
    }
}

一般我们通过对象a调用方法,可以在方法内调用当前对象a的属性或其他方法。
此时,我们可以在属性和其他方法前使用"this.",表示当前属性或方法所属的对象a。
但是,一般情况下,我们都选择省略此"this."结构。

如果方法的形参与对象的属性同名了,我们必须使用"this."进行区分。
使用this.修饰的变量即为属性(或成员变量),没有使用this.修饰的变量,即为局部变量。

this();结构的使用

public User(){
}

public User(String name){
    this();
    this.name = name;
}

public User(String name,int age){
    this(name);
    this.age = age;
}

this();在使用时要放在当前结构体的首行

this课后练习

public class Account{
    private double balance;//余额
    public Account(double init_balance){
        this.balance = init_balance;
    }
    public double getBalance(){
        return balance;
    }
    //存钱
    public void deposit(double amt){
        if(amt > 0){
            balance += amt;
            System.out.println("成功存入:" + amt);
        }
    }
    public void withdraw(double amt){
        if(balance >= amt && amt > 0){
            balance -= amt;
            System.out.println("成功取出” + amt);
        }else{
            System.out.println("取款数额有误或余额不足");
        }
    }
}
public class Customer{
    private String firstName;//名
    private String lastName;//姓
    private Account account;//账户
    public Customer(String firstName,String lastName){
        this.firstName = firstName;
        this.lastName = lastName;
    }
    public String getFirstName(){
        return firstName;
    }
    public void setFirstName(String firstName){
        this.firstName = firstName;
    }

    public String getLastName(){
        return lastName;
    }
    public void setLastName(String lastName){
        this.lastName = lastName;
    }
}
public class Bank{
    private Customaer[] customers;//用于保存多个客户
    private int numberOfCustomer;//用于记录存储的客户数
    public Bank(){
    customers = new Customer[10];
    }
    /**
      *将指定姓名的客户保存在银行的客户列表中
      *@param f 名
      *@param l 姓
      */
    public void addCustomer(String f,String l){
        Customer cust = new Customer(f,l);
        customer[numberOfCustomer] = cust;
        numberOfCustomer++;
    }
    public int getNumberOfCustomers(){
        return numberOfCustomer;
    }
    /**
      *获取指定索引位置上的客户
      *@param index
      *@return
      */
    public Customer getCustomer(int index){
        if(index < 0||index >= numberOfCustomer){
            return null;
        }else{
            return customers[index];
        }
    }
}
public class BankTest{
    public static void main(String[] args){
        Bank bank = new Bank();
        bank.addCustomer("操","曹");
        bank.addCustomer("备","刘");
        bank.getCustomer(0).setAccount(new Account(1000));
        bank.getCustomer(0).getAccount().withdraw(50);
        System.out.println("账户余额为" + bank.getCustomer(0).getAccount().getBalance);
    }
}
posted @ 2025-05-05 08:46  谁来着?  阅读(17)  评论(0)    收藏  举报