Dúvidas com melhor método de leitura e duvida com Interface

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?

Desde já agradeço a todos que responderem

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…

só uma coisa

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();

}[/code]

ESPERO TER AJUDADO :!: :!: :!: :!:

só complementando o que o Raff colocou:

  1. 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).
  2. 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.

[quote=Mark_Ameba]só uma coisa

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”.

Puts… cara…

Ralf… melhor resposta impossível… cara to até salvando isso no meu computador cara… nunca mais esqueco agora… valeu mesmo

agora… quanto a melhor classe para leitura em dos, vcs me recomendam a Scanner certo?