Bom pra nao deixar com muitos tópicos, decidi colocar 2 em um só:
1= Melhor método para leitura
Hoje eu utilizo a Classe JOptionPane para ler e escrever dados via teclado.
agora gostaria de utilizar as classes para rodar em dos, mas não sei qual utilizar. São várias mas gostaria de saber qual é a mais prática e facil de ser utilizada, pois nem sempre vou conseguir utilizar JOptionPane.
2= Interface
Eu estava lendo sobre Interface no livro da Caelum, mas fiquei com um pouco de duvida sobre. A interface somente serve como assinatura, digo pra dizer que esse objeto tem permissão para fazer determinados métodos?
Alguem ai teria como me explicar melhor sobre?
1 - Se vc esta ultilizando o java 5 em diante pode fazer o seguinte esquema…
nos imports:
import java.util.Scanner
no metodo que vc quer ler as entradas:
Scanner scan = new Scanner(System.in);
int x = scan.nextInt(); //pra inteiro
double d = scan.nextDouble(); // pra double
String str = scan.next();// se nao me falte a memoria para String
e assim por diante…
2 - Interface é um contrato que sua classe que a implementa faz de obrigatoriamente terde implementar os metodos contidos nela… nas interfaces vc so colocara as assinaturas dos metodos e nas classes que vc implementalas vc colocara a implementação deles…
sobre o Scanner
scan.next() te retorna a proxima palavra então
se você digitar
Mark Ameba
scan.next() sera Mark
e o proximo .next() Ameba
para ler a linha use a nextLine();
Interface nada mais é do que você ter metodos sem corpos(quando eu digo sem corpo, quero dizer que o método termina com ponto e virgula, não com um par de chaves )ex :[code]
public interface Testar{
public abstract boolean testar();//note que não tem um corpo termina com ponto e virgula…
}[/code]
Quando uma classe implementar uma inteface deve seguir o contrato que diz dê “corpo para esses metodos da interface”, ou seja coloque funcionalidades para o metodos.[code]
public class ClasseTeste implements Testar{
public ClasseTeste{
}//construtor…
public boolean testar(){
//imagine um codigo legal aqui …
//note que agora o metodo tem um corpo, ou seja, tem uma funcionalidade…
}
}
[/code]
Obs : os atributos de uma interface são uma constante por isso você deve inicializar esses atributos na interface.Já que são constantes não poderão ser modificados dentro de uma classe, só poderá ultilizá - los.
Obs2 : métodos de uma interface não pode ser private, final, deve ser ex:
abstract public void testar();
Note que em uma interface pelo motivo de todos os metodos ser abstract, em uma interface você não precisa colocar implicitamente abstract public void testar();, já que todoso os metodos são abstract e public o compilador sabera se voce não colocar abstract public em um metodo.
EX :[code]public interface Teste{
public static final int x = 10;
public abstract void testar();
abstract public void testar2();
//ou simplemente assim, o compilador saberá que o metodos é public e abstract
void testar3();
A classe que implementa a interface não é obrigada a implementar os seus métodos. Ela pode marcar algum(ns) métodos da interface como abstract e manter sem corpo (para isso, a própria classe tb tem que ser marcada como abstract).
Assim como os métodos são implicitamente public e abstract e os atributos são constantes (public, static e final), a interface implicitamente é public e abstract.
sobre o Scanner
scan.next() te retorna a proxima palavra então
se você digitar
Mark Ameba
scan.next() sera Mark
e o proximo .next() Ameba
para ler a linha use a nextLine();[/quote]
só lembrando que isso é válido se estiver sendo usado o delimitador padrão do Scanner, que é um espaço em branco " " … Porém, podemos alterar o delimitador. Então, por exemplo se fizermos scanner.useDelimiter(";"); e scan.next() o resultado seria “Mark Ameba”.