Relacionamento entre Classes e Objetos

Retomando a classe Círculo


In [1]:
public class Circulo {
   int centroX, centroY;
   int raio;
   
   Circulo(int centroX, int centroY, int raio) {
      this.centroX = centroX;
      this.centroY = centroY;
      this.raio = raio;
   }
   
   void mostraArea() {
      System.out.println(Math.PI * raio * raio);
   }
}


Out[1]:
com.twosigma.beaker.javash.bkr1588711f.Circulo

Identidade do Objeto

O código a seguir mostra a identidade de uma instância da classe círculo.


In [2]:
Circulo circ = new Circulo(5, 3, 10);

System.out.println("Identidade: " + circ);


Identidade: com.twosigma.beaker.javash.bkr1588711f.Circulo@712948e5
Out[2]:
null

Objetos Grafico e Potencia trabalhando em conjunto

Classe Grafico

  • Atributos
    • preenchido - define se a plotagem será preenchida;
    • caractere - define o caractere da plotagem.
  • Método
    • plota() - plota uma barra do gráfico.

In [3]:
public class Grafico {
   boolean preenchido;
   char caractere;
   
   Grafico(boolean preenchido, char caractere) {
      this.preenchido = preenchido;
      this.caractere = caractere;
   }

   void plota(int valor) {
      for (int v = 1; v < valor; v++)
         System.out.print((preenchido) ? caractere : ' ');
      System.out.println(caractere);
   }
}


Out[3]:
com.twosigma.beaker.javash.bkr1588711f.Grafico

Usando objetos da classe Grafico

Abaixo um exemplo de como objetos da classe Grafico podem ser usados.


In [4]:
Grafico g1 = new Grafico(true, '#');
g1.plota(10);
g1.plota(12);
g1.plota(8);
System.out.println();

Grafico g2 = new Grafico(false, '*');
g2.plota(4);
g2.plota(5);
g2.plota(7);


##########
############
########

   *
    *
      *
Out[4]:
null

Classe Potencia

Gera uma sequência de números que crescem em uma potência quadrada.

  • Atributos:
    • inicial - valor inicial da sequência;
    • quantidade - quantidade de valores na sequência;
    • saida - referência para um objeto da classe Grafico.
  • Métodos
    • conecta - informa a identidade de um objeto da classe Grafico para ser usado para plotagem;
    • apresenta - apresenta o gráfico exponencial (em conjunto com um objeto da classe Grafico).

In [5]:
public class Potencia {
   int inicial;
   int quantidade;
   Grafico saida;

   Potencia(int inicial, int quantidade) {
      this.inicial = inicial;
      this.quantidade = quantidade;
      saida = null;
   }

   void conecta(Grafico saida) {
      this.saida = saida;
   }

   void apresenta() {
      if (saida != null) {
         int v = inicial;
         for (int i = 1; i <= quantidade; i++) {
            saida.plota(v);
            v *= 2;
         }
      }
   }
}


Out[5]:
com.twosigma.beaker.javash.bkr1588711f.Potencia

Criando e conectando objetos

Exemplo que cria um objeto da classe Potencia outro da classe Grafico e os conecta para que trabalhem em conjunto.


In [6]:
Grafico g1 = new Grafico(true, '#');
Potencia p = new Potencia(1, 7);
p.conecta(g1);
p.apresenta();


#
##
####
########
################
################################
################################################################
Out[6]:
null

Conectando o objeto Potencia com dois objetos Grafico

Exemplo conectando o mesmo objeto da classe Potencia com dois objetos da classe Grafico.


In [7]:
Grafico g1 = new Grafico(true, '#');
Grafico g2 = new Grafico(false, '*');

Potencia p = new Potencia(1, 7);

p.conecta(g1);
p.apresenta();

p.conecta(g2);
p.apresenta();


#
##
####
########
################
################################
################################################################
*
 *
   *
       *
               *
                               *
                                                               *
Out[7]:
null

Exercício do Gráfico de Segundo Grau

Função de segundo grau

Escreva uma classe SegundoGrau cujos objetos produzam valores de uma função de segundo grau.


In [ ]:

Plotagem de parábola

Escreva um programa que conecte um objeto da classe SegundoGrau a um objeto da classe Grafico de forma que seja plotada uma parábola. Por conta do comportamento da classe Grafico, a parábola será plotada virada, ou seja eixos X e Y trocados.


In [ ]: