Olá, boa tarde a todos! Sou iniciante em Java/OOP e tenho dúvidas com relação à utilização de alguns conceitos. Eu ainda estou estudando o livro do Harvey Deitel: Java how to program 6 ed.!
Criei um programinha (bobo, sem a menor pretensão) para cristalizar os conceitos que tenho aprendido até aqui. Gostaria de saber de vocês (profissionais experientes), se os conceitos que eu utilizei nesse “programinha”, estão corretos; também, se essa é a melhor maneira de utilizar a herança e o encapsulamento (no caso, do método Scanner). Exemplo de conceitos a serem analisados:
extends, criação de objetos, palavra-chave static, função e organização das classes…
Breve explicação do que o “programa” faz:
a classe [color=green]MainTest [/color]passa um valor para a classe [color=darkblue]ProvidesScanner[/color], essa classe passa o valor para ser analisado, tratado para a classe [color=darkred]TreatResult[/color], que checa: se o valor recebido for true, então exibe uma mensagem. Senão, enquanto for false, invoca o método scanner() novamente para receber outro valor.
Abaixo está o fonte:
public class MainTest extends ProvidesScanner{
public static void main( String args[] ){
System.out.print("Please, insert your PIN: ");
scanner();
}
}
import java.util.Scanner;
public class ProvidesScanner{
static TreatResult treatresult = new TreatResult();
public static Scanner scanner()
{
Scanner input = new Scanner(System.in);
String getScan = input.next();
treatresult.setCheckPin(getScan);
return scanner();
}
}
public class TreatResult extends ProvidesScanner{
public void setCheckPin( String pin ){
if ( pin.equals("123abc") )
{
System.out.println("Welcome, PIN:" + pin);
}
else
{
while( !pin.equals("123abc") )
{
System.out.print("Bad pin! Please, try again: ");
scanner();
}
}
}
}
O “programa” foi feito apenas abstrair de mim mesmo os conceitos adquiridos e colocá-los de forma concreta, tangível para que eu pudesse visualizar; talvez isso tenha tornado alguns trechos inúteis, como no caso do encapsulamento do método Scanner();, mas como eu disse foi apenas para ilustrar os conceitos.
Obrigado a todos!
PS: O programa está compilando normalmente!