import java.math.BigDecimal;
import java.time.LocalDateTime;
public class BankAccount {
String name;
LocalDateTime opened;
BigDecimal balance;
@Override
public String toString() {
return """
Имя: %s
Дата создания: %s
Баланс: %s
""".formatted(name, opened.toString(), balance);
}
}
public class Main {
public static void main(String[] args) {
BankAccount account = new BankAccount();
System.out.println(account);
}
}
BankAccount account = new BankAccount();
import java.math.BigDecimal;
import java.time.LocalDateTime;
public class BankAccount {
String name;
LocalDateTime opened;
BigDecimal balance;
public BankAccount() {
name = "unknown";
opened = LocalDateTime.now();
balance = BigDecimal.ZERO;
}
@Override
public String toString() {
// без изменений
}
}
Имя: unknown
Дата создания: 2025-10-14T11:02:52.244236800
Баланс: 0
// ❌ Не метод, поскольку не указан тип возвращаемого значения
// и не конструктор, поскольку имя указано с маленькой буквы
public bankAccount() { }
// ❌ Это не конструктор, а метод, поскольку указан возвращаемый тип
public void BankAccount() { }
import java.math.BigDecimal;
import java.time.LocalDateTime;
public class BankAccount {
String name;
LocalDateTime opened;
BigDecimal balance;
public BankAccount() {
// без изменений
}
public BankAccount(String name, LocalDateTime opened, BigDecimal balance) {
System.out.println("Параметризованный конструктор:");
this.name = name;
this.opened = opened;
this.balance = balance;
}
@Override
public String toString() {
// без изменений
}
}
public static void main(String[] args) {
BankAccount account1 = new BankAccount();
System.out.println(account1);
LocalDateTime opened = LocalDateTime.of(1986, 5, 30, 4, 30);
BankAccount account2 = new BankAccount("Max", opened, new BigDecimal("123.0"));
System.out.println(account2);
}
Конструктор без аргументов:
Имя: unknown
Дата создания: 2025-10-15T11:39:43.423807800
Баланс: 0
Параметризованный конструктор:
Имя: Max
Дата создания: 1986-05-30T04:30
Баланс: 123.0
// ❌ менее предпочтительно
BankAccount account = new BankAccount();
account.setName("Max");
account.setOpened(LocalDateTime.now());
account.setBalance(new BigDecimal("1000.0"));
// ✅ более надежно
BankAccount account = new BankAccount("Max", LocalDateTime.now(), new BigDecimal("1000.0"));
public BankAccount(String name, LocalDateTime opened, BigDecimal balance) {
// Проверка параметров на корректность
if (name == null || name.trim().isBlank()) {
throw new IllegalArgumentException("Имя не может быть пустым");
}
if (balance.compareTo(BigDecimal.ZERO) < 0) {
throw new IllegalArgumentException("Баланс не может быть отрицательным");
}
this.name = name;
this.opened = opened;
this.balance = balance;
}
public class BankAccount {
String name;
LocalDateTime opened;
BigDecimal balance;
public BankAccount(String name, LocalDateTime opened, BigDecimal balance) {
this.name = name;
this.opened = opened;
this.balance = balance;
}
}
public static void main(String[] args) {
BankAccount account = new BankAccount();
}
import java.math.BigDecimal;
import java.time.LocalDateTime;
public class BankAccount {
String name;
LocalDateTime opened;
BigDecimal balance;
public BankAccount() {
// без изменений
}
public BankAccount(BankAccount account) {
System.out.println("Конструктор копирования:");
name = account.name;
opened = LocalDateTime.now();
balance = BigDecimal.ZERO;
}
public BankAccount(String name, LocalDateTime opened, BigDecimal balance) {
// без изменений
}
@Override
public String toString() {
// без изменений
}
}
public static void main(String[] args) {
BankAccount account1 = new BankAccount();
System.out.println(account1);
LocalDateTime opened = LocalDateTime.of(1986, 5, 30, 4, 30);
BankAccount account2 = new BankAccount("Max", opened, new BigDecimal("123.0"));
System.out.println(account2);
BankAccount account3 = new BankAccount(account2);
System.out.println(account3);
}
Конструктор без аргументов:
Имя: unknown
Дата создания: 2025-10-15T16:52:51.938440600
Баланс: 0
Параметризованный конструктор:
Имя: Max
Дата создания: 1986-05-30T04:30
Баланс: 123.0
Конструктор копирования:
Имя: Max
Дата создания: 2025-10-15T16:52:51.952046700
Баланс: 0
public class Customer {
String name;
public Customer(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}
import java.math.BigDecimal;
import java.time.LocalDateTime;
public class BankAccount {
Customer customer;
LocalDateTime opened;
BigDecimal balance;
public BankAccount() {
System.out.println("1. Конструктор без аргументов:");
customer = new Customer("unknown");
opened = LocalDateTime.now();
balance = BigDecimal.ZERO;
}
public BankAccount(BankAccount account) {
System.out.println("2. Конструктор копирования (поверхностное):");
customer = account.customer;
opened = LocalDateTime.now();
balance = BigDecimal.ZERO;
}
public BankAccount(Customer customer, LocalDateTime opened, BigDecimal balance) {
System.out.println("3. Параметризованный конструктор:");
this.customer = customer;
this.opened = opened;
this.balance = balance;
}
@Override
public String toString() {
return """
Имя: %s
Дата создания: %s
Баланс: %s
""".formatted(customer, opened, balance);
}
}
public static void main(String[] args) {
BankAccount account1 = new BankAccount();
System.out.println(account1);
LocalDateTime opened = LocalDateTime.of(1986, 5, 30, 4, 30);
Customer customer = new Customer("Max");
BankAccount account2 = new BankAccount(customer, opened, new BigDecimal("123.0"));
System.out.println(account2);
BankAccount account3 = new BankAccount(account2);
System.out.println(account3);
// Изменяем имя в account2
account2.customer.name = "ch1max";
System.out.println("Вывод имени после его изменения в account2:");
System.out.println("Имя владельца account2: " + account2.customer.name);
System.out.println("Имя владельца account3: " + account3.customer.name);
}
1. Конструктор без аргументов:
Имя: unknown
Дата создания: 2025-10-21T09:30:00.043552400
Баланс: 0
3. Параметризованный конструктор:
Имя: Max
Дата создания: 1986-05-30T04:30
Баланс: 123.0
2. Конструктор копирования (поверхностное):
Имя: Max
Дата создания: 2025-10-21T09:30:00.061132800
Баланс: 0
Вывод имени после его изменения в account2:
Имя владельца account2: ch1max
Имя владельца account3: ch1max
import java.math.BigDecimal;
import java.time.LocalDateTime;
public class BankAccount {
Customer customer;
LocalDateTime opened;
BigDecimal balance;
public BankAccount() {
// без изменений
}
public BankAccount(BankAccount account) {
System.out.println("2. Конструктор копирования (глубокое):");
customer = new Customer(account.customer.name);
opened = LocalDateTime.now();
balance = BigDecimal.ZERO;
}
public BankAccount(Customer customer, LocalDateTime opened, BigDecimal balance) {
// без изменений
}
@Override
public String toString() {
// без изменений
}
}
1. Конструктор без аргументов:
Имя: unknown
Дата создания: 2025-10-21T14:42:45.169857500
Баланс: 0
3. Параметризованный конструктор:
Имя: Max
Дата создания: 1986-05-30T04:30
Баланс: 123.0
2. Конструктор копирования (глубокое):
Имя: Max
Дата создания: 2025-10-21T14:42:45.190725400
Баланс: 0
Вывод имени после его изменения в account2:
Имя владельца account2: ch1max
Имя владельца account3: Max
import java.math.BigDecimal;
import java.time.LocalDateTime;
public class BankAccount {
Customer customer;
LocalDateTime opened;
BigDecimal balance;
public BankAccount() {
this(new Customer("unknown"), LocalDateTime.now(), BigDecimal.ZERO);
System.out.println("1. Конструктор без аргументов:");
}
public BankAccount(BankAccount account) {
this(new Customer(account.customer.name), LocalDateTime.now(), BigDecimal.ZERO);
System.out.println("2. Конструктор копирования (глубокое):");
}
public BankAccount(Customer customer, LocalDateTime opened, BigDecimal balance) {
System.out.println("3. Параметризованный конструктор:");
this.customer = customer;
this.opened = opened;
this.balance = balance;
}
@Override
public String toString() {
// без изменений
}
}
3. Параметризованный конструктор:
1. Конструктор без аргументов:
Имя: unknown
Дата создания: 2025-10-22T08:31:24.343765500
Баланс: 0
3. Параметризованный конструктор:
Имя: Max
Дата создания: 1986-05-30T04:30
Баланс: 123.0
3. Параметризованный конструктор:
2. Конструктор копирования (глубокое):
Имя: Max
Дата создания: 2025-10-22T08:31:24.376813900
Баланс: 0
Вывод имени после его изменения в account2:
Имя владельца account2: ch1max
Имя владельца account3: Max
import java.time.LocalDateTime;
public class VipBankAccount extends BankAccount {
String status;
public VipBankAccount(String name, String status) {
super(name, LocalDateTime.now(), 0.0f);
this.status = status;
}
@Override
public String toString() {
return String.format("Имя: %s \nДата создания: %s \nБаланс: %f \nСтатус: %s",
name, opened.toString(), balance, status);
}
}
public class Main {
public static void main(String[] args) {
VipBankAccount vipAccount = new VipBankAccount("Thomas", "VIP");
System.out.println(vipAccount);
}
}
import java.time.LocalDateTime;
public class Transaction {
final BankAccount bankAccount;
final LocalDateTime date;
final double amount;
/*
Код ниже приведет к ошибке компиляции, если переменная amount будет final
public Transaction(BankAccount account, LocalDateTime date) {
this.bankAccount = account;
this.date = date;
}
*/
public Transaction(BankAccount account, LocalDateTime date, double amount) {
this.bankAccount = account;
this.date = date;
this.amount = amount;
}
@Override
public String toString() {
return String.format("Проведена транзакция на сумму - %s, \n\nС банковского счета 17: - %s. \n\nДата и время транзакции: %s", amount, bankAccount, date.toString());
}
}
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
LocalDateTime actionDate = LocalDateTime.now();
BankAccount account = new BankAccount("Tom");
Transaction transaction = new Transaction(account, actionDate, 1234);
System.out.println(transaction);
}
}
import java.time.LocalDateTime;
public class BankAccount {
String name;
LocalDateTime opened;
double balance;
BankAccount() {
name = "";
opened = LocalDateTime.now();
balance = 0.0d;
}
BankAccount(String name) {
this.name = name;
}
BankAccount(String name, LocalDateTime opened) {
this.name = name;
this.opened = opened;
}
BankAccount(String name, LocalDateTime opened, double balance) {
this.name = name;
this.opened = opened;
this.balance = balance;
}
}
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
LocalDateTime actionDate = LocalDateTime.now();
BankAccount bankAccount1 = new BankAccount();
BankAccount bankAccount2 = new BankAccount("Tom");
BankAccount bankAccount3 = new BankAccount("Tom", actionDate);
BankAccount bankAccount4 = new BankAccount("Tom", actionDate, 0.0);
}
}
import java.time.LocalDateTime;
public class BankAccount {
String name;
LocalDateTime opened;
double balance;
BankAccount(String name, LocalDateTime opened, double balance) {
this.name = name;
this.opened = opened;
this.balance = balance;
}
}
class VipBankAccount extends BankAccount {
}
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
LocalDateTime actionDate = LocalDateTime.now();
VipBankAccount vipBankAccount = new VipBankAccount("Tom", actionDate, 0.0);
}
}
import java.time.LocalDateTime;
public class VipBankAccount extends BankAccount {
VipBankAccount(String name, LocalDateTime opened, double balance) {
super(name, opened, balance);
}
}
import java.time.LocalDateTime;
public class BankAccount {
private static BankAccount instance;
String name;
LocalDateTime opened = LocalDateTime.now();
double balance = 0.0f;
private BankAccount(String name) {
this.name = name;
}
public static BankAccount getInstance(String name) {
if (instance == null) {
instance = new BankAccount(name);
}
return instance;
}
@Override
public String toString() {
return String.format("Имя: %s \nДата создания: %s \nБаланс: %f\n", name, opened.toString(), balance);
}
}
public class Main {
public static void main(String[] args) {
BankAccount bankAccount1 = BankAccount.getInstance("Tom");
BankAccount bankAccount2 = BankAccount.getInstance("Elena");
System.out.println(bankAccount1);
System.out.println(bankAccount2);
}
}
public class BankAccountUtils {
private BankAccountUtils() {}
public static String namesConcatenate(String name, String surname) {
return name + " " + surname;
}
}
public class Main {
public static void main(String[] args) {
System.out.println(BankAccountUtils.namesConcatenate("Tom", "Jeferson"));
}
}
public class BankAccount { }
public BankAccount() { }
import java.time.LocalDateTime;
public class BankAccount {
String name;
LocalDateTime opened;
double balance;
public BankAccount(String name, LocalDateTime opened, double balance) {
this.name = name;
this.opened = opened;
this.balance = balance;
}
}
public class VipBankAccount extends BankAccount {
VipBankAccount() {}
}
VipBankAccount() {
super(); // метод вставлен компилятором автоматически
}
class BankAccount {
private String name;
String getName() {
return name;
}
public BankAccount(String name) {
this.name = name;
}
}
class BankAccount {
private String name;
public BankAccount(String name) {
this.name = name;
}
String getName() {
return name;
}
}
Player (String name)
Resume (String uuid)
new Cat ()
Player(String name)
Resume(String uuid)
new Cat()
class Resume {
Resume(String name, int number) {}
Resume() {}
Resume(String name) {}
}
class Resume {
Resume() {}
Resume(String name) {}
Resume(String name, int number) {}
}
public Jaeger(String modelName, String mark, String origin,
float height, float weight, int strength) {
this.modelName = modelName;
this.mark = mark;
...
}
Jaeger jaeger = new Jaeger("Guardian Bravo", "Mark-6", "Japan",
73.21f, 2.18f, 35, 70);
public Jaeger(String modelName, String mark, String origin,
float height, float weight, int strength) {
this.modelName = modelName;
this.mark = mark;
...
}
Jaeger jaeger = new Jaeger("Guardian Bravo", "Mark-6", "Japan",
73.21f, 2.18f, 35, 70);