turma ver so tenho que fazer isso :
Criar uma classe ColecaoFormas
incluir atributo formas representando uma coleção de objetos do tipo FormaGeometrica (array, ArrayList, Vector, etc.)
não criar get/set para ?formas?
gerar um construtor vazio e instanciar o objeto formas dentro do construtor.
Criar métodos:
adicionarForma(FormaGeometrica forma): adiciona o objeto forma na coleção formas.
agora vou manda ocodigo que ja fiz so nao to conseguindo cria esse array e quando eu crio nao consigo forma.add NAO APARECE!
package classesBasicas;
import java.util.ArrayList;
public class ColecaoForma {
private FormaGeometrica forma[];
public ColecaoForma() {
//ArrayList<FormaGeometrica> forma = new ArrayList<FormaGeometrica>();
ArrayList forma = new ArrayList<>();
//FormaGeometrica forma = new FormaGeometrica();
}
public FormaGeometrica adicionarForma(FormaGeometrica forma) {
return forma = new FormaGeometrica();
}
public String toString(){
return "Formas PSC: " + forma;
}
}
Irmao fiz essa mudança mais nada mudou ainda nao esto conserguindo forma.add nao aparece
package classesBasicas;
import java.util.ArrayList;
public class ColecaoForma {
private ArrayList forma;
public ColecaoForma() {
forma = new ArrayList();
//ArrayList<FormaGeometrica> forma = new ArrayList<FormaGeometrica>();
//FormaGeometrica forma = new FormaGeometrica();
//FormaGeometrica forma = new FormaGeometrica();
}
public FormaGeometrica adicionarForma(FormaGeometrica forma) {
return forma.;
}
public String toString(){
return "Formas PSC: " + forma;
}
}
Use generics, use o tipo da interface List.
private List<FormaGeometrica> forma;
package classesBasicas;
import java.util.*;
public class ColecaoForma {
private List<FormaGeometrica> lista;
public ColecaoForma() {
lista = new ArrayList<>(); // Java 7
}
public void adicionarForma(FormaGeometrica forma) {
lista.add(forma);
}
public String toString(){
return "Formas PSC: " + lista.toString();
}
}
Só lembra de implementar um toString bonitinho dentro da tua classe FormaGeometrica.
thiago0000, não entendi muito bem o porque do seu método adicionarForma não é void, mas blz rs
boolean java.util.ArrayList.add(E e)
Este carinha espera receber como parâmetro um objeto do tipo Object e possui um retorno booleano (true ou false). Você diz que no seu método adicionarForma retorna um objeto do tipo FormaGeometrica. Passar como retorno deste método um boolean não uma opção válida.
public FormaGeometrica adicionarForma(FormaGeometrica forma) {
return forma.;
}
lembre-se que as variáveis declaradas em escopo local (isso inclui parâmetros) sobrepõem as de escopo de classe, então para acessar as de escopo da classe você precisa utiliza a palavra reservada this.
a solução do seu problema fica assim:
public FormaGeometrica adicionarForma(FormaGeometrica forma) {
return this.forma.;
}
No escopo da função:
this.forma é o atributo da classe
forma é o parâmetro da função
ArrayList forma deve ser atributo de tua classe.
public class ColecaoForma {
private ArrayList forma;
//seu construtor
public ColecaoForma() {
forma = new ArrayList();
}
//resto do teu codigo
}
[quote=thiago0000]Irmao fiz essa mudança mais nada mudou ainda nao esto conserguindo forma.add nao aparece
[code]
package classesBasicas;
import java.util.ArrayList;
public class ColecaoForma {
private ArrayList forma;
public ColecaoForma() {
forma = new ArrayList();
//ArrayList<FormaGeometrica> forma = new ArrayList<FormaGeometrica>();
//FormaGeometrica forma = new FormaGeometrica();
//FormaGeometrica forma = new FormaGeometrica();
}
public FormaGeometrica adicionarForma(FormaGeometrica forma) {
return forma.;
}
public String toString(){
return "Formas PSC: " + forma;
}
}
[/code][/quote]
Percebo que você não deve saber como trabalhar com List e escopo de variáveis dentro de uma classe…
Primeiramente, o método adicionaForma não faz mágica. Você tem que codificar o que ele deve fazer. Para isso, vêm o HOWTO use de List.
[code] //Cria list
ArrayList list = new ArrayList();
//Adiciona itens à lista
Object seuObjeto = new Object(); //Substitua Object pelo que desejar...
list.add(seuObjeto); //Se não fizer isto, o objeto não será adicionado à lista.
//Lendo lista
for (Object item : list) {
System.out.println(item.toString()); //Apesar de toString ser implícito, preferí deixá-lo explícito
}[/code]
Quanto ao escopo, já explicaram.