1 - Bola
Arquivo: Bola.java |
//
Bola.java public class Bola { // Atributos public float raio; public boolean oca; public int material; public String cor; } /* Bola (from default) -------------- cor material oca raio */ /* Bola (from default) -------------- cor: String materia: int oca: boolean raio: float */ /* Bola (from default) -------------- + cor: String + materia: int + oca: boolean + raio: float */ |
Arquivo: testando_a_bola.java |
//
testando_a_bola.java public class testando_a_bola { public static void main (String args[]){ // Instanciando um objeto Bola bolaDoJoao = new Bola(); // Armazenando Valores em algum dos atributos deste objeto bolaDoJoao.raio = 0.34f; bolaDoJoao.oca = false; bolaDoJoao.cor = "Branco"; // Instanciando um outro objeto Bola minhaBola = new Bola(); // Armazenando Valores em algum dos atributos deste objeto minhaBola.oca = true; minhaBola.material = 1324; // Usando valores de outro objeto minhaBola.raio = 5 * bolaDoJoao.raio; minhaBola.cor = bolaDoJoao.cor; // ============================================== // // ============================================== System.out.println("Bola do Joao"); System.out.println(" raio = " + bolaDoJoao.raio); System.out.println(" oca = " + bolaDoJoao.oca); System.out.println(" cor = " + bolaDoJoao.cor); System.out.println("Minha Bola"); System.out.println(" raio = " + minhaBola.raio); System.out.println(" oca = " + minhaBola.oca); System.out.println(" cor = " + minhaBola.cor); // ============================================== // // ============================================== int BolaA = 7, BolaB; bolaDoJoao.raio = BolaA; BolaB = minhaBola.material; bolaDoJoao.material = BolaB; minhaBola.raio = bolaDoJoao.raio + 3; if(minhaBola.raio == 10) System.out.println("Bola de Futebol"); // ============================================== } } /* Resultado: Bola do Joao raio = 0.34 oca = false cor = Branco Minha Bola raio = 1.7 oca = true cor = Branco Bola de Futebol */ |
2 - Lampada
Arquivo: Lampada.java |
//
Lampada.java // Classe Lampada public class Lampada { // atributos public boolean acesa; // metodos public void ligar() { acesa = true; } public void desligar() { acesa = false; } } /* Lampada (from default) -------------- + acesa boolean -------------- + desligar() + ligar() */ |
Arquivo: testando_a_lampada.java |
//
testando_a_lampada.java public class testando_a_lampada { public static void main (String args[]){ Lampada lamp = new Lampada(); lamp.ligar(); System.out.println("Lampada Criada (Acesa = " + lamp.acesa + ")"); lamp.desligar(); System.out.println("Lampada Criada (Acesa = " + lamp.acesa + ")"); } } /* Resultado: Lampada Criada (Acesa = true) Lampada Criada (Acesa = false) */ |
3 - Liquidificador Analógico
Arquivo: Liquidificador.java |
//
Liquidificador.java public class LiquidificadorAnalogico { // atributos private int velocidade; // metodos public void aumentarVelocidade() { switch (velocidade) { case 0: // se desligado passa para velocidade baixa velocidade++; break; case 1: // se velocidade baixa passa para velocidade alta velocidade++; break; // se velocidade alta não vaz nada (manter velocidade) } } public void diminuirVelocidade(){ switch (velocidade){ case 1: // se velocidade baixa passa para desligado velocidade--; break; case 2: // se velocidade alta passa para velocidade baixa velocidade--; break; // se desligado não faz nada } } public int obterVelocidade(){ return velocidade; } } /* Liquidificador Aumentando velocidade... Velocidade atual = 1 Aumentando velocidade... Velocidade atual = 2 Aumentando velocidade... Velocidade atual = 2 Aumentando velocidade... Velocidade atual = 2 Aumentando velocidade... Velocidade atual = 2 Diminuindo velocidade... Velocidade atual = 1 Diminuindo velocidade... Velocidade atual = 0 Diminuindo velocidade... Velocidade atual = 0 Diminuindo velocidade... Velocidade atual = 0 Diminuindo velocidade... Velocidade atual = 0 */ |
Arquivo: testando_o_liquidificador_analogico.java |
//
testando_o_liquidificador_analogico.java public class testando_o_liquidificador_analogico { public static void main(String args[]) { LiquidificadorAnalogico l = new LiquidificadorAnalogico(); System.out.println("Liquidificador"); for(int v=0; v<5; v++){ System.out.println("Aumentando velocidade..."); l.aumentarVelocidade(); System.out.println("Velocidade atual = " + l.obterVelocidade()); } for(int v=0; v<5; v++){ System.out.println("Diminuindo velocidade..."); l.diminuirVelocidade(); System.out.println("Velocidade atual = " + l.obterVelocidade()); } } } /* Resultado: Liquidificador Aumentando velocidade... Velocidade atual = 1 Aumentando velocidade... Velocidade atual = 2 Aumentando velocidade... Velocidade atual = 2 Aumentando velocidade... Velocidade atual = 2 Aumentando velocidade... Velocidade atual = 2 Diminuindo velocidade... Velocidade atual = 1 Diminuindo velocidade... Velocidade atual = 0 Diminuindo velocidade... Velocidade atual = 0 Diminuindo velocidade... Velocidade atual = 0 Diminuindo velocidade... Velocidade atual = 0 */ |
4 - Liquidificador Digital
Arquivo: LiquidificadorDigital.java |
// LiquidificadorDigital.java public class LiquidificadorDigital { // atributos protected int velocidade; // métodos public void trocarVelocidade(int v) { if (v>=0 && v<=2) { velocidade = v; } } public int obterVelocidade(){ return velocidade; } } /* LiquidificadorDigital (from default) -------------- # velocidade: int -------------- +obterVelocidade(): int +trocarVelocidade(int) */ |
Arquivo: testando_o_liquidificador_digital.java |
//
testando_o_liquidificador_digital.java public class testando_o_liquidificador_digital { public static void main(String args[]) { LiquidificadorDigital l = new LiquidificadorDigital(); System.out.println("Liquidificador"); for(int v=0; v<5; v++){ System.out.println("Aumentando velocidade..."); l.trocarVelocidade(v); System.out.println("Velocidade atual = " + l.obterVelocidade()); } for(int v=5; v>=0; v--){ System.out.println("Diminuindo velocidade..."); l.trocarVelocidade(v); System.out.println("Velocidade atual = " + l.obterVelocidade()); } } } /* Liquidificador Aumentando velocidade... Velocidade atual = 0 Aumentando velocidade... Velocidade atual = 1 Aumentando velocidade... Velocidade atual = 2 Aumentando velocidade... Velocidade atual = 2 Aumentando velocidade... Velocidade atual = 2 Diminuindo velocidade... Velocidade atual = 2 Diminuindo velocidade... Velocidade atual = 2 Diminuindo velocidade... Velocidade atual = 2 Diminuindo velocidade... Velocidade atual = 2 Diminuindo velocidade... Velocidade atual = 1 Diminuindo velocidade... Velocidade atual = 0 */ |
5-Usando o metodo get e set
Arquivo: PontoGeografico.java |
//
PontoGeografico.java public class PontoGeografico { private float latitude; private float longitude; public PontoGeografico(){ latitude = 0; longitude = 0; } public float getLatitude(){ return latitude; } public void setLatitude(float l){ latitude = l; } public float getLongitude(){ return longitude; } public void setLongitude(float l){ longitude = l; } } |
Arquivo: testando_o_ponto_geografico.java |
public
class testando_o_ponto_geografico { public static void main(String args[]){ PontoGeografico g = new PontoGeografico(); System.out.println("Ponto inicial"); System.out.println("Latitude: " + g.getLatitude()); System.out.println("Longitude: " + g.getLongitude()); g.setLatitude(10); g.setLongitude(20); System.out.println("Ponto final"); System.out.println("Latitude: " + g.getLatitude()); System.out.println("Longitude: " + g.getLongitude()); } } /* Resultado: Ponto inicial Latitude: 0.0 Longitude: 0.0 Ponto final Latitude: 10.0 Longitude: 20.0 */ |
6 - Sobrecarga de construtores
Arquivo: Sobrecarga_de_construtores.java |
//
Sobrecarga_de_construtores.java public class Sobrecarga_de_construtores { // atrubutos public int prim; public int sec; public Sobrecarga_de_construtores(){ prim = 0; sec = 0; } public Sobrecarga_de_construtores(int p) { prim = p; sec = 0; } public Sobrecarga_de_construtores(int p, int s) { prim = p; sec = s; } } |
Arquivo: Testando_sobrecarga_de_construtores.java |
//
Testando_sobrecarga_de_construtores.java public class Testando_sobrecarga_de_construtores { public static void main(String args[]){ // Exemplo 1: Sobrecarga_de_construtores s1 = new Sobrecarga_de_construtores(); s1.prim = 10; System.out.println("Sobrecarga 1"); System.out.println("s1.prim = " + s1.prim); System.out.println("s1.sec = " + s1.sec); // Pode ser substituido por: Sobrecarga_de_construtores s2 = new Sobrecarga_de_construtores(10); System.out.println("Sobrecarga 2"); System.out.println("s2.prim = " + s2.prim); System.out.println("s2.sec = " + s2.sec); // Exemplo 2: Sobrecarga_de_construtores s3 = new Sobrecarga_de_construtores(); s3.prim = 5; s3.sec = -2; System.out.println("Sobrecarga 3"); System.out.println("s3.prim = " + s3.prim); System.out.println("s3.sec = " + s3.sec); // Pode ser substituido por: Sobrecarga_de_construtores s4 = new Sobrecarga_de_construtores(5, -2); System.out.println("Sobrecarga 4"); System.out.println("s4.prim = " + s4.prim); System.out.println("s4.sec = " + s4.sec); } } /* Resultado: Sobrecarga 1 s1.prim = 10 s1.sec = 0 Sobrecarga 2 s2.prim = 10 s2.sec = 0 Sobrecarga 3 s3.prim = 5 s3.sec = -2 Sobrecarga 4 s4.prim = 5 s4.sec = -2 */ |
7 - Sobrecarga de metodos
Arquivo: Sobrecarga_de_metodos.java |
//
Sobrecarga_de_metodos.java public class Sobrecarga_de_metodos { public double twice (int x){ return 2*(double) x; } public double twice (double x) { return 2*x; } public double twice (String x) { return 2*(double)Integer.parseInt(x); } } |
Arquivo: Testando_sobrecarga_de_metodos2.java |
//
Testando_sobrecarga_de_metodos2.java public class Testando_sobrecarga_de_metodos { public static void main(String args[]){ Sobrecarga_de_metodos s = new Sobrecarga_de_metodos(); System.out.println("Sobrecarga de Métodos:"); System.out.println("twice(8) = " + s.twice(8)); System.out.println("twice(0.4) = " + s.twice(0.4)); System.out.println("twice(\"12\") = " + s.twice("12")); } } /* Resultado: Sobrecarga de Métodos: twice(8) = 16.0 twice(0.4) = 0.8 twice("12") = 24.0 */ |
8 - sobrecarga de metodos 2
Arquivo: Sobrecarga_de_metodos2.java |
//
Sobrecarga_de_metodos2.java public class Sobrecarga_de_metodos2 { public long somatorio (int max) { int total=0; for (int i=1;i<=max;i++) total+=i; return total; } public long somatorio (int max, int incremento){ int total=0; for (int i=1;i<=max;i+=incremento) total+=i; return total; } } |
Arquivo: Testando_sobrecarga_de_metodos2.java |
//
Testando_sobrecarga_de_metodos2.java public class Testando_sobrecarga_de_metodos2 { public static void main(String args[]){ Sobrecarga_de_metodos2 s = new Sobrecarga_de_metodos2(); System.out.println("Sobrecarga de Métodos:"); System.out.println("Somatório(8) = " + s.somatorio(8)); System.out.println("Somatório(8, 3) = " + s.somatorio(8, 3)); } } /* Resultado: Sobrecarga de Métodos: Somatório(8) = 36 Somatório(8, 3) = 12 */ |
9 - Heranca e Polimorfismo
Arquivo: LiquidificadorGenerico.java |
//
LiquidificadorGenerico.java public class LiquidificadorGenerico { // Atributos protected int velocidade; protected int velocidadeMaxima; // Construtores public LiquidificadorGenerico(){ velocidade = 0; velocidadeMaxima = 2; } public LiquidificadorGenerico(int v){ this.ajustarVelocidadeMaxima(v); } // Metodos protected void ajustarVelocidadeMaxima(int v){ if(v>0) velocidadeMaxima = v; } protected void ajustarVelocidade(int v){ if(v>=0 && v<=velocidadeMaxima) velocidade = v; } public int obterVelocidadeMaxima(){ return velocidadeMaxima; } public int obterVelocidade(){ return velocidade; } } |
Herança |
Arquivo: LiquidificadorAnalogico_heranca.java |
//
LiquidificadorAnalogico_heranca.java public class LiquidificadorAnalogico_heranca extends LiquidificadorGenerico { // construtor public LiquidificadorAnalogico_heranca(){ velocidade = 0; } // metodos public void aumentarVelocidade(){ ajustarVelocidade(velocidade + 1); } public void diminuirVelocidade(){ ajustarVelocidade(velocidade - 1); } } |
Arquivo: LiquidificadorDigital_heranca.java |
//
LiquidificadorDigital_heranca.java public class LiquidificadorDigital_heranca extends LiquidificadorGenerico { // costrutor public LiquidificadorDigital_heranca(){ velocidade = 0; } // metodo public void trocarVelocidade(int v){ // aciona método protegido para troca de velocidade ajustarVelocidade(v); } } |
Polimorfismo |
Arquivo: LiquidificadorInfo_polimorfismo.java |
//
LiquidificadorInfo_polimorfismo.java public class LiquidificadorInfo_polimorfismo { public void printINFOobterVelocidadeAtual(LiquidificadorAnalogico_heranca l){ System.out.println("Velocidade Atual: " + l.obterVelocidade()); } public void printINFOobterVelocidadeAtual(LiquidificadorDigital_heranca l){ System.out.println("Velocidade Atual: " + l.obterVelocidade()); } } |
Teste |
Arquivo: testando_o_liquidificador.java |
//
testando_o_liquidificador.java public class testando_o_liquidificador { public static void main (String args[]){ // ================================== LiquidificadorInfo_polimorfismo l = new LiquidificadorInfo_polimorfismo(); // ================================== // Liquidificador Analógico // ================================== LiquidificadorAnalogico_heranca liquidificador1 = new LiquidificadorAnalogico_heranca(); System.out.println("Liquidificador Analógico:"); l.printINFOobterVelocidadeAtual(liquidificador1); liquidificador1.aumentarVelocidade(); l.printINFOobterVelocidadeAtual(liquidificador1); liquidificador1.diminuirVelocidade(); l.printINFOobterVelocidadeAtual(liquidificador1); // ================================== // Liquidificador Digital // ================================== System.out.println("Liquidificador Digital:"); LiquidificadorDigital_heranca liquidificador2 = new LiquidificadorDigital_heranca(); l.printINFOobterVelocidadeAtual(liquidificador2); // ================================== // Liquidificador Digital // // Aciona método protegido para troca de velocidade: // ================================== System.out.println("Aciona método protegido para troca de velocidade:"); l.printINFOobterVelocidadeAtual(liquidificador2); liquidificador2.trocarVelocidade(5); l.printINFOobterVelocidadeAtual(liquidificador2); liquidificador2.trocarVelocidade(3); l.printINFOobterVelocidadeAtual(liquidificador2); // ================================== // Liquidificador Digital // // Mudando a velocidade corretamente: // ================================== System.out.println("Mudando a velocidade corretamente:"); l.printINFOobterVelocidadeAtual(liquidificador2); liquidificador2.trocarVelocidade(1); l.printINFOobterVelocidadeAtual(liquidificador2); liquidificador2.trocarVelocidade(2); l.printINFOobterVelocidadeAtual(liquidificador2); liquidificador2.trocarVelocidade(1); l.printINFOobterVelocidadeAtual(liquidificador2); liquidificador2.trocarVelocidade(0); l.printINFOobterVelocidadeAtual(liquidificador2); } } /* Resultado: Liquidificador Analógico: Velocidade Atual: 0 Velocidade Atual: 1 Velocidade Atual: 0 Liquidificador Digital: Velocidade Atual: 0 Aciona método protegido para troca de velocidade: Velocidade Atual: 0 Velocidade Atual: 0 Velocidade Atual: 0 Mudando a velocidade corretamente: Velocidade Atual: 0 Velocidade Atual: 1 Velocidade Atual: 2 Velocidade Atual: 1 Velocidade Atual: 0 */ |
10 - Composicao
Arquivo: Cidade.java |
//
Cidade.java public class Cidade { public String nome; public int populacao; public PontoGeografico_composicao coordenada; public Cidade(){ nome = ""; populacao = 0; coordenada = new PontoGeografico_composicao(); } } |
Arquivo: PontoGeografico_composicao.java |
public
class PontoGeografico_composicao { public int x; public int y; public PontoGeografico_composicao(){ x = 0; y = 0; } public void pontoGeografico(int pontox, int pontoy){ x = pontox; y = pontoy; } public int coordenadaX(){ return x; } public int coordenadaY(){ return y; } } |
Arquivo: testando_ponto_geografico.java |
//
testando_ponto_geografico.java public class testando_ponto_geografico { public static Cidade c; public static void main (String args[]){ c = new Cidade(); c.nome = "São Paulo"; c.populacao = 123456; c.coordenada.pontoGeografico(123, 456); System.out.println("Nome = " + c.nome); System.out.println("População = " + c.populacao); System.out.println("Atributos:"); System.out.println("Coordenada X = " + c.coordenada.x); System.out.println("Coordenada Y = " + c.coordenada.y); System.out.println("Metodos:"); System.out.println("Coordenada X = " + c.coordenada.coordenadaX()); System.out.println("Coordenada Y = " + c.coordenada.coordenadaY()); } } /* Resultado: Nome = São Paulo População = 123456 Atributos: Coordenada X = 123 Coordenada Y = 456 Metodos: Coordenada X = 123 Coordenada Y = 456 */ |
11-classes_abstratas
Arquivo: Circle.java |
public
class Circle extends Shape{ public void draw(){ System.out.println("drawing circle"); } } |
Arquivo: Rectangle.java |
public
class Rectangle extends Shape{ public void draw(){ System.out.println("drawing rectangle"); } } |
Arquivo: Shape.java |
public
abstract class Shape{ // metodos comum public void coordenadas(int x, int y, int largura, int altura){ System.out.println("Coordenada x===" + x); System.out.println("Coordenada y===" + y); System.out.println("Largura========" + largura); System.out.println("Altura=========" + altura); } // metodos abstrato abstract void draw(); } |
Arquivo: testando_classes_abstratas.java |
class
testando_classes_abstratas { public static void main(String args[]){ Shape s1 = new Rectangle(); s1.draw(); s1.coordenadas(10, 15, 100, 50); Shape s2 = new Circle(); s2.draw(); s2.coordenadas(110, 65, 100, 50); } } /* Resultado: drawing rectangle Coordenada x===10 Coordenada y===15 Largura========100 Altura=========50 drawing circle Coordenada x===110 Coordenada y===65 Largura========100 Altura=========50 */ |
12-Interface
Arquivo: inicio.java |
interface
inicio { // public, static and final final int a = 10; // public and abstract void display(); } |
Arquivo: TestClass.java |
class
TestClass implements inicio { // Implementing the capabilities of interface. public void display(){ System.out.println("Geek"); } public static void main (String[] args){ TestClass t = new TestClass(); t.display(); System.out.println(a); } } /* Resultado: Geek 10 */ |
13 - conhecendo a RTTI
Arquivo: ClassInfo.java |
//
ClassInfo.java import java.lang.reflect.*; public class ClassInfo { static final String usage = "" + "Uso:\n" + "\tClassInfo [+] pacote.class [palavra]\n" + "Exibe relacao de metodos da classe 'pacote.class' ou apenas\n" + "aqueles envolvendo 'palavra (opcional).\n" + "A opcoa '+' indica que tambem devem ser listados os metodos\n" + "e construtores das superclasses.\n"; public static void main(String args[]){ Class classe; Method metodos[]; Constructor construtores[]; boolean incluirHeranca; int argBusca = 0; try { incluirHeranca = args[0].equals("+"); if(incluirHeranca){ argBusca = (args.length>2 ? 2 : 0); classe = Class.forName(args[1]); metodos = classe.getDeclaredMethods(); construtores = classe.getDeclaredConstructors(); } else { argBusca = (args.length>1 ? 1 : 0); classe = Class.forName(args[0]); metodos = classe.getDeclaredMethods(); construtores = classe.getDeclaredConstructors(); } if(argBusca==0) { for(int i=0; i<construtores.length; i++) System.out.println(construtores[i].toString()); for(int i=0; i<metodos.length; i++) System.out.println(metodos[i].toString()); } else { for(int i=0; i<construtores.length; i++) if(construtores[i].toString().indexOf(args[argBusca]) != -1) System.out.println(construtores[i].toString()); for(int i=0; i<metodos.length; i++) if(metodos[i].toString().indexOf(args[argBusca])!= -1) System.out.println(metodos[i].toString()); } } catch(ClassNotFoundException e) { System.out.println("Classe nao encontrada: " + e); } catch(ArrayIndexOutOfBoundsException e) { System.out.println(usage); } System.exit(0); } } /* Resultado: java ClassInfo java.lang.String > aux.txt [abrindo aux.txt num editor] [Linux] nano aux.txt [ou Windows] notepad aux.txt java ClassInfo Bola public Bola() java ClassInfo Lampada public Lampada() public void Lampada.ligar() public void Lampada.desligar() java ClassInfo LiquidificadorAnalogico public LiquidificadorAnalogico() public void Liquidificador.aumentarVelocidade() public void Liquidificador.diminuirVelocidade() public int Liquidificador.obterVelocidade() java ClassInfo LiquidificadorDigital public LiquidificadorDigital() public void Liquidificador2.trocarVelocidade(int) public int Liquidificador2.obterVelocidade() java ClassInfo java.lang.String public java.lang.String(byte[]) public java.lang.String(byte[],int,int) public java.lang.String(byte[],java.nio.charset.Charset) public java.lang.String(byte[],java.lang.String) throws java.io.UnsupportedEncodingException . . . */ |
Classes Pesquisadas: |
Arquivo: Bola.java |
//
Bola.java public class Bola { // Atributos public float raio; public boolean oca; public int material; public String cor; } /* Bola (from default) -------------- cor material oca raio */ /* Bola (from default) -------------- cor: String materia: int oca: boolean raio: float */ /* Bola (from default) -------------- + cor: String + materia: int + oca: boolean + raio: float */ |
Arquivo: Lampada.java |
//
Lampada.java // Classe Lampada public class Lampada { // atributos public boolean acesa; // metodos public void ligar() { acesa = true; } public void desligar() { acesa = false; } } /* Lampada (from default) -------------- + acesa boolean -------------- + desligar() + ligar() */ |
Arquivo: LiquidificadorAnalogico.java |
// LiquidificadorAnalogico.java public class LiquidificadorAnalogico { // atributos private int velocidade; // metodos public void aumentarVelocidade() { switch (velocidade) { case 0: // se desligado passa para velocidade baixa velocidade++; break; case 1: // se velocidade baixa passa para velocidade alta velocidade++; break; // se velocidade alta não vaz nada (manter velocidade) } } public void diminuirVelocidade(){ switch (velocidade){ case 1: // se velocidade baixa passa para desligado velocidade--; break; case 2: // se velocidade alta passa para velocidade baixa velocidade--; break; // se desligado não faz nada } } public int obterVelocidade(){ return velocidade; } } /* Liquidificador Aumentando velocidade... Velocidade atual = 1 Aumentando velocidade... Velocidade atual = 2 Aumentando velocidade... Velocidade atual = 2 Aumentando velocidade... Velocidade atual = 2 Aumentando velocidade... Velocidade atual = 2 Diminuindo velocidade... Velocidade atual = 1 Diminuindo velocidade... Velocidade atual = 0 Diminuindo velocidade... Velocidade atual = 0 Diminuindo velocidade... Velocidade atual = 0 Diminuindo velocidade... Velocidade atual = 0 */ |
Arquivo: LiquidificadorDigital.java |
// LiquidificadorDigital.java public class LiquidificadorDigital { // atributos protected int velocidade; // métodos public void trocarVelocidade(int v) { if (v>=0 && v<=2) { velocidade = v; } } public int obterVelocidade(){ return velocidade; } } /* LiquidificadorDigital (from default) -------------- # velocidade: int -------------- +obterVelocidade(): int +trocarVelocidade(int) */ |
14 - Conhecendo a coleta de lixo
Arquivo: Lampada.java |
//
Lampada.java // Classe Lampada public class Lampada { // atributos public boolean acesa; // metodos public void ligar() { acesa = true; } public void desligar() { acesa = false; } } /* Lampada (from default) -------------- + acesa boolean -------------- + desligar() + ligar() */ |
Arquivo: testando_coleta_de_lixo.java |
//
testando_coleta_de_lixo.java public class testando_coleta_de_lixo { public static Lampada lamp; public static void main (String args[]){ lamp = new Lampada(); lamp.ligar(); System.out.println("Lampada Criada (Acesa = " + lamp.acesa + ")"); lamp.desligar(); System.out.println("Lampada Criada (Acesa = " + lamp.acesa + ")"); lamp = null; try { lamp.ligar(); System.out.println("Lampada Criada (Acesa = " + lamp.acesa + ")"); lamp.desligar(); System.out.println("Lampada Criada (Acesa = " + lamp.acesa + ")"); } catch (java.lang.NullPointerException e) { System.out.println("O Construtor lamp esta na Coleta de Lixo."); } Runtime rt = Runtime.getRuntime(); System.out.println("Memoria: " + rt.freeMemory()); System.out.println("Liberando memoria com System.gc()"); System.gc(); System.out.println("Memoria: " + rt.freeMemory()); System.out.println("O Construtor lamp NAO esta mais na Coleta de Lixo."); lamp = new Lampada(); lamp.ligar(); System.out.println("Lampada Criada (Acesa = " + lamp.acesa + ")"); lamp.desligar(); System.out.println("Lampada Criada (Acesa = " + lamp.acesa + ")"); System.out.println("Memoria: " + rt.freeMemory()); } } /* Resultado: Lampada Criada (Acesa = true) Lampada Criada (Acesa = false) O Construtor lamp esta na Coleta de Lixo. Memoria: 61464664 Liberando memoria com System.gc() Memoria: 62332176 O Construtor lamp NAO esta mais na Coleta de Lixo. Lampada Criada (Acesa = true) Lampada Criada (Acesa = false) Memoria: 61983512 */ |