Hum, se eu não me engano o this.seuAtributo é so pra fazer referencia ao atributo da classe, por que o parametro passado no seu metodo tem o mesmo nome do atributo;
Pelo menos assim você sabe que o atributo da classe recebe o parametro do metodo e nao o contrario.
G
guners
quero dizer pra eu usar os valores que foram passados ao criar o objeto, não consigo usar eles
A
Augusto_Ant
Para vc usar os seus parâmetros quando foi criado o objeto em outra class vc terá q chamar os seus métodos getAltura() e getLado() pois seus parâmetros foram criados como private.
F
f.leno
Isso acontece pelo seguinte:
Na função, você recebeu um parâmetro “r”, então se você colocar r=r, você simplesmente estará referenciando ao parâmetro local que você recebeu, não o atributo da classe.
o “this” referencia o objeto corrente, ou seja, quando você coloca this.r, significa que estará acessando o atributo da classe, não o parâmetro que você recebeu.
Se você alterar o nome do parâmetro, poderá utilizar apenas como “r” normalmente.
F
f.leno
Aliás, você pode utilizar normalmente os atributos da classe caso você não receba um parâmetro na função de mesmo nome…
Tava brisando aqui e pensei q vc tinha perguntado outra coisa.
por exemplo, olhe aqui:
area=(Math.PI*r*r);
Você está usando o r sem o “this”.
G
guners
aqui por exemplo
public ObjetoGeometrico(double l,double h){
setAltura(h);
setLado(l);
}
eu uso o set, que seria como usar o this
ai depois eu queria usar esse h e o l na classe que extend ela, aqui
@Override
public double Area() {
area = b*h;
return area ;
}
só que se eu não colocar o this.h no construtor dela, da 0 no resultado, pois não usa o valor utilizado na construção do objeto
F
f.leno
Apenas um palpite… nao sei se está correto.
Troque
privatedoubleh,l,r;
por
privatedoubler;
Na classe circulo
novato25
Bom, você pode acessar os atributos h e l nas classes que herdam de ObjetoGeometrico colocando estes atributos como protected.
Assim:
protecteddoubleh,l;
Obs.: não precisa criar esses atributos na classe filha.
ou, você pode acessar o valor desses atributos nas classes filhas através dos métodos getts: getAltura() e getLado();
G
guners
só que no super(h,l) fica errado, se eu não declarar os dois na classe filho
novato25
De forma alguma. Em super(h,l), os parâmtros são os que estão declarados no construtor public Circulo(double h,double l,double r)