(→UML: Diagrama de Classes) |
|||
(One intermediate revision by the same user not shown) | |||
Line 12: | Line 12: | ||
== Conceito de Tabela == | == Conceito de Tabela == | ||
− | < | + | <source lang="java"> |
public class Table { | public class Table { | ||
private int _vector[]; | private int _vector[]; | ||
− | public | + | public Table(int size) { |
_vector = new int[size]; | _vector = new int[size]; | ||
// init table here... | // init table here... | ||
Line 27: | Line 27: | ||
} | } | ||
− | </ | + | </source> |
== Conceito de Transformação == | == Conceito de Transformação == | ||
− | < | + | <source lang="java"> |
public interface Transform { | public interface Transform { | ||
Line 37: | Line 37: | ||
} | } | ||
− | </ | + | </source> |
== Conceito de Sucessor == | == Conceito de Sucessor == | ||
− | < | + | <source lang="java"> |
public class Successor implements Transform { | public class Successor implements Transform { | ||
Line 50: | Line 50: | ||
} | } | ||
− | </ | + | </source> |
== Conceito de Quadrado == | == Conceito de Quadrado == | ||
− | < | + | <source lang="java"> |
public class Square implements Transform { | public class Square implements Transform { | ||
Line 63: | Line 63: | ||
} | } | ||
− | </ | + | </source> |
== Programa Principal == | == Programa Principal == | ||
Line 69: | Line 69: | ||
O programa principal é como indicado no enunciado do problema e indicado abaixo para clarificação: | O programa principal é como indicado no enunciado do problema e indicado abaixo para clarificação: | ||
− | < | + | <source lang="java"> |
public class Application { | public class Application { | ||
//TODO | //TODO | ||
} | } | ||
− | </ | + | </source> |
= Compiling and Running = | = Compiling and Running = |
Modele e implemente a classe Table que contém um número fixo de inteiros (especificado na altura da criação das suas instâncias). Essa classe possui um método (print) que permite imprimir todo o conteúdo, aplicando uma transformação a cada valor. A transformação aplicada varia de acordo com o tipo do objecto Transform, passado como como argumento de print. As potenciais transformações têm um método transform (aceita um inteiro e devolve outro inteiro) que permite modificar um valor inteiro de uma forma específica. Defina os conceitos Table e Transform. Defina ainda duas transformações: uma que calcula o sucessor de cada inteiro (Successor); e outra que calcule o quadrado de cada um dos valores da tabela (Square). Pode realizar outros conceitos/métodos que julgue necessitar. Evite repetições de código.
public class Table {
private int _vector[];
public Table(int size) {
_vector = new int[size];
// init table here...
}
public void print(Transform t) {
for (int i: _vector) System.out.println(t.transform(i));
}
}
public interface Transform {
int transform(int i);
}
public class Successor implements Transform {
@Override
public int transform(int i) {
return i + 1;
}
}
public class Square implements Transform {
@Override
public int transform(int i) {
return i * i;
}
}
O programa principal é como indicado no enunciado do problema e indicado abaixo para clarificação:
public class Application {
//TODO
}
The compilation is as follows:
javac Table.java javac Transform.java javac Successor.java javac Square.java javac Application.java
In fact, compiling Application.java would cause the rest of them be compiled as well (the Java compiler accounts for all explicit class dependencies).
The program starts at a main function (in this case, contained in the Application class):
java Application