Chamando uma classe... [RESOLVIDO]

tipo galera, to com uma duvida, ja programo em c e c# e estou comecando agora com java, e estou com a simples duvida…

eu tenho a minha classe principal “exemplo1”, e gostaria q esta classe chamasse uma segunda classe…

tipo,

if (numero == 2)
{
String aux2 = new class exemplo2();
}

sei q esta errado, mas me digam como seria o correto???

String teste = new Classe().getXpto(); // se retornar uma String

para você criar uma instancia da classe (desconsiderarei as classes abstratas):

NomeDaClasse nomeVariavel = new NomeDaClasse(parametrosDoConstrutor);

Por exemplo:

Integer i = new Integer("1");

ou uma classe Cliente criada por você:

Cliente cliente = new Cliente();

Também há de se considerar o Polimorfismo, mas creio que isso você já saiba.

Tem como instanciar um novo objeto sem usar a palavra new?

bm, vamos por parte…

eu fiz assim…

import javax.swing.*;
public class Urna
{
public static void main(String args[])
{
String aux, aux2;
int op1;
System.out.println("\t\t\tURNA ELEITORA");
System.out.println("\n\t\t1 - votar “);
System.out.println(”\t\t2 - Sair “);
aux=JOptionPane.showInputDialog(“Digite a Opcao Desejada:”);
op1=Integer.parseInt(aux);
if (op1 == 1)
{
System.out.println(”\n\n\topcao escolhida foi ‘Votar’ ");
aux2 = new votacao();
}
}

}

dai criei uma outra classe e escrevi assim:

public class votacao extends Urna \este extends eu vi numa apostila, nem sei se esta certo…
{
public static void main(String args[])
{
System.out.println("Deu Certo!!! ");
}
}

olhem e me falem o que acham???

Se essa classe tiver um metodo static sim:

Classe.metodo();

Vamos por partes…

1 - Você está tentando passar uma classe votacao para uma variável que aceita classes do tipo String. Esses tipos não são compatíveis. Você só pode instanciar uma classe do mesmo tipo ou uma classe que herda o tipo declarado. Por exemplo, você poderia fazer:

afinal votacao estende de urna, logo, Urna sabe tratar uma votacao.

2 - Você está criando dois métodos main. O que faz esse método? Ele inicia o programa, como você deve saber, afinal C tem um método igual. Mas você terá apenas um método main por programa e não um em cada classe.

3 - Não faz sentido votacao estender de Urna. votacao não é uma Urna, muito menos urna é uma votacao. Então não há herança nesse caso. O que ocorre então? Votação tem uma urna(ou várias), logo você deve usar composição para esse caso.

Eu recomendo você ler o livro Use a Cabeça Java, lhe dará boas noções da linguagem.

Só para dar uma explicada…

Quando vc for fazer alguma herança, verifique o que o marcio falou.
Se a classe É ums outra classe, usa-se extends.
Quando uma classe TEM (uma ou mais) outra classe, instancia-se.

E reforço o que o marcio diz, esse livro é muito bom mesmo.

Abraço

muito obrigado, eu ja descobri como fazer…

vcs ajudaram muito.

vlw