Я пытаюсь сделать так, чтобы консоль печатала «пустой конструктор с именем» для каждого пустого конструктора класса с параметрами по умолчанию и «конструктор с параметрами с именем» для каждого конструктора класса, содержащего указанные параметры.Как вы можете видеть в классе Main, myAccount и yourAccount являются пустыми конструкторами, и только у johnnysAccount есть указанные параметры.
Вот мой класс Main.
public class Main {
public static void main(String[] args) {
BankAccount myAccount = new BankAccount();
BankAccount yourAccount = new BankAccount();
BankAccount johnnysAccount = new BankAccount("Mr. Appleseed", 533333202258L,
8121283434L, "jappleseed@applecorp.co", 470.45);
}
}
Как вы можете видеть вКласс BankAccount, консоль должна выводить другое сообщение для пустых конструкторов с параметрами по умолчанию, чем для конструкторов с указанными параметрами.
Вот мой класс BankAccount.
public class BankAccount {
private String customer;
private long number;
private long telephone;
private String email;
private double balance;
private boolean emptyConstructor;
public BankAccount() {
this("Nobody", 111111111111L, 18008888888L, "email@email.com", 0.00);
emptyConstructor = true;
System.out.println(emptyConstructor);
if(emptyConstructor) {
System.out.println("Empty constructor called.");
}
}
public BankAccount (String customer, long number, long telephone, String email, double balance) {
this.customer = customer;
this.number = number;
this.telephone = telephone;
this.email = email;
this.balance = balance;
emptyConstructor = false;
System.out.println(emptyConstructor);
if(!emptyConstructor) {
System.out.println("Constructor with parameters called.");
}
}
}
Это мой вывод.
false
Constructor with parameters called.
true
Empty constructor called.
false
Constructor with parameters called.
true
Empty constructor called.
false
Constructor with parameters called.
Как и ожидалось, emptyConstructor оценивается как false и выводит конструктор с параметрами, называемыми "для johnnysAccount, в последних двух строках вывода.Однако оказывается, что для двух пустых конструкторов myAccount и yourAccount emptyConstructor оценивается как false, а затем true, печатая оба сообщения.Я могу получить желаемый результат, только если закомментирую
this("Nobody", 111111111111L, 18008888888L, "email@email.com", 0.00);
Однако я бы предпочел оставить параметры по умолчанию на месте.Есть ли другой способ, которым я могу сделать так, чтобы emptyConstructor вычислял только значение true и печатал только сообщение «пустой конструктор с именем» для пустых конструкторов с параметрами по умолчанию?