Vetor de Objetos

1. Vetor de Objetos

mateus da silva
metalicarus1

(usa Ubuntu)

Enviado em 10/04/2016 - 10:51h

Olá, estou com um problema no meu código. Tenho duas classes, a para criação de métodos e a principal.
O problema é que somente a última inscrição no vetor é válida. Ou seja, faço todo o cadastro mas somente a ultima posição é gravada.

package Poo;

public class ContaCorrente {
// Declaração da classe ContaCorrente
	
		// Declarando os atributos 
		
		private int numero; 
		private int agencia; 
		private double saldo; 
		private String titular; 
		
		// Métodos de acesso e modificadores 
		
		public int getNumero(){
			return numero;
			
		}
		public void setNumero(int numero){
			this.numero = numero; 
		}
		public int getAgencia(){
			return agencia; 
		}
		public void setAgencia(int agencia){
			this.agencia  = agencia; 
		}
		public double getSaldo(){
			return saldo;
		}
		public void setSaldo(double saldo){
			this.saldo = saldo; 
		}
		public String getTitular(){
			return titular; 
		}
		public void setTitular(String nome){
			this.titular = nome; 
		}
		
		
		
	}

 


package Poo;

import java.util.Scanner;

public class Principal {

	public static void main(String[] args) {
		
		ContaCorrente conta = new ContaCorrente();
		ContaCorrente contas[] = new ContaCorrente[3]; // Criando um vetor para Contas 
		Scanner ler = new Scanner(System.in); 
		
		for(int i = 0 ; i<3 ; i++)
		{		
			System.out.println("\n------------------------------- \n");
			
			System.out.println("Informe o número da conta: "); 
			conta.setNumero(ler.nextInt());
			
			System.out.println("Informe o número da Agencia: "); 
			conta.setAgencia(ler.nextInt());
			
			System.out.println("Informe o Saldo da Conta: "); 
			conta.setSaldo(ler.nextDouble());
			
			ler.nextLine();  // Limpa Buffer do teclado 

			System.out.println("Informe o nome do Titular: "); 
			conta.setTitular(ler.nextLine());
			
			contas[i] = conta;
         
		}		
		// Recuperar os dados do Vetor 
		
		for(int i = 0; i<3 ; i++)
		{
			conta = contas[i]; 
			
			System.out.println("\n------------------------------- \n");
			System.out.println("Numero da conta: "+conta.getNumero());
			System.out.println("Agência: "+conta.getAgencia()); 
			System.out.println("Saldo: "+conta.getSaldo()); 
			System.out.println("Titular: "+conta.getTitular()); 
		}
}

}
 



  


2. Re: Vetor de Objetos

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 10/04/2016 - 14:14h

Oi.

Isso ocorre porquê você criou um único objeto da classe Conta e alterou os dados 3 vezes.

As 3 posições do vetor apontam para o mesmo objeto Conta.

Objetos são passados por referência.

Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts