estou começando a aprender Java e estou com um probleminha
Quero enviar vários dados para uma classe Vetor, tais como Nome, RA, e etc.
Fiz então algumas modificações na minha classe DADOS e ficou mais ou menos assim:
[code]public class Dados {
private String elem;
private String RA;
public void setAdiciona(String element) {
this.elem = element;
}
public void setAdicionaRa(String raAluno){
this.RA = raAluno;
}
public String getElement() {
return this.elem;
}
public String getraAluno() {
return this.RA;
}
public String toString() {
return new StringBuffer().append(RA).append(elem).append('c').toString();
}
}
[/code]
O problema é que na saída fica assim [nullnullc], o ‘c’ que eu coloquei para teste vai para a lista, mas os elementos que eu entro no teclado não, fica no lugar de nome e RA o valor null.
Alguém pode me ajudar
Muito obrigado pmlm, segue o código do da CLASSE PRINCIPAL
[code]package Exercicio3;
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
int nroElem, x;
x = 0;
Scanner entrada = new Scanner(System.in);
Vetor lista = new Vetor();
System.out.println("-----------------Programa Alunos-----------------");
System.out.println(" Quantos Alunos Deseja Incluir(Max 100)");
nroElem = Integer.parseInt(entrada.nextLine());
while (x < nroElem){
x++;
Dados elem = new Dados();
Dados RA = new Dados();
Dados pto = new Dados();
System.out.println("Digite o "+x+"º RA:");
int rA = Integer.parseInt(entrada.nextLine());
System.out.println("Digite o "+x+"º Nome:");
String nome = entrada.nextLine();
elem.setAdiciona(nome);
RA.setAdicionaRa(Integer.toString(rA));
lista.adiciona(pto);
}
System.out.println(lista);
System.out.println("Numero de Aluno(s): "+lista.tamanho());
System.out.println("Qual posição deseja mostrar");
int posic = Integer.parseInt(entrada.nextLine());
Dados obj = lista.pega(posic);
System.out.println(obj.getElement());
}
}[/code]
Bom essa é a minha CLASSE VETOR
package Exercicio3;
public class Vetor {
private Dados[] dados = new Dados[100];
private int total = 0;
public void adiciona(Dados allIn) {
this.dados[this.total] = allIn;
this.total++;
}
public String toString(){
if(this.total == 0){
return "[]";
}
StringBuilder builder = new StringBuilder();
builder.append("[");
for (int i = 0; i < this.total - 1; i++){
builder.append(this.dados[i]);
builder.append(",");
}
builder.append(this.dados[this.total - 1]);
builder.append("]");
return builder.toString();
}
public int tamanho(){
return this.total;
}
public boolean contem(Dados dado){
for( int indice =0;indice<=total -1;indice++){
if(dado == this.dados[indice]){
return true;
}
}
return false;
}
public Dados pega(int posicao){
return this.dados[posicao];
}
private boolean posOculpada(int posicao){
return posicao >= 0 && posicao < this.total;
}
}
Guerra.rafa, ao postar códigos, use a tag code. Eu vi que você tentou fazer isso em seu primeiro post, mas você deve DESMARCAR a opção “desabilitar formatação BB nesta mensagem”. É ela que permite que o código fique formatado. Já consertei as outras postagens para você.
O teu problema está aqui. Estás a criar 3 instâncias do objecto em cada iteração quando deves criar apenas uma e será nessa que fazes os set e que adicionas depois à tua lista.