Array nao pega Objetos

Boa Tarde tenho um exercicio pra fazer onde é um laboratorio de fotos onde o funcionario digita a quantidade de fotos do tamanho P ,M ou G e no final do dia é pra gerar um relatorio de quantidade de quantas fotos P, M e G foram feitos durante o dia, eu consegui fazer uma classe Fotos onde esta todos os metodos que recebe o tipo da foto ( P,M ou G ) e a soma da quantidade mais lucro e custo das fotos,e outra classe chamada Array onde deveria receber esses dados só que nao consigo adicionar os Objetos FOTOS no array, fiz um metodo adicionaArray e outro verificar onde quando dou o verificar ele nao mostra nada apenas 10 posições com isso dentro Fotos@62f72617, como faço para q consiga colocar todos dados do objeto F1 no array e F2 e assim por diante?

segue meus codigos

public class Fotos {
	int quantidadeP = 0;
	int quantidadeM = 0;
	int quantidadeG = 0;

	String tamP = "Tamanho P";
	String tamM = "Tamanho M";
	String tamG = "Tamanho G";
	

	
	void adicionaP( int quan){
		this.quantidadeP += + quan;
		int quantidadeTotalP =  this.quantidadeP;
		double custo = 1.20 * quantidadeP;
		double lucro = 0.50 + 1.20;
		double lucroTotal = this.quantidadeP  * lucro - custo;
		System.out.println(getTamP() + " Quantidade: " + quantidadeTotalP + " Custo: " + custo + " Lucro: " + lucroTotal);
	}
	void adicionaM( int quan){
		this.quantidadeM += + quan;
		int quantidadeTotalM =  this.quantidadeM;
		double custo = 1.50 * quantidadeM;
		double lucro = 0.80 + 1.50;
		double lucroTotal = this.quantidadeM  * lucro - custo;
		System.out.println(getTamM() + " Quantidade: " + quantidadeTotalM + " Custo: " + custo + " Lucro: " + lucroTotal);
	}
	void adicionaG( int quan){
		this.quantidadeG += + quan;
		int quantidadeTotalG =  this.quantidadeG;
		double custo = 1.80 * quantidadeG;
		double lucro = 0.90 + 1.80;
		double lucroTotal = this.quantidadeM  * lucro - custo;
		System.out.println(getTamG() + " quantidade: " + quantidadeTotalG + " Custo: " + custo + " Lucro: " + lucroTotal);
	}
	public String getTamP() {
		return tamP;
	}
	public String getTamM() {
		return tamM;
	}
	public String getTamG() {
		return tamG;
	}
	 
}

public class Array {
 Fotos [] fotos;
 
