Laboratrio I Mateus Raeder Associao entre classes Um
Laboratório I Mateus Raeder
Associação entre classes § Um objeto é a representação de uma entidade do mundo real § Instanciar é criar um novo objeto § Por exemplo, Floribela é uma instância da classe Pessoa § No Blue. J, como criamos uma instância de uma classe? clicando com o direito na classe e escolhendo new. . . § O que aparece no Blue. J na classe Dado(int nlados)? new Dado(int nlados) § Estamos dizendo para o Java: crie um novo objeto da classe Dado Logo, um novo objeto é criado com a palavra reservada new Mateus Raeder – março de 2010
Associação entre classes § Objetos diferentes podem se conhecer, podem conversar uns com os outros § Mas como objetos podem conversar? § Imagine 2 pessoas. Para elas conversarem, eles devem se conhecer antes. Logo, para dois objetos conversarem, eles devem se conhecer § Vamos imaginar, então, que a Floribela quer jogar o dado § Dois objetos diferentes, de duas classes diferentes § A classe Dado possui um método que chama-se joga. Dado() Mateus Raeder – março de 2010
Associação entre classes § Mas como a Floribela pode acessar este método? § Somente quando ela conhecer o objeto dado, ou seja, quando ela tiver uma instância da classe Dado § Assim, vamos poder dizer que uma pessoa tem um dado Mateus Raeder – março de 2010
Associação entre classes § Mais do que isso, uma Pessoa (classe) tem um atributo do tipo Dado (classe), e este atributo (um objeto) deve ser declarado e inicializado § Logo, na classe Pessoa teremos: public class Pessoa { private String nome; . . . private Dado meu. Dado; . . . } Mateus Raeder – março de 2010 Declaração de uma instância da classe Dado, associando a classe Dado à classe Pessoa
Associação entre classes § Para que este atributo se torne utilizável, devemos inicializá-lo, informando ao Java que trata-se de um novo objeto § Assim, devemos utilizar o new, conforme dito anteriormente § No construtor de Pessoa, teremos então: public Pessoa() {. . . meu. Dado = new Dado(6); . . . } Construtor da classe Dado pede o número de lados!! Mateus Raeder – março de 2010 Inicialização do objeto
Associação entre classes § Como o atributo meu. Dado já foi inicializado, e trata-se de um objeto da classe Dado, ele possui todos os atributos e métodos desta classe § A pessoa então, pode acessar todos estes métodos e atributos de um objeto dado. A pessoa tem um dado e pode jogá-lo. § Como este acesso é realizado? Através do operador. (ponto) public Pessoa() { meu. Dado = new Dado(6); meu. Dado. joga. Dado(); } Mateus Raeder – março de 2010 Significa quero acessar (executar) o método chamado joga. Dado() do objeto meu. Dado
Associação entre classes § Uma pessoa não precisa ter necessariamente 1 dado public class Pessoa { private Dado meu. Dado 1; private Dado meu. Dado 2; private Dado meu. Dado 3; . . . public Pessoa(. . . ) { meu. Dado 1 = new Dado(6); //cria um dado de 6 lados meu. Dado 2 = new Dado(13); //cria um dado de 13 lados meu. Dado 3 = new Dado(6); //cria outro dado de 6 lados. . . } } Mateus Raeder – março de 2010
Associação entre classes § A pessoa então, pode jogar os dados de acordo com sua vontade public Pessoa(. . . ) { meudado 1 = new Dado(6); //cria um dado de 6 lados meudado 2 = new Dado(13); //cria um dado de 13 lados meudado 3 = new Dado(6); //cria outro dado de 6 lados. . . } public void jogar. Dados() { meu. Dado 1. joga. Dado(); meu. Dado 2. joga. Dado(); meu. Dado 3. joga. Dado(); } Mateus Raeder – março de 2010
Associação entre classes § O diagrama UML ilustra o relacionamento entre as classes da seguinte maneira: Pessoa Dado atributos métodos O objeto da classe Pessoa conhece o objeto da classe Dado, mas o contrário não é verdade Mateus Raeder – março de 2010
Associação dentre classes § Uma associação é um relacionamento estrutural entre duas classes, significando que os objetos de uma classe estão ligados aos objetos de outra § O objeto pessoa está ligado ao objeto dado Dado Pessoa nome Floribela sexo F meu. Dado Mateus Raeder – março de 2010 lados 6
Associação entre classes § Exercícios: § 1 – crie a classe Endereco § Esta classe possui o nome da rua, um número na rua, uma cidade, um estado, um CEP e um bairro § Quando um endereço é criado, deve ser informado o nome da rua, o número na rua e a cidade § Crie os métodos de acesso da classe (getters e setters) § 2 - Crie a classe Data § Esta classe possui um dia, um mês e um ano § Ao criar uma data, todos os atributos devem ser informados (dia, mês e ano) § Crie os métodos de acesso da classe (getters e setters) Mateus Raeder – março de 2010
Associação entre classes § 3 – Crie a classe Dado, conforme já definida em aula nos slides anteriores § 4 – Crie a classe Pessoa § Esta classe possui um nome, um sexo, uma data de nascimento (do tipo Data), um endereço (do tipo Endereco) e dois dados (um de 6 e um de 3 lados) § Pense no método construtor da classe Pessoa, e analise os parâmetros de entrada deste método § Crie os métodos de acesso da classe (getters e setters). Pense nos tipos de retorno dos métodos get e nos parâmetros de entrada dos métodos set Mateus Raeder – março de 2010
- Slides: 13