Prática de Introdução à Programação Orientada a Objetos em Java (1)
Conceitos I
Java é uma linguagem compilada. No entando, seu compilador não gera código para um processador específico, mas sim para uma máquina virtual Java (JVM - Java Virtual Machine). Os programas Java são, portanto, portáveis sobre todos os computadores para os quais existir uma implementação da JVM. Desta forma, Java tem o benefício de linguagens compiladas, e das linguagens interpretadas.
Exercícios
- A execução de um programa compilado é mais eficiente que a execução de um programa pelo processo de interpretação. Por quê?
- O que é um arquivo
.java
? - O que é um arquivo
.class
? - O que é o aplicativo
javac
? - O que é o aplicativo
java
?
Conceitos II
Vimos que o princípio da orientação a objetos está associado ao encapsulamento
de comportamento. Neste paradigma, a única forma de fazer evoluir um programa
é permitir que objetos compartilhem dados entre si através de trocas explícitas
de mensagens. Uma mensagem
consiste em uma requisição, onde o objeto requisitante
envia uma solicitação de serviço para o objeto requisitado.
Esse serviço, precisa pertencer à interface de serviços
oferecida pelo objeto
requisitado. Em orientação a objetos, um serviço é especificado para um objeto
como um método. Um método pode ser de acesso
, o qual permite a leitura de informações que estão localizadas no contexto do objeto requisitado, ou de
modificação
, que possui a capacidade de alterar alguma informação
armazenada no contexto do objeto. Estas informações, representadas
por dados armazenados no contexto do objeto, são chamadas de atributos
-
objetos possuem atributos representando seu estado interno.
Na programação Orientada a Objetos, a evolução da execução se dá através da
interação entre objetos. Os objetos trocam mensgans entre si. Um objeto
que deseja mandar uma mensagem a um outro objeto necessita de alguma
referência
sobre o objeto destino. Um objeto é apenas referenciado, ou seja,
ele não se encontra contido no estado interno do objeto que o referencia.
Desta forma, é possível que um mesmo objeto seja referenciado por
dois ou mais objetos ao mesmo tempo
Exercícios
- Faz sentido em programa OO, a existência de um objeto que não seja referenciado por nenhum objeto?
- Dois objetos da mesma classe, podem possuir o mesmo valor para alguns ou todos os seus atributos?
- Diferencie variável e referência de objetos.
- Diferencie classe de objeto.
- O que é um arquivo
.jar
em java? - Implemente uma classe para objetos capazes de calcular o desempenho de uma turma. Este desempenho deve ser apresentado, segundo a necessidade do usuário, como média aritmética ou harmônica. Para implementar esta classe identifique: os atributos necessários, o valor inicial para os atributos e os métodos que devem ser implementados. Faça um programa teste, com um método main para testar a sua classe.
- O que é sobrecarga de método. Faça um programa para exemplificar sua resposta.
- Implemente uma classe para conter informações sobre um funcionário de uma empresa. Define os atributos, incluindo informações sobre o salário que o funcionário deve receber por hora trabalhada. Implemente para esta classe pelo menos três métodos construtores: um que receba apenas o nome do funcionário e assuma valores default para os outros atributos, o outro construtor deve receber, além do nome, o valor que o funcionário recebe por hora trabalhada. Indentifique e implemente outros métodos que achares adequado para essa classe. Faça um programa teste, com um método main para testar a sua classe.
- Implemente uma classe empresa a qual faz referência a objetos da classe funcionário do exercício anterior.
Material de Apoio
- The Java Tutorial
Tutorial da Sun sobre Java. - Thinking in Java
E-book de Bruce Eckel sobre programação em Java, originalmente em inglês. Neste endereço encontra-se a versão oficial do livro para download (formato HTML compactado). Há uma tradução colaborativa deste livro para a língua portuguesa. - Tutorial "A Linguagem de Programação Java"
Tutorial sobre Java em português (Unicamp). Está um pouco desatualizado, mas grande parte do conteúdo ainda é útil, principalmente para quem tem dificuldades de leitura dos tutoriais em inglês.