Difference between revisions of "Classes Internas (Java)/Gato e Estômago/Classe interna a um método"

From Wiki**3

< Classes Internas (Java)‎ | Gato e Estômago
(Resultados)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
A interface <code>Estômago</code> (implementada pela classe interna) é como [[#Classe Interna Implementa Inferface|anteriormente]].
+
A interface <code>Estômago</code> (implementada pela classe interna) é como [[Classes Internas (Java)/Gato e Estômago/Classe interna implementa interface|anteriormente]].
  
 
==Classe Gato==
 
==Classe Gato==
Line 62: Line 62:
 
   '''Teste4.java''' Teste4.class
 
   '''Teste4.java''' Teste4.class
  
 +
[[category:Ensino]]
 +
[[category:PO]]
 +
[[category:PO Exemplos]]
 
[[category:Java]]
 
[[category:Java]]
[[category:OOP]]
 
[[category:Teaching]]
 
[[category:PO Exemplos]]
 

Latest revision as of 20:14, 23 October 2013

A interface Estômago (implementada pela classe interna) é como anteriormente.

Classe Gato

 public class Gato {
   private boolean _comFome = true;
   Gato() { System.out.println("Gato criado"); }
 
   // ERRO: "EstômagoDeGato" está definida apenas em "comer"
   // public Estômago getEstômago() { return new EstômagoDeGato(); }
 
   public boolean temFome() { return _comFome; }
 
   public void comer() {
 
     class EstômagoDeGato implements Estômago {
       private double _ph = 1.4;
       private boolean _comBolaDePelo = false;
       EstômagoDeGato() { System.out.println("Estômago criado"); }
       public void digere() {
         System.out.println("Digestão");
       }
       void eliminaBolaDePêlo() {
         System.out.println("Bola de pêlo... ghh, gaah, ghh... eliminada");
         _comFome = false;
       }
     }
 
     System.out.println("Gato: a comer...");
     EstômagoDeGato e = new EstômagoDeGato();
     e.digere();
     e.eliminaBolaDePêlo();
   }
 
 }

Teste

 public class Teste4 {
   public static void main(String[] args) {
     Gato g = new Gato();
     System.out.println("Gato com fome: " + g.temFome());
     g.comer();
     System.out.println("Gato com fome: " + g.temFome());
   }
 }

Resultados

 $ java Teste4
 Gato criado
 Gato com fome: true
 Gato: a comer...
 Estômago criado
 Digestão
 Bola de pêlo... ghh, gaah, ghh... eliminada
 Gato com fome: false
 $ ls
 Estômago.java Estômago.class
 Gato.java Gato.class Gato$1EstômagoDeGato.class
 Teste4.java Teste4.class