Duvidas nas classes e vetores de objetos

3 respostas
M

Ola pessoal !

Minha duvida é na parte das classes; meu professor da faculdade , pediu para que eu desenvolvesse
um projeto com classes que envolve a classe “pessoa e a classe carro”, assim criando a terceira classe program para instanciar as duas classes, eu implementei aqui o código, mas estou tendo dificuldade de entender as classes quando se trata de criar um vetor de objetos, a minha duvida e tenho que criar um vetor de objeto para cada classe ? no caso a classe pessoa e classe carro ?Pois eu fiz dessa forma criando 2 vetores de objeto, uma para classe pessoa e outro para classe carro será que dessa forma esta certo ? ou tenho que resolver de outro jeito ! pois do jeito que fiz esta rodando ma s tenhos duvidas se e o jeito certo ou nao !

Aqui segue o codigo :

package controle;

public class Pessoa {

private String nome;

private int idade;
public Pessoa(String nome, int idade){

this.idade = idade;

this.nome=nome;

}

public String getNome(){

return nome;

}
public int getIdade(){

return idade;

}

}

package controle;

public class Carro {

private String nome1;

private int ano;
public Carro(String nome1, int ano){
this.nome1=nome1;
this.ano=ano;

}

public String getNome1(){
return nome1;

}

public int getAno(){
return ano;

}
}

package controle;

import java.util.*;

public class Program {

private static final int MAX_RECORDS =50;

private static Pessoa []p = new  Pessoa[MAX_RECORDS];

private static Carro  []c = new  Carro [MAX_RECORDS];
public static  void Processador(){

for(int i=0;i<1;i++){

Scanner in = new Scanner(System.in);

System.out.print("Digite seu Nome ");

String nome = in.next();

System.out.print("Digite a sua Idade ");

int idade = in.nextInt();

System.out.print("Digite o nome do Carro ");

String nome1 = in.next();

System.out.print("Digite o ano do Carro ");

int ano = in.nextInt();

Pessoa pessoa = new Pessoa(nome,idade);

Carro  carro = new Carro  (nome1,ano);

p[i]= pessoa;

c[i]= carro;

}

}
public static void Exibir(){

System.out.println("------------------------------------------------ “);

System.out.println(”\tCadastro de Pessoas e Carros “);

System.out.println(”\tNomep\tIdadeP\tNome1C  \tAnoC");
for(int i=0;i<1;i++){
Pessoa pessoa = p[i];
Carro carro   = c[i];

pessoa.getNome();
pessoa.getIdade();

carro.getNome1();
carro.getAno();

System.out.println("\t" + pessoa.getNome()+ "\t" + pessoa.getIdade() + "\t" + carro.getNome1() + "\t" + carro.getAno());
}

}

public static void main(String[]args){
	
	Processador();		
	Exibir();
}

}

3 Respostas

nanoverso

Parece que a solução é nesse sentido mesmo.
As variáveis dos arrays e os métodos da classe Program realmente precisam ser static ?
E acho que vai precisar de duas variáveis pra gerenciar o final lógico dos arrays.

M

Ola nanoverso !

Primeiramente agredeço por me ajudar !Em relação ao metodos serem static eu não tenho muito conhecimento, apenas segui o modelo da qual o preofessor da faculdade passou, mas agora vou ficar atento a essa questão,porque nao conheço ainda os significados das assinaturas, quanto aos arrays a avariavel final logico tambem desconheço penso eu, que seja o tamanho do vetor, seria isso mesmo ?

nanoverso

Opa,

Ok, é que o static na assinatura dos métodos/variáveis só é usado em casos específicos, será visto nos conceitos de orientação a objetos.
As variáveis pra indicar o final lógico de cada array seriam pra indicar quantos elementos estão realmente preenchidos no array, pois o tamanho do array é fixo (MAX-RECORDS, 50 nesse caso) e somente determina o limite máximo de itens no array e não quantos elementos foram cadastrados.

Criado 29 de setembro de 2014
Ultima resposta 1 de out. de 2014
Respostas 3
Participantes 2