Exemplo do Círculo (Classe e Objeto)

Classe Círculo

Abaixo é defina uma classe Circulo com três atributos: centroX, centroY e raio. Nesse exemplo, a classe se comporta como uma estrutura (struct) em lingugaem C.


In [1]:
public class Circulo {
   int centroX, centroY;
   int raio;
}


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

Instância/Objeto da Classe Círculo

Abaixo é criada uma instância da classe Circulo através do new e são atribuídos valores aos atributos. A variável circ recebe um ponteiro para o objeto criado.


In [2]:
Circulo circ = new Circulo();
circ.centroX = 5;
circ.centroY = 3;
circ.raio = 10;

System.out.println("Circulo: centro(" + circ.centroX + ", " + circ.centroY + "), raio " + circ.raio);


Circulo: centro(5, 3), raio 10
Out[2]:
null

Exercício do Horário

Classe Horário

Escreva na célula abaixo o código para definir uma classe denominada Horario que registre um horário - hora, minuto e segundo em campos separados. Escreva somente a classe.


In [ ]:

Instância/Objeto da Classe Horário

Escreva na célula abaixo um código em Java que instancie um horário e o mostre no console no formato hora:minuto:segundo.


In [ ]:

Calculando a Área do Círculo (Método)

Método mostraArea()

Abaixo é acrecentado um método na classe que calcula e mostra a área do círculo.


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


Out[3]:
com.twosigma.beaker.javash.bkr551e8d06.Circulo

Acionando o método mostraArea()

Abaixo o programa aciona o método mostraArea(). Note que a chamada do método é vinculada a variável que mantém a instância (objeto): circ.mostraArea() .


In [4]:
Circulo circ = new Circulo();
circ.centroX = 5;
circ.centroY = 3;
circ.raio = 10;

System.out.println("Circulo: centro(" + circ.centroX + ", " + circ.centroY + "), raio " + circ.raio);
circ.mostraArea();


Circulo: centro(5, 3), raio 10
314.1592653589793
Out[4]:
null

In [ ]:

Método area()

Abaixo é acrecentado um método na classe que calcula a área do círculo.


In [5]:
public class Circulo {
   int centroX, centroY;
   int raio;
   
   double area() {
      return Math.PI * raio * raio;
   }
}


Out[5]:
com.twosigma.beaker.javash.bkr551e8d06.Circulo

Acionando o método area()

Abaixo o programa aciona o método area(). Note que o retorno da chamada pode ser embutida na função.


In [6]:
Circulo circ = new Circulo();
circ.centroX = 5;
circ.centroY = 3;
circ.raio = 10;

System.out.println("Circulo: centro(" + circ.centroX + ", " + circ.centroY + "), raio " + circ.raio);
System.out.println("Area do circulo: " + circ.area());


Circulo: centro(5, 3), raio 10
Area do circulo: 314.1592653589793
Out[6]:
null

Exercício do Horário (método)

Classe Horário com método

Na célula a seguir, copie a classe Horario que você fez anteriormente e acrescente um método emSegundos() que retorne o horário convertido para segundos, ou seja, as horas e os minutos sejam convertidos para segundos. Todos os valores são somados em um único número (valor total em segundos) que é retornado pelo método.


In [ ]:

Acionando o método emSegundos()

Escreva na célula a seguir um código para instanciar um objeto da classe Horario e apresente o horário em segundos acionando o método criado.


In [ ]:

Valores Iniciais para o Círculo (Construtor)

Método Construtor

Como pode ser visto no código abaixo, a classe pode ter um método construtor que tem o mesmo nome da classe. O método construtor é o único que não tem tipo de retorno. Neste caso, o método recebe três parâmetros que são valores iniciais transferidos para seus atributos.


In [7]:
public class Circulo {
   int centroX, centroY;
   int raio;
   
   Circulo(int pCentroX, int pCentroY, int pRaio) {
      centroX = pCentroX;
      centroY = pCentroY;
      raio = pRaio;
   }
   
   double area() {
      return Math.PI * raio * raio;
   }
}


Out[7]:
com.twosigma.beaker.javash.bkr551e8d06.Circulo

Usando o this no método construtor

Na versão anterior do código criamos parâmetros com nomes diferentes dos atributos para diferenciá-los. É bastante comum que os parâmetros tenham o mesmo nome dos atributos a quem eles transferirão o valor, como no código abaixo. Nesse caso, é necessário o uso da cláusula this que representa a instância do objeto corrente e permite a diferenciação dos atributos e parâmetros, como no exemplo abaixo.


In [8]:
public class Circulo {
   int centroX, centroY;
   int raio;
   
   Circulo(int centroX, int centroY, int raio) {
      this.centroX = centroX;
      this.centroY = centroY;
      this.raio = raio;
   }
   
   double area() {
      return Math.PI * raio * raio;
   }
}


Out[8]:
com.twosigma.beaker.javash.bkr551e8d06.Circulo

Acionando o construtor

No código a seguir o construtor é acionado na criação do objeto.


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

System.out.println("Circulo: centro(" + circ.centroX + ", " + circ.centroY + "), raio " + circ.raio);
System.out.println("Area do circulo: " + circ.area());


Circulo: centro(5, 3), raio 10
Area do circulo: 314.1592653589793
Out[9]:
null

Exercício do Horário (construtor)

Classe Horario com construtor

Copie a classe Horario criada anteriormente na célula abaixo e acrescente um construtor que receba o horário (hora, minuto e segundo) como parâmetro para inicializar os atributos do objeto.


In [ ]:

Acionando o construtor

Escreva na célula a seguir o código para criar um objeto da classe Horario usando o construtor que você criou.


In [ ]: