/20@yegor256 5
“A class is a
collection of data
fields that hold
values and methods
that operate on those
values”
- page 98
/20@yegor256 6
“Objects may contain
data, in the form of
fields, often known
as attributes; and
code, in the form of
procedures, often
known as methods”
/20@yegor256 8
class Calculator {
private int[] array;
public void calculate(int a, int b) {
this.array = new int[b - a];
for (int i = 0; i < this.array.length; ++i) {
this.array[i] = a + i;
}
}
public int[] numbers() {
return this.array;
}
}
/20@yegor256 11
class Range {
private final int a;
private final int b;
Range(int start, int finish) {
this.a = start;
this.b = finish;
}
public int[] numbers() {
int[] array = new int[this.b - this.a];
for (int i = 0; i < array.length; ++i) {
array[i] = this.a + i;
}
return array;
}
}
/20@yegor256 13
R range = new Range(5, 15);
int[] x = range.numbers();
Calculator c = new Calculator();
c.calculate(5, 15);
int[] x = c.numbers();
/20@yegor256 14
R range = new OddOnly(
new Range(5, 15)
);
int[] x = range.numbers();
Calculator c = new Calculator();
c.setOddOnly(true);
c.calculate(5, 15);
int[] x = c.numbers();
/20@yegor256 15
R range = new SquareAll(
new OddOnly(
new Range(5, 15)
)
);
int[] x = range.numbers();
Calculator c = new Calculator();
c.setOddOnly(true);
c.setSquareAll(true);
c.calculate(5, 15);
int[] x = c.numbers();
/20@yegor256 16
R range = new Incremented(
new Squared(
new OddOnly(
new Range(5, 15)
)
),
100
);
int[] x = range.numbers();
Calculator c = new Calculator();
c.setOddOnly(true);
c.setSquared(true);
c.setIncremented(100);
c.calculate(5, 15);
int[] x = c.numbers();
/20@yegor256 17
R range = new Logged(
new Incremented(
new Squared(
new OddOnly(
new Range(5, 15)
)
),
100
)
);
int[] x = range.numbers();
Calculator c = new Calculator();
c.setOddOnly(true);
c.setSquared(true);
c.setIncremented(100);
c.setLogged(true);
c.calculate(5, 15);
int[] x = c.numbers();
/20@yegor256 18
R range = new Logged(
new Incremented(
new Squared(
new OddOnly(
new RangeFromFile(
new File(“a.txt”)
)
)
),
100
)
);
int[] x = range.numbers();
Calculator c = new Calculator();
c.setFromFile(“a.txt”); //???
c.setOddOnly(true);
c.setSquared(true);
c.setIncremented(100);
c.setLogged(true);
c.calculate(5, 15);
int[] x = c.numbers();