个人空间网站模板,珠海百度seo公司,做网站的疑问有哪些,c2c网站代表目录
一、this关键字的基本理解
二、this调用属性和方法
#xff08;一#xff09;一般情况
#xff08;二#xff09;特殊情况
三、this调用构造器
四、案例分析
#xff08;一#xff09;Account类
#xff08;二#xff09;Customer类
#xff08;三…目录
一、this关键字的基本理解
二、this调用属性和方法
一一般情况
二特殊情况
三、this调用构造器
四、案例分析
一Account类
二Customer类
三Bank类
四BankTest测试类 一、this关键字的基本理解
当前对象在方法中在非静态方法中this代表当前正在调用该方法的对象。通过this我们可以访问当前对象的属性和其他方法。当前正在创建的对象在构造器中在构造器中this代表正在被创建的对象。可以使用this在构造器中调用其他构造器进行构造器的链式调用。
二、this调用属性和方法
一一般情况
在非静态方法内当方法的形参与对象的属性不同名时我们通过对象调用方法可以直接在方法内调用当前对象的属性或其他方法此时即便不使用this也能明确区分是当前对象的属性和方法。一般情况下我们都选择省略this结构代码更加简洁。
二特殊情况
当方法的形参与对象的属性同名时为了区分这两个变量我们可以使用this修饰的变量表示属性没有用this修饰的表示形参局部变量。
例如在以下代码中
public class Customer {private String firstName;private String lastName;public Customer(String f, String l) {this.firstName f; // 名使用 this 区分属性和形参this.lastName l; // 姓使用 this 区分属性和形参}
}三、this调用构造器
我们可以在类的构造器中使用this(形参列表)的方式调用当前类中指定的其他构造器。要求this(形参列表)必须声明在当前构造器的首行并且一个类中声明了n个构造器则最多有n - 1个构造器可以声明this(形参列表)的结构。
public class Account {private double balance;public Account() {}public Account(double init_balance) {this.balance init_balance;}
}四、案例分析
以下是一个包含Account类、Customer类、Bank类以及BankTest测试类的案例通过银行管理客户和账户的场景来展示this的用法。
一Account类
该类表示账户包含余额属性balance以及存款deposit和取款withdraw方法。
public class Account {private double balance;public Account() {}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(取款金额有误余额不足);}}
}二Customer类
表示客户包含名firstName、姓lastName和账户account属性以及相应的 getter 和 setter 方法。
public class Customer {private String firstName;private String lastName;private Account account;public Customer(String f, String l) {this.firstName f;this.lastName l;}public String getFirstName() {return firstName;}public String getLastName() {return lastName;}public Account getAccount() {return account;}public void setAccount(Account acct) {this.account acct;}
}三Bank类
表示银行包含用于保存多个客户的数组customers和记录存储的客户个数的变量numberOfCustomer。提供了添加客户addCustomer、获取客户个数getNumOfCustomers和获取指定索引位置客户getCustomer的方法。
public class Bank {private Customer[] customers;private int numberOfCustomer;public Bank() {customers new Customer[10];}public void addCustomer(String f, String l) {Customer cust new Customer(f, l);customers[numberOfCustomer] cust;numberOfCustomer;}public int getNumOfCustomers() {return numberOfCustomer;}public Customer getCustomer(int index) {if (index 0 || index numberOfCustomer) {return null;} else {return customers[index];}}
}四BankTest测试类
在main方法中创建了一个银行对象添加了两个客户为第一个客户设置了账户并进行了取款和存款操作最后输出第一个客户的账户余额。
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);bank.getCustomer(0).getAccount().deposit(100);System.out.println(账户余额为 bank.getCustomer(0).getAccount().getBalance());}
}在这个案例中Customer类的构造器中使用了this来区分形参和属性。同时在BankTest测试类中通过对象调用方法时虽然没有显式使用this但实际上也是在操作当前对象的属性和方法。
通过这个案例我们可以更深入地理解this关键字在 Java 编程中的重要性和实际应用。它能够帮助我们更好地管理对象的属性和方法提高代码的可读性和可维护性。