面向对象学习笔记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);
}
}

浙公网安备 33010602011771号