51
Ограничения для сеттеров.
Использование сеттеров дает классу разработчику
возможность ограничить
возможности клиентов класса по изменению состояния объекта. Сеттеры (их еще
называют мутаторами) часто сконструированы таким образом, что значения
переменных могут быть установлены только в пределах определенных границ.
Например,
setFaceValue
это сеттер класса Die, который должен ограничить
значение допустимого диапазона (от 1 до MAX).
2.9 Метод toString() и его использование в программах.
Метод
toString()
это
метод класса Object, который лежит на вершине
иерархии классов java. Создавая собственные классы, мы
неявным образом
наследуемся от класса Object. Для всех пользовательских классов необходимо
переопределить метод
toString()
.
Метод
toString()
возвращает значение символьной строки, для того чтобы
тем самым представить данный объект. Он вызывается автоматически, когда объект
конкатенируется со строкой или когда он передается внутрь метода
println()
.
Пример класс Account.
Давайте рассмотрим еще один пример, демонстрирующий детали реализации
классов и методов. Мы будем представлять сущность - банковский счет классом по
имени Account. Его состояние может включать в себя номер счета, текущий баланс, и
имя владельца.
Поведение счета (или услуги), включают в себя депозиты (зачисление денег на
счет) и снятие денег.
Программа Тестер (Driver).
Для каждого примера мы будем писать класс тестер, в нем будем тестировать
создаваемые нами классы. Программа тестер управляет использованием других,
более интересных частей программы.
Программы Тестеры часто используются
для тестирования частей
52
программного обеспечения. Класс Transactions содержит метод main(), который
обеспечивает использование класса Account, осуществляет сервис.
Пример класса с банковским счетом:
package ru.mirea.java.lecture3;
import java.text.NumberFormat;
public class Account {
private final double RATE = 0.035;
//
начисляемые
проценты
3.5%
private long acctNumber;
private
double balance;
private String name;
public Account (String owner, long account,
double
initial) {
name = owner;
acctNumber = account;
balance = initial;
} public double deposit (double amount) {
balance = balance + amount;
return balance;}
public double withdraw (double amount, double fee) {
balance = balance - amount - fee;
return balance;}
public double addInterest ()
balance += (balance * RATE)
return balance
} public double getBalance () {
return balance;}
public String toString () {
NumberFormat fmt =
NumberFormat.
getCurrencyInstance
();
return (acctNumber + "\t" + name + "\t" +
fmt.format(balance));
}}
package ru.mirea.java.lecture3;
public class TestAccount {
public static void main (String[] args) {
Account acct1 = new Account ("Ilon Musk", 72354,
102.56);
Account acct2 = new Account ("Unkle Scroodge",
69713, 40.00);
Account acct3 = new Account ("Mac Dak", 93757,
759.32);