COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: CONSTRUTORES FOZ DO IGUAÇU 2013
LISTA DE FIGURAS FIGURA 1 A CLASSE CAIXA COM UM CONSTRUTOR PARA INICIALIAR LARGURA, ALTURA E PROFUNDIDADE.... 1 FIGURA 2 O CONSTRUTOR CAIXA USADO PARA ESPECIFICAR OS VALORES DOS ATRIBUTOS CADA VEZ QUE UM OBJETO CAIXA FOR CRIADO.... 2 FIGURA 3 DIAGRAMA DE CLASSES UML PARA A CLASSE CAIXA, CONTENDO O CONSTRUTOR.... 2 FIGURA 4 DEFINIÇÃO DO CONSTRUTOR DA CLASSE COM PARÂMETROS.... 3 FIGURA 5 DIAGRAMA DE CLASSES UML DEFININDO O CONSTRUTOR DA CLASSE COM PARÂMETROS.... 3 FIGURA 6 APLICATIVO QUE INSTANCIA OBJETOS CONTENDO CONSTRUTORES COM MÚLTIPLOS PARÂMETROS.... 3
SUMÁRIO 2 CONSTRUTORES... 1 2.1 CONSTRUTORES PARAMETRIZADOS... 2 2.2 EXERCÍCIOS... 4 2.3 BIBLIOGRAFIA... 5
1 2 CONSTRUTORES É mais simples e conciso ter toda configuração feita no momento em que o objeto é criado pela primeira vez. Pela exigência de inicialização ser tão comum, Java permite que objetos inicializem-se quando são criados. Esta inicialização automática é realizada através da utilização de um construtor. Um construtor inicializa um objeto imediatamente após a criação. Ele tem o mesmo nome da classe em que reside e é sintaticamente similar a um método. Uma vez definido, o construtor é automaticamente chamado imediatamente após o objeto ser criado, antes de o novo operador concluir. Construtores não têm nenhum tipo de retorno, nem mesmo void. O tipo de retorno implícito do construtor de uma classe é o tipo de classe em si. O trabalho do construtor é inicializar o estado interno de um objeto para que a criação de código em uma instância seja totalmente inicializada, imediatamente utilizável. A figura 1 exemplifica nas linhas 8 a 13 um construtor para a classe Caixa. Figura 1 A classe Caixa com um construtor para inicialiar largura, altura e profundidade. A figura 2 mostra uma aplicação que demonstra o funcionamento do construtor quando o objeto cx do tipo Caixa é instanciado.
2 Figura 2 O construtor Caixa usado para especificar os valores dos atributos cada vez que um objeto Caixa for criado. Quando um construtor não é definido explicitamente para uma classe, o Java cria um construtor padrão para a classe. O construtor padrão inicializa automaticamente todas as variáveis de instância para zero. O construtor padrão é muitas vezes suficiente para classes simples. Depois de definir o seu próprio construtor, o construtor padrão não é mais usado. A figura 3 representa a classe Caixa com seu respectivo método construtor no diagrama de classes UML Figura 3 Diagrama de classes UML para a classe Caixa, contendo o construtor. 2.1 CONSTRUTORES PARAMETRIZADOS É necessário uma forma de construção de objetos Caixa de várias dimensões. A solução mais fácil é adicionar parâmetros para o construtor, isso o torna muito mais útil. A figura 4 apresenta uma versão da classe Caixa que define um construtor com parâmetros, definindo as dimensões de uma caixa especificadas por parâmetros. A figura 5 representa a classe Caixa no diagrama de classes UML.
3 Figura 4 Definição do construtor da classe com parâmetros. Figura 5 Diagrama de classes UML definindo o construtor da classe com parâmetros. A aplicação apresentada na figura 6 mostra o uso do construtor com parâmetros no momento de instanciar dois novos objetos, cx1 e cx2, do tipo Caixa. Figura 6 Aplicativo que instancia objetos contendo construtores com múltiplos parâmetros.
4 2.2 EXERCÍCIOS 1. Crie uma classe chamada MinhaClasse com um atributo inteiro x. Crie um construtor para essa classe e inicialize o objeto com 10. 2. Crie uma classe de demonstração. Instancie dois objetos do tipo MinhaClasse, t1 e t2. Exiba uma mensagem mostrando o valor de x de cada objeto. 3. Altere a classe MinhaClasse para que construtor receba como parâmetro um valor inteiro, e atribua-o a x. 4. Crie outra classe de demonstração que solicite ao usuário dois valores, e atribuaos ao construtor ao instanciar os objetos t1 e t2 do tipo MinhaClasse. Exiba uma mensagem mostrando o valor de x de cada objeto. 5. Crie uma classe Veiculo conforme as descrições abaixo: Os atributos: Passageiros: número máximo de passageiros. Combustível: capacidade máxima de combustíveis em litros. Consumo: consumo de combustível por quilômetros por litro. Os métodos: Distância: retorna a distância em quilômetros com o tanque cheio, consumo * combustível. combustívelnecessário: calcula o combustível necessário para uma certa distância. O construtor recebe como parâmetro o número de passageiros (p), a capacidade de litros do tanque de combustível (c) e o consumo em quilômetros por litro (k), atribuindo os valores para seus respectivos atributos. 6. Crie uma classe VeiculoDemo e instancie dois veículo: Minivan, com 7 passageiros, 57.6 litros de combustível, 29.4 quilômetros por litro de combustível.
5 Carro esporte, com 2 passageiros, 50.4 litros de combustível, 16.8 quilômetros por litro de combustível. Exiba uma mensagem informando quanto combustível será necessário para cada veículo percorrer 352.8 km? 7. Crie a classe LivroNotas conforme as descrições abaixo: nomecurso : atributo nome do curso correspondente ao livro de notas. Métodos: setnomecurso : método que recebe e armazena o nome do curso no atributo. getnomecurso: método que recupera (retorna) o nome do curso. mostramensagem: mostra uma mensagem de boas vindas ao usuário do Livro de Notas. Essa mensagem utilizará o método getnomecurso para mostrar o nome do curso que represente esse Livro de Notas. Construtor: ao instanciar um novo Livro de Notas o construtor inicializa o atributo nomecurso com uma String passada como argumento. 8. Crie uma casse LivroNotasDemo e instancie duas disciplinas, d1 e d2. 2.3 BIBLIOGRAFIA DEITEL, Paul; DEITEL, Harvey. Java for programmers. 2 nd ed. Boston: Pearson Education, 2012 p. 53-56. SCHILDT, Herbert. Java: The Complete Reference. 7 th ed. US: McGraw-Hill, 2007 p. 117-119. SCHILDT, Herbert. Java: A Beginner s Guide. 3 rd ed. US: McGraw-Hill, 2005 p. 139-141