Você está na página 1de 1

Paratodasasperguntas,consideraraverso6.0doJava.

1. Oqueacontecequandotentamoscompilareexecutarocdigoabaixo?

package app.teste;

public class OutTeste {


protected int i = 100;
public int getInteiro(){
return i;
}
}
package app.teste;

public class TestaOut extends OutTeste {


public void process(OutTeste a){
a.i=a.i*3;
}

public static void main(String[] args) {


OutTeste a = new TestaOut();
TestaOut b = new TestaOut();
b.process(a);
System.out.println(a.getInteiro());

InicialmenteverificamosqueaclasseTestaOutdeOutTeste.Portanto,elaherdaoatrbutoie
omtodogetInteiro().Omtodoprocess()deTestaOutrecebeumobjetodaclasseOutTeste.Esse
mtodomultiplicapor3ovalordoatributoidoobjetopassado.

Oexecutvelcria,inicialmente,umobjetodaclasseOutTesta(esseobjetotemseuatributoi
comvalorinicial100).

Emseguida,umobjetodaclasseTestaOutbcriado(seuvalordeatributoitambm100).
Finalmente,
b.process(a)

Estamoschamandoomtodoprocessdeb,epassandoa(quedaclasseTestaOut)como
parmetro.Assim,omtodoprocessirmultiplicarpor3ovalordoatributoidoobjetoa.Como
elefoiinicializadocom100,agoraseuvalor300.

Naltimalinhaimprimimosovalordoatributoidoobjetoa.300serimpressonatela.

Você também pode gostar