Computação II - Java Classes and Objects Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Classes and Objects Nestes exercícios vamos usar diagramas inspirados em UML. A Figura 1 mostra um exemplo dos diagramas que usaremos. Os exercícios listados a seguir foram propostos a partir de listas minhas e Igor Vaz. Dog +size: double -name: String +bark() +eat() +chaseCat() +getName(): String Figura 1: Exemplo de diagrama de classe. O diagrama mostrado na Figura 1 pode representar a classe mostrada na Listagem 1. Repare que no diagrama os atributos e funções públicos são marcados com o sinal de +. O sinal de − indica que o atributo ou função é privado. Listagem 1: Listagem da classe Dog. p u b l i c c l a s s Dog { p u b l i c i n t size ; p r i v ate String name ; p u b l i c String getName () { return name ; } p u b l i c void bark () { } p u b l i c void eat () { } p u b l i c void chaseCat () { } } 1 Adriano Cruz Computação II - Java Classes and Objects Exercício 1: Quais são as coisas mais importantes que você precisa considerar quando estiver projetando uma classe Java? Exercício 2: O que define o estado de um objeto? Exercício 3: Teste o programa mostrado nas Listagens 2 e 3. Descreva os elementos principais do programa. Observe o operador ponto (.). Este operador permite acesso ao estado de um objeto (instance variables) e ao seu comportamento (métodos). Listagem 2: Listagem da classe Cat. p u b l i c c l a s s Cat { p u b l i c i n t size ; void meow () { System . out . println ( " Meow ! Meow !"); } } Listagem 3: Listagem da classe TestCat. p u b l i c c l a s s TestCat { p u b l i c s t a t i c void main ( String [] args ) { Cat c = new Cat () ; c . size = 30; c . meow () ; } } Exercício 4: Pesquise para saber se existe, como na linguagem C, o conceito de variável global. É possível definir uma variável como global? Exercício 5: O programa mostrado nas listagens 4 e 5 não roda devido a um erro de compilação. Descubra este erro, o corrija e verifique o seu funcionamento. 2 Adriano Cruz Computação II - Java Classes and Objects Listagem 4: Listagem da classe Tiger. p u b l i c c l a s s Tiger { p u b l i c boolean canJump = f a l s e ; void jump ( i n t times ) { i f ( canJump == true ) { f o r ( i n t i = 0; i < times ; i ++) { System . out . println ( " Jump " ); } } } } Listagem 5: Listagem da classe TestTiger. p u b l i c c l a s s TestTiger { p u b l i c s t a t i c void main ( String [] args ) { d . canJump = true ; d . jump (3) ; } } 3 Adriano Cruz