Unir classes

15 respostas
G

tenho 3 classes feitas em codigos diferentes e queria fazer uma outra classe que unisse as 3

como eu procedo?

tentei isso

public class Matricula
{

    private int matricula;

    public Matricula (int matricula)  // CONSTRUTOR
		{
	        this.matricula=matricula;
	        }
	public int getmatricula() // metodo get
		{
			return matricula;
	    }
		public void setmatricula (int matricula) // metodo set
		{
			this.matricula = matricula;
	}
}
public class Nome
{

    private String nome;

    public Nome (String nome)  // CONSTRUTOR
		{
	        this.nome=nome;
	        }
	public String getnome() // metodo get
		{
			return nome;
	    }
		public void setnome(String nome) // metodo set
		{
			this.nome = nome;
	}
}

aqui estão duas classes, e na de juntar fiz isso

public class Aluno
{

		Matricula matricula = new Matricula(getmatricula);
		Nome nome = new Nome();
		
}

15 Respostas

nicolas_dias

de que maneira voce deseja “unir” as classes, para qual finalidade?
seja mais especifico…

G

esta na descrição do trabalho

fazer um vetor de aluno com matricula, nome, endereço email cada um com sua classe

ia fazer as classes, juntar tudo em uma classe aluno e criar um vetor de aluno

nicolas_dias

crie as classes de matricula, endereco, email, nome, igual voce criou
e na classe aluno faça o seguinte:

public class Aluno{

private Matricula matricula;
private Nome nome;
private Endereco end;
private Email email;

//quando criar um aluno, voce vai passar como parametro suas propriedades
public Aluno(Nome nome, Matricula matric, Endereco end, Email email ){
this.nome = nome;
this.matricula = matric;
this.end = end;
this.email = email;
}
//no Main faça o seguinte
public main static void(String [] args){
ArrayList<Aluno> alunos = new ArrayList<Aluno>();

//aqui voce adiciona seus alunos ao array de alunos
alunos.add(new Aluno("nicolas", "767677", "são josé do norte, 664", "[email removido]"));
......
....
..
}

}

mais ou menos isso, não testei, mas acho que é isso que voce precisa

G

o main que ta ai. vai na classe aluno ou na classe principal? (a minha principal ja tem o main)

B

main pode ir em qualquer classe.

E se for usar o código acima, só altere ele um pouco para converter de as strings que você está passando para os tipos corretos.

G

no main do meu principal pra cadastra eu fiz isso

System.out.print("Digite sua matricula \n\n");
								                          matricula = Integer.parseInt(input.nextLine());
								                          System.out.print("\n");
								                          System.out.println("Digite o seu nome \n\n"); // NOME
								                          nome = input.nextLine();
								                          System.out.print("\n");
								                          System.out.print("Digite a data de nascimento \n\n"); // DATA
								                          data = input.nextLine();
								                          System.out.print("\n");
								                       System.out.println("Digite o seu endereço \n\n"); // ENDEREÇO
								                          end = input.nextLine();
								                          System.out.print("\n");
								                          System.out.println("Digite o seu email \n\n"); // EMAIL
								                          email = input.nextLine();
                         								  System.out.print("\n");
                         									alunos.add(new Aluno(matricula, nome, data, end, email));
                         									i++;
                         									break;

não sei se é isso que voce explicou

G

e as classes do primeiro post estão corretas?

B

Só falta deixar os gets e sets no estilo do Java “camelCase”. Ou apague eles de uma vez já que não está usando.

G

esgotaram minhas ideias. fiz desse jeito e nao deu. tireis os gets e não rolou

nicolas_dias

cara ta dando algum tipo de erro?
se ta posta o codigo que ta lançado o erro

nicolas_dias

ta dando proplema pois voce ta atribuindo tipos diferentes as variaveis: ex:

matricula = Integer.parseInt(nextLine());//matricula neste caso deveria receber um objeto do tipo Matricula

deveria ser assim:

matricula = new Matricula( Integer.parseInt(nextLine()))

voce deve fazer isto com todos objetos

entendeu?

G

era exatamente isso que eu tava em duvida!

não sabia como fazer essa parte de ler a matricula

vou tentar aqui

G
System.out.print("Digite sua matricula \n\n");
								                         matricula = new Matricula( Integer.parseInt(nextLine()));
								                          System.out.print("\n");
								                          System.out.println("Digite o seu nome \n\n"); // NOME
								                          nome = new Nome( Integer.parseInt(nextLine()));
								                          System.out.print("\n");
								                          System.out.print("Digite a data de nascimento \n\n"); // DATA
								                          data = new Data( Integer.parseInt(nextLine()));
								                          System.out.print("\n");
								                          System.out.println("Digite o seu endereço \n\n"); // ENDEREÇO
								                          end = new End( Integer.parseInt(nextLine()));
								                          System.out.print("\n");
								                          System.out.println("Digite o seu email \n\n"); // EMAIL
								                          email = new Email( Integer.parseInt(nextLine()));
                         								  System.out.print("\n");
                         									aluno[i] = new Aluno( matricula,nome,data,end,email);
                         									i++;
                         									break;

ficou assim

ai da erro nos new’s e no next. esse do next é o que dava antes de tipo incompativel

e no new da erro de cannot find symbol

G

tirei os new os erros sumiram

agora

da esses aqui

C:\Users\Gustavo\Desktop\Trab\Cadastro.java:47: cannot find symbol

symbol  : method nextLine()

location: class Cadastro

email =  Email( Integer.parseInt(nextLine())); // vi que ta como integer mas em matricula que é int, da erro tambem

^

C:\Users\Gustavo\Desktop\Trab\Cadastro.java:49: cannot find symbol

symbol  : constructor Aluno(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)

location: class Aluno

aluno[i] = new Aluno( matricula,nome,data,end,email);

^

da em matricula, nome, end e data

B

Gustavo, eu sugiro você rever o teu código, você está forçando a barra sem entender o que está fazendo.

Vamos por partes. Responda estas perguntas para si mesmo enquanto você codifica:

  1. Se eu peço para o usuário digitar a idade dele, qual método uso para obter essa informação do teclado?
  2. Qual o tipo de dado retornado por esse método?
  3. Como converto um número que está como tipo String para um int?
  4. Se eu peço o nome dele, como pego isso do teclado?
  5. Qual o tipo retornado por esse método?
  6. Se eu tiver uma classe Idade, como construo um objeto do tipo Idade passando um int? E passando um String? Posso ter mais de um construtor numa classe?
  7. Se eu tenho um construtor que recebe Matricula e Nome, mas tenho duas Strings, como converto a String para um objeto Matricula, e outra para um objeto Nome, antes de passar para o construtor?
  8. E já tenho um construtor que recebe Matricula e Nome. Como crio outro construtor nessa mesma classe que receba apenas duas Strings? Como converto essas Strings dentro do código desse construtor para um objeto Matricula, e outro objeto do tipo Nome?
Criado 24 de fevereiro de 2013
Ultima resposta 25 de fev. de 2013
Respostas 15
Participantes 3