Я новичок в программировании, это одна из наших первых объектно-ориентированных программ, которые мы делаем в классе. Я чувствую, что использовал «это». больше, чем мне нужно, но моя программа работает правильно, и я получаю правильный вывод. Могу ли я вернуть переменную без использования этого? Я думаю, мой вопрос: this.variablename ссылается на переменную параметра или поле данных, объявленное в начале моего класса?Я правильно использовал это ключевое слово в своем классе?
import java.util.Date;
public class Account{
private int id = 0;
private double balance = 0;
private static double annualInterestRate = 0.00;
private Date dateCreated;
public Account(){}
public Account(int id, double balance){
this.id = id;
this.balance = balance;
}
public int getId(){
return this.id;
}
public void setId(int id){
this.id = id;
}
public double getBalance(){
return this.balance;
}
public void setBalance(double balance){
this.balance = balance;
}
public double getAnnualInterestRate(){
return this.annualInterestRate;
}
public void setAnnualInterestRate(double annualInterestRate){
this.annualInterestRate = annualInterestRate;
}
public Date getDateCreated(){
return this.dateCreated = new Date();
}
public double getMonthlyInterestRate(){
return (this.annualInterestRate/12);
}
public double getMonthlyInterest(){
return ((this.annualInterestRate/100)/12) * this.balance;
}
public void withdraw(double amount){
this.balance -= amount;
}
public void deposit(double amount){
this.balance += amount;
}
}
Вот мой основной метод и тест класс:
public class AccountTest{
public static void main(String[] args){
Account myObject = new Account(112233, 20000.00);
myObject.setAnnualInterestRate(4.5);
myObject.withdraw(2500.00);
myObject.deposit(3000.00);
System.out.printf("The account balance is $%,.2f.", myObject.getBalance());
System.out.printf("\nThe monthly interest is $%,.2f.", myObject.getMonthlyInterest());
System.out.print("\nThe account was created at " + myObject.getDateCreated());
}
}
Что произошло, когда вы попробовали? То, что, по вашему мнению, может быть ошибочным в использовании вами этого? –
this.somevariable относится к члену экземпляра класса. – bhspencer
'private static double annualInterestRate = 0.00;' <- static там не так, FWIW. Он будет «работать» (как в, компилировать), но вызывать причудливое поведение, когда для разных экземпляров задается другая процентная ставка. См. Http://stackoverflow.com/questions/11579953/static-fields-on-a-null-reference-in-java за то, почему это разрешено, хотя и запутанно. – user2864740