TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Modelagem

Casos: Modelagem. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  10/3/2015  •  1.710 Palavras (7 Páginas)  •  155 Visualizações

Página 1 de 7

POO – AULA 03

 Objetivos da aula

 Reforçar o conceito de encapsulamento

 Apresentar métodos parametrizados

 Introduzir os níveis de acessibilidade de atributos e métodos

 Esclarecer o uso dos construtores

 Recordando...

Na aula passada criamos uma classe Carro, na qual havia alguns atributos e métodos. Na classe que usamos para instanciar e testar um objeto da classe Carro, que chamamos de classe Principal, iniciamos diretamente os atributos do objeto meuCarro, logo após instanciá-lo. Entretanto, esta NÃO é a forma mais adequada de fazer isso.

De fato, ao projetarmos uma classe, devemos ter em mente que o conceito de encapsulamento é muito importante na POO. Isto significa que os métodos da classe devem, geralmente, ser os únicos responsáveis pelo acesso aos atributos da classe. Isso “esconde” o modo de funcionamento da classe, privilegiando o uso da interface da classe como forma única de acesso, o que facilita o teste, a manutenção e a reusabilidade das mesmas.

 Uma forma mais adequada

Para evitarmos iniciar os atributos da classe fora da mesma, devemos criar métodos na própria classe que façam esse acesso, tanto de escrita quando de leitura, sempre que necessário.

Podemos alterar a classe Carro, introduzindo um método configurarCarro, que seja responsável pela iniciação dos atributos. Entretanto, como passar os valores que desejamos para os atributos do carro? A resposta é: através de argumentos no método. Ao enviarmos uma mensagem para um objeto da classe Carro através do método configurarCarro, devemos especificar os valores desejados para o carro (que chamamos de parâmetros correspondentes aos argumentos). Ou seja, o método configurarCarro deve estar apto a receber esses parâmetros como argumentos e atribuí-los aos atributos do carro (por vezes os termos parâmetros e argumentos são usados indiferentemente, mas argumentos são tipos formais e parâmetros são valores reais).

O código a seguir prepara o método configurarCarro para receber os argumentos desejados para a classe Carro:

void configurarCarro(String m, String c, boolean e) {

marca = m;

cor = c;

motorEstado = e;

}

Na classe Principal, para realizar a chamada do método, agora devemos passar os parâmetros adequados aos argumentos, da seguinte forma:

meuCarro.configurarCarro("Palio","azul",false);

Edite, compile e teste o funcionamento da alteração do código.

Na parte de Desafios da aula 1 foram criados o atributo rotacaoMotor e os métodos acelerar e desacelerar. Estes métodos também podem ser reescritos para receber como parâmetros os valores a serem somados ou subtraídos do atributo rotacaoMotor. A inclusão do atributo fica assim:

int rotacaoMotor;

O código dos métodos acelerar e desacelerar fica assim:

void acelerar(int parcela) {

rotacaoMotor += parcela;

System.out.println("O motor foi acelerado para "

+ rotacaoMotor + " RPM.");

}

void desacelerar(int parcela) {

rotacaoMotor -= parcela;

System.out.println("O motor foi desacelerado para "

+ rotacaoMotor + " RPM.");

}

E as chamadas dos métodos na classe principal ficam assim:

System.out.println("---------");

System.out.println("Acelerando o motor...");

meuCarro.acelerar(80);

System.out.println("---------");

System.out.println("Desacelerando o motor...");

meuCarro.desacelerar(120);

Edite, compile e teste o funcionamento da alteração do código.

 Definindo a acessibilidade

De fato, a correção feita no código da classe Carro foi positiva, mas não impede o uso indevido dos atributos por uma classe externa. Para tanto, devemos utilizar o recurso de definir a acessibilidade do elemento (classe, atributo ou método). Fazemos isso, em Java, usando as palavras reservadas public, private, package e protected na declaração.

Os atributos e métodos public constituem a interface da classe e são acessíveis a qualquer método de qualquer classe externa. Os atributos e métodos private são de acesso exclusivo dos métodos da classe. Os de acessibilidade protected são passíveis de acesso por métodos de classes que herdem da classe que os definiu (trabalharemos esse conceito mais adiante). O nível package, que é assumido como padrão quando nenhum nível de acessibilidade é explicitamente definido (o que é o caso do nosso exemplo da aula passada), define o atributo ou método como acessível para qualquer método de classe dentro do mesmo pacote (este conceito também será trabalhado mais adiante).

No nosso caso, desejamos restringir o acesso aos atributos da classe Carro. Para tanto, vamos defini-los como private. Altere assim o código:

private String marca;

private String cor;

private boolean motorEstado;

private int rotacaoMotor;

Agora tente acessar os atributos como feito na aula passada...Pois é, a linguagem impede o acesso dessa forma, pois ela passou a ser errada.

 Mais sobre parametrização – set e get

Além de passarmos parâmetros para os métodos de uma classe durante uma mensagem, podemos também receber dados dos métodos chamados. Uma forma

...

Baixar como (para membros premium)  txt (10.8 Kb)  
Continuar por mais 6 páginas »
Disponível apenas no TrabalhosGratuitos.com