 	void adicionaArray(Fotos f ){
 		for(int x = 0; x < this.fotos.length; x++ ){
			 if(this.fotos[x] == null){
				 this.fotos[x] = f;
			 }
 		}
	
	 
 	}
 	void verificar(){
		for(int x = 0; x < this.fotos.length; x++){  
			if(this.fotos[x] == null){  
				System.out.println("Nao possui fotos");  
			}
			else{
			
				System.out.println(this.fotos[x]);
			
			}
		}
		
	}	





} 
	
	 
	 public class Teste {
	public static void main(String[] args){
		Fotos f1 = new Fotos();
		f1.adicionaP(10);
		f1.adicionaM(3);
		f1.adicionaG(1);
		
		Array a1 = new Array();
		a1.fotos = new Fotos [10];
		a1.adicionaArray(f1);
		a1.verificar();

tente criar um construtor para as classes Fotos e Array, e no construtor da Array já setar o tamanho do array fotos, deixando ele private.

seria isso o construtor da classe Aray ?


private Array(){
	 Array a1 = new Array();
	 a1.fotos = new Fotos [10];
	 
	 }

nao entendi bem o q vc quer que eu faça com o construtor

não ‘-’ construtores devem ser públicos, e estamos falando da própria classe/objeto Array:

public Array() { this.fotos = new Fotos [10]; }

Fiz como voce falou

segue o codigo

public Array(Fotos f){
	 this.fotos = new Fotos [10];
	 	for(int x = 0; x < this.fotos.length; x++ ){
	 		if(this.fotos[x] == null){
	 			this.fotos[x] = f;
	 			
	 		}
	 	}
 
	 	for(int x = 0; x < this.fotos.length; x++){  
			if(this.fotos[x] == null){  
				System.out.println("Nao possui fotos");  
			}
			else{
			
				System.out.println(this.fotos[x]);
			
			}
		}
 
 }

Fotos(int quanP,int quanM, int quanG){
		this.quantidadeP += + quanP;
		int quantidadeTotalP =  this.quantidadeP;
		double custo = 1.20 * quantidadeP;
		double lucro = 0.50 + 1.20;
		double lucroTotal = this.quantidadeP  * lucro - custo;
		System.out.println(getTamP() + " Quantidade: " + quantidadeTotalP + " Custo: " + custo + " Lucro: " + lucroTotal);
		
		this.quantidadeM += + quanM;
		int quantidadeTotalM =  this.quantidadeM;
		double custoM = 1.50 * quantidadeM;
		double lucroM= 0.80 + 1.50;
		double lucroTotalM = this.quantidadeM  * lucroM - custoM;
		System.out.println(getTamM() + " Quantidade: " + quantidadeTotalM + " Custo: " + custoM + " Lucro: " + lucroTotalM);
		
		this.quantidadeG += + quanG;
		int quantidadeTotalG =  this.quantidadeG;
		double custoG = 1.80 * quantidadeG;
		double lucroG = 0.90 + 1.80;
		double lucroTotalG = this.quantidadeM  * lucroG - custoG;
		System.out.println(getTamG() + " quantidade: " + quantidadeTotalG + " Custo: " + custoG + " Lucro: " + lucroTotalG);
		
	}

Deu o Mesmo Resultado que com o Construtor Default

alguem tem alguma luz para me dar ? ou me apontar onde esta errado meu codigo para o array nao aceitar o objeto f1 ?

Boa TArde mudei um pouco o codigo agora ele esta fazendo exatamento o que eu quero, unica duvida ainda é como coloco os dados da classe foto num array, se a classe fotos tem
[b]
int quantidadeP = 0;
int quantidadeM = 0;
int quantidadeG = 0;

String tamP = "Tamanho P";  
String tamM = "Tamanho M";  
String tamG = "Tamanho G"; [/b]

quando dou na classe teste um a1.adiciona(f1), f1 seria meu objeto da classe FOTOS, ele nao deveria gravar numa posição que estiver nula exatamente isso, e quando dou um a1.verifica(); ele nao deveria printar na tela pra mim exatamente isso ???

 [b]Tamanho P Quantidade: 155 Custo: 186.0 Lucro: 77.5
 Tamanho M Quantidade: 12 Custo: 18.0 Lucro: 9.599999999999998
 Tamanho G quantidade: 4 Custo: 7.2 Lucro: 25.200000000000006[/b]

que seria os dados que adicionei na classe Fotos usando os metodos ???

segue meu codigo para entender minha duvida


public class Fotos {
	int quantidadeP = 0;
	int quantidadeM = 0;
	int quantidadeG = 0;
	
	
	
	

	String tamP = "Tamanho P";
	String tamM = "Tamanho M";
	String tamG = "Tamanho G";
	
	void mostra(){
		// Metodo DO TAMANHO P
		double custo = 1.20 * quantidadeP;
		double lucro = 0.50 + 1.20;
		double lucroTotal = this.quantidadeP  * lucro - custo;
		System.out.println(getTamP() + " Quantidade: " + getQuantidadeP() + " Custo: " + custo + " Lucro: " + lucroTotal);
		
		// metodo DO TAMANHO M
		double custoM = 1.50 * quantidadeM;
		double lucroM = 0.80 + 1.50;
		double lucroTotalM = this.quantidadeM  * lucroM - custoM;
		System.out.println(getTamM() + " Quantidade: " + getQuantidadeM() + " Custo: " + custoM + " Lucro: " + lucroTotalM);
		
		double custoG = 1.80 * quantidadeG;
		double lucroG = 0.90 + 1.80;
		double lucroTotalG = this.quantidadeM  * lucroG - custoG;
		System.out.println(getTamG() + " quantidade: " + getQuantidadeG() + " Custo: " + custoG + " Lucro: " + lucroTotalG);
		}
	

	
	void adicionaP( int quan){
		this.quantidadeP += + quan;
		
		
	}
	public int getQuantidadeM() {
		return quantidadeM;
	}



	public int getQuantidadeG() {
		return quantidadeG;
	}



	void adicionaM( int quan){
		this.quantidadeM += + quan;
		}
	
	
	void adicionaG( int quan){
		this.quantidadeG += + quan;
	}
	
	
	public String getTamP() {
		return tamP;
	}
	public String getTamM() {
		return tamM;
	}
	public String getTamG() {
		return tamG;
	}



	public int getQuantidadeP() {
		return quantidadeP;
	}
	
	
	 
}

public class Array  {
 Fotos [] fotos;
 
 	
 public Array(){
	 this.fotos = new Fotos [3];
	 }
 
 
 void adicionaArray(Fotos f ){
 		for(int x = 0; x < this.fotos.length; x++ ){
			 if(this.fotos[x] == null){
				 this.fotos[x] = f;
			 }
 		}
	
	 
 	}
 	void verificar(){
		for(int x = 0; x < this.fotos.length; x++){  
			if(this.fotos[x] == null){  
				System.out.println("Nao possui fotos");  
			}
			else{
			
				System.out.println(" teste: " + this.fotos[x]);
			
			}
		}
		
	}	





} 
	
	 
	 
	 public class Teste {
	public static void main(String[] args){
		Fotos f1 = new Fotos();
		f1.adicionaP(25);
		f1.adicionaP(30);
		f1.adicionaP(100);
		f1.adicionaM(10);
		f1.adicionaM(2);
		f1.adicionaG(3);
		f1.adicionaG(1);
		f1.mostra();
		
		Array a1 = new Array();
		a1.adicionaArray(f1);
		a1.verificar();
		
		
		}
		
		
		
	
		
		
		
		
		
	

}

Isso aqui é o que o java esta printando pra mim quando dou o o Verifica

teste: Fotos@62f72617
teste: Fotos@62f72617
teste: Fotos@62f72617

eu preciso colocar os dados num array, pq mais tarde tenho que colocar isso num banco de dados… agradeço quem tiver paciencia em me ajudar, Obrigado.

o problema está nessa linha:

System.out.println(" teste: " + this.fotos[x]);

aqueles códigos que aparecem (como Fotos@62f72617) é como o Java entende o objeto, e não como ele é de fato…
o que você quer na verdade, seria algo próximo ao que faz o método mostra(), mostrando informação entendível humanamente (números, Strings) invés do código referencial de um objeto ‘-’

Exatamente gostaria de quando eu der o verifica ele me mostrar o que tem na array algo que um usuario entenda só que nao sei mais o que fazer estou procurando videos no youtube apostilas e etc e tudo é algo muito superficial qual parte do codigo eu tenho que mudar para fazer com que quando eu der o verifica ele me mostrar o q um usuario entenda ? ja tentei utilizar o metodo mostra() no lugar do this.fotos[x] mas nao deixou, e mais uma pergunta pra quem puder me ajudar, essa linha Fotos@62f72617 se eu colocar no banco de dados, vai ficar gravado o que exatamente ? vai ficar gravado no banco de dados isso ?
Tamanho P Quantidade: 155 Custo: 186.0 Lucro: 77.5
Tamanho M Quantidade: 12 Custo: 18.0 Lucro: 9.599999999999998
Tamanho G quantidade: 4 Custo: 7.2 Lucro: 25.200000000000006

pq se gravar isso no array mesmo sendo em codigo de maquina ta otimo era exatamente o que eu preciso sabe me dizer ?

Obrigado pela ajuda Mephy

mudei o codigo para

public void verificar(){
		for(int x = 0; x < this.fotos.length; x++){  
			if(this.fotos[x] == null){  
				System.out.println("Nao possui fotos");  
			}
			else{
			
			this.fotos[x].mostra();
			
			}
		}
		
	}

acho que era isso ne ??? que eu queria ???

se mandar o objeto inteiro no banco não dá certo, a consulta tem que ser quebrada dado a dado, de acordo com o tipo indicado na tabela