Exercícios OO resolvido

Exercícios OO resolvido

Exercícios Sobre Java e o Paradigma Orientado a Objeto

  1. Qual a diferença entre classe e objeto?

R: Classe é um conjunto de objetos, onde objetos contém características e ações.

Classe é um molde composta por atributos e métodos. Objetos são instância da classe.

  1. Qual é a finalidade do método construtor?

R:Ao instanciar uma classe, inicializa os atributos.

Tem por função dar a forma ao espaço de memória ao qual faz referência (a classe correspondente). As variáveis locais não há valores padrões, porém as globais sim (Ex: int => 0, String = NULL etc).

  1. Identifique na instrução abaixo: a classe, o objeto, o construtor e a operação de instanciação.

Computador computador = new Computador();

R:

Computador  Classe

computador  Objeto

Computador()  Construtor

new Computador();  Operação de Instanciação

  1. O que diferencia um construtor de um método qualquer?

R:Não há tipo de retorno; A visibilidade do mesmo oferece apenas dois tipos (public e default); Possuem o mesmo nome da classe; Não possuem parâmetros (no Modo Default).

  1. Observe que a classe abaixo não possui um construtor. Porém, para que seja criado um objeto sempre é necessário utilizar o operador new seguido do nome do construtor. Desta forma, não será possível criar um objeto desta classe? Explique.

public class Garrafa{

private String tipo;

public void setTipo (String tipo){

this.tipo = tipo;

}

public String getTipo(){

return tipo;

}

}

R:É possível sim. Pois, há o método construtor na classe pai.

  1. A classe abaixo é parecida com a classe do exercício anterior, porém agora ela possui um construtor alternativo. O que irá acontecer se em outra classe você desejar criar um objeto da mesma com a seguinte instrução:

Garrafa gar = new Garrafa();

public class Garrafa{

private String tipo;

/*

public Garrafa(){ //Construtor default

}

*/

public Garrafa (String tipo){//Construtor modificado

this.tipo = tipo;

}

public void setTipo (String tipo){

this.tipo = tipo;

}

public String getTipo(){

return tipo;

}

}

R: Não há construtor default declarado explicitamente.

  1. As duas classes abaixo não estão no mesmo pacote. Faça uma análise das mesmas e corrija possíveis erros de compilação. A resposta deve respeitar a regra de encapsulamento.

public class Carro{

protected int litrosNoTanque;

protected boolean carroLigado;

private void encherTanque(int litros){

litrosNoTanque = litros;

}

}

public class TesteCarro{

public static void main (String args[]){

Carro carro = new Carro();

carro.encherTanque(10);

carro.carroLigado = true;

}

}

R: 1) Alterar a visibilidade do método “encherTanque” para protected; 2) Criar os encapsulamentos (setters e getters); 3) importar o pacote “Carro”, na classe “TesteCarro”.

  1. Observe as classes Circulo e TesteCirculo abaixo e realize as seguintes tarefas:

- Declare o atributo raio da classe Circulo como privado;

- Crie os métodos necessários na classe Circulo de modo que seja possível obter ou alterar o valor do atributo raio pela classe TesteCirculo;

- Caso o objetivo seja alterar o valor do atributo raio, faça a seguinte verificação: Se o valor do novo raio for positivo, faça a atribuição, caso contrário não faça;

- Siga as orientações presentes na classe TesteCirculo e execute cada tarefa;

public class Circulo{

double raio;

}

public class TesteCirculo{

public static void main (String args[]){

/* Crie um objeto da classe Circulo */

/* Coloque aqui o codigo para alterar o raio para 10 */

/* Coloque aqui o codigo para obter o valor do raio */

}

}

R:

  1. Observe as classes AcessaBanco e TesteBanco abaixo e realize as seguintes tarefas:

- Declare os atributos login e conectado da classe AcessaBanco como privado;

- Crie os métodos necessários na classe AcessaBanco de modo que seja possível obter ou alterar o valor dos atributos login e conectado pela classe TesteBanco;

- Siga as orientações presentes na classe TesteBanco e execute cada tarefa;

public class AcessaBanco{

String login;

boolean conectado;

}

public class TesteBanco{

public static void main (String args[]){

/* Crie um objeto da classe AcessaBanco */

/* Coloque aqui o codigo para alterar o login para o seu nome */

/* Coloque aqui o codigo para ajustar conectado para true */

}

}

R:

  1. Analise o código abaixo e descreva em poucas linhas onde está o erro de compilação e qual seria a solução para corrigir o mesmo.

public class TesteStatic{

private int a1;

private int a2;

public static void main (String args[]){

iniciar(10,40);

}

public void iniciar(int v1, int v2){

int b1 = v1;

int b2 = v2;

}

}

4

Comentários