Prévia do material em texto
Prof. Simone Gama profsimone.gama@gmail.com Universidade Estácio de Sá Programação I Aula 08 – Relacionamento entre Objetos: Objetos em Vetores e Encapsulamentos mailto:profsimone.gama@gmail.com Classes e Objetos em Java Objeto Prof. Simone Gama Programação I 2 É uma instanciação de um conjunto de dados, criada durante a execução de um programa orientado a objetos, de acordo com o que é especificado por uma classe. Programação Orientada à Objeto Classes Uma classe é um conjunto de características e comportamentos que definem o conjunto de objetos pertencentes à essa classe. ...ou seja, conjunto de objetos com características semelhantes e comportamentos em comum. Prof. Simone Gama Programação Orientada à Objetos 3 Programação Orientada à Objeto Classes As classes de programação são projetos de um objeto, aonde têm características e comportamentos, ou seja, permite armazenar propriedades e métodos dentro dela. Para construir uma classe é preciso utilizar o pilar da abstração. Uma classe geralmente representa um substantivo, por exemplo: uma pessoa, um lugar, algo que seja “abstrato”. Prof. Simone Gama Programação Orientada à Objetos 4 Programação Orientada à Objeto Classe – Exemplo 1 Prof. Simone Gama Programação Orientada à Objetos 5 Classe Gato Objetos da Classe Programação Orientada à Objeto Classe – Exemplo 2 Prof. Simone Gama Programação Orientada à Objetos 6 Classe Conta bancária Objetos da Classe Nome: Maria Agência: 8974 Nº da Conta: 0002345 Saldo: R$ 4500,00 Nome: João Agência: 3976 Nº da Conta: 0007845 Saldo: R$ 8500,00 Nome: Jéssica Agência: 3806 Nº da Conta: 0017845 Saldo: R$ 5500,00 Características das Classes Caraterísticas das Classes • Toda classe possui um nome; • Elas possuem visibilidade: pública (public), privada (private) ou protegida (protected); • Possuem membros como: Características e Ações. Prof. Simone Gama Programação I 7 Implementando Classes e Objetos Classe Gato do nosso exemplo anterior. Prof. Simone Gama Programação I 8 Gato Atributos: Raça: Siamês Nome: Sansão Peso: 4 kilos Métodos: Miar Comer Dormir Implementando Classes e Objetos Classe Gato do nosso exemplo anterior. Prof. Simone Gama Programação I 9 Gato Atributos: Raça: Siamês Nome: Sansão Peso: 4 kilos Métodos: Miar Comer Dormir Implementando Classes e Objetos Criar os objetos... Esse processo é conhecido como instanciar. Então vamos agora criar três instâncias para a Classe Gatos. Prof. Simone Gama Programação I 10 Classe Gatos Objetos da Classe Implementando Classes e Objetos Instanciando a Classe Gatos Prof. Simone Gama Programação I 11 Implementando Classes e Objetos Resgatando o Exercício 3 da Aula 4: Prof. Simone Gama Programação I 12 a) Classe Conta bancária Nome: Maria Agência: 8974 Nº da Conta: 0002345 Saldo: R$ 4500,00 Nome: João Agência: 3976 Nº da Conta: 78450 Saldo: R$ 8500,00 Nome: Jéssica Agência: 3806 Nº da Conta: 17845 Saldo: R$ 5500,00 b) Classe Pessoa Nome: Carlos Idade: 39 Peso: 72 kg Nome: Juliana Idade: 23 Peso: 75 kg Nome: Ericka Idade: 15 Peso: 60 kg Método: Saque e Transferência Método: Andar e Dormir Prof. Simone Gama Programação I 13 a) Classe Conta bancária Método: Saque e Transferência Nome: Maria Agência: 8974 Nº da Conta: 0002345 Saldo: R$ 4500,00 Nome: João Agência: 3976 Nº da Conta: 78450 Saldo: R$ 8500,00 Nome: Jéssica Agência: 3806 Nº da Conta: 17845 Saldo: R$ 5500,00 Prof. Simone Gama Programação I 14 a) Classe Conta bancária Implementando as Instâncias Nome: Maria Agência: 8974 Nº da Conta: 0002345 Saldo: R$ 4500,00 Nome: João Agência: 3976 Nº da Conta: 78450 Saldo: R$ 8500,00 Nome: Jéssica Agência: 3806 Nº da Conta: 17845 Saldo: R$ 5500,00 Criando instâncias com Vetores Exemplo 1: Classe: Conta Atributos: • Nome • Agência • Nº da Conta • Saldo Métodos: • Saque • Transferência Prof. Simone Gama Programação I 15 Agora vamos utilizar vetores para armazenar mais objetos para a classe Conta Bancária: Criando instâncias com Vetores Exemplo 1: Classe: Conta Atributos: • Nome • Agência • Nº da Conta • Saldo Prof. Simone Gama Programação I 16 Criando instâncias com Vetores Exemplo 1: Classe: Conta Atributos: • Nome • Agência • Nº da Conta • Saldo Prof. Simone Gama Programação I 17 Criando instâncias com Vetores Exemplo 1: Classe: Conta Atributos: • Nome • Agência • Nº da Conta • Saldo Prof. Simone Gama Programação I 18 Criando instâncias com Vetores Exemplo 1: Classe: Conta Atributos: • Nome • Agência • Nº da Conta • Saldo Prof. Simone Gama Programação I 19 Construtor Criando instâncias com Vetores Criando 4 instâncias para a classe Conta() com vetor: Prof. Simone Gama Programação I 20 Criando instâncias com Vetores Criando 4 instâncias para a classe Conta() com vetor: Prof. Simone Gama Programação I 21 • Scanner para leitura do teclado; • Instanciar Conta com um vetor chamado clientes [] de tamanho 4. Criando instâncias com Vetores Criando 4 instâncias para a classe Conta() com vetor: Prof. Simone Gama Programação I 22 • Para cada posição do vetor cliente [], deve-se criar uma instância de Conta! Criando instâncias com Vetores Criando 4 instâncias para a classe Conta() com vetor: Prof. Simone Gama Programação I 23 Preencher os atributos de cada intância no vetor Conta! Criando instâncias com Vetores Criando 4 instâncias para a classe Conta() com vetor: Prof. Simone Gama Programação I 24 Criando instâncias com Vetores Criando 4 instâncias para a classe Conta() com vetor: Prof. Simone Gama Programação I 25 Imprimindo os elementos preenchidos! Criando instâncias com Vetores Exemplo 2: Exercício para armazenar 5 pessoas. Classe: Pessoa Atributos: • Nome • Idade • Peso Métodos: • Andar • Dormir Prof. Simone Gama Programação I 26 Agora vamos utilizar vetores para armazenar mais objetos para a classe Pessoa: Programação Orientada à Objeto A POO possui 4 pilares fundamentais na sua classificação principal como paradigma: Prof. Simone Gama Programação I 27 Abstração - POO Abstração A abstração consiste em um dos pontos mais importantes dentro de qualquer linguagem Orientada a Objetos. Como estamos lidando com uma representação de um objeto real (o que dá nome ao paradigma), temos que imaginar o que esse objeto irá realizar dentro de nosso sistema. São três pontos que devem ser levados em consideração nessa abstração: Prof. Simone Gama Programação I 28 Abstração - POO Abstração Identidade O primeiro ponto é darmos uma identidade ao objeto que iremos criar. Essa identidade deve ser única dentro do sistema para que não haja conflito. Na maior parte das linguagens, há o conceito de pacotes. Nessas linguagens, a identidade do objeto não pode ser repetida dentro do pacote, e não necessariamente no sistema inteiro. Prof. Simone Gama Programação I 29 Abstração - POO Abstração Propriedades A segunda parte diz respeito a características do objeto. Como sabemos, no mundo real qualquer objeto possui elementos que o definem. Dentro da programação orientada a objetos, essas características são nomeadas propriedades. Por exemplo, as propriedades de um objeto “Cachorro” poderiam ser “Tamanho”, “Raça” e “Idade”. Prof. Simone Gama Programação I 30 Abstração - POO Abstração Métodos A terceira parte é definirmos as ações que o objeto irá executar. Essas ações, são chamados métodos. Esses métodos podem ser extremamente variáveis, desde “Acender()” em um objeto lâmpada até “Latir()” em um objeto cachorro. Prof. Simone Gama Programação I 31 Encapsulamento - POO Encapsulamento Um objeto pode ser visto de duas formas diferentes: • Internamente — Detalhes de variáveis e métodos da classe que o define. • Externamente — Serviços que um objeto fornece e como este objeto interage com o resto do sistema (a interface do objeto). Prof. Simone Gama Programação I 32 A visão externa de um objeto encapsula o modo como são fornecidosos serviços Isto é, esconde os detalhes de implementação do objeto (information hiding). Encapsulamento - POO Encapsulamento Ela se trata de um dos elementos que adicionam segurança à aplicação em uma programação orientada a objetos pelo fato de esconder as propriedades consideradas importantes. Prof. Simone Gama Programação I 33 Encapsulamento - POO Encapsulamento Algumas linguagens orientadas a objetos implementam o encapsulamento baseado em propriedades privadas, ligadas a métodos chamados getters e setters, que irão retornar e setar o valor da propriedade, respectivamente. Essa processo evita o acesso direto a propriedade do objeto, adicionando uma outra camada de segurança à aplicação. Prof. Simone Gama Programação I 34 Encapsulamento - GET Encapsulamento Método get Para acessar, “pegar” alguns atributos da classe, devemos utilizar os métodos GET. Esse método sempre retornará um valor, seja ele String, int, double etc. Prof. Simone Gama Programação I 35 public int get<Nome>(){ return <atributoNome>; } Sintaxe: Encapsulamento - SET Encapsulamento Método set Para alterar os valores de um atributo da classe de maneira protegida, utilizamos os métodos SET. Esse método não terá um retorno, pois o atributo será somente modificado, criando um método de tipo VOID, sem retorno. Porém ele deve receber algum argumento para que possa ocorrer a devida alteração. Prof. Simone Gama Programação I 36 public int set<Nome>(int newNome){ nome = newNome; } Sintaxe: Encapsulamento GET e SET Encapsulamento – Exemplo 3 Prof. Simone Gama Programação I 37 Seja a classe Números e o objeto numero do tipo int: Encapsulamento GET e SET Encapsulamento – Exemplo 3 Prof. Simone Gama Programação I 38 Seja a classe Números e o objeto numero do tipo int: numero é privado (private) Encapsulamento GET e SET Encapsulamento – Exemplo 3 Prof. Simone Gama Programação I 39 Encapsulamento GET e SET Encapsulamento – Exemplo 3 Prof. Simone Gama Programação I 40 Método set para inserir o valor no atributo privado numero! Encapsulamento GET e SET Encapsulamento – Exemplo 3 Prof. Simone Gama Programação I 41 Método get para obter o valor no atributo privado numero! Encapsulamento GET e SET Encapsulamento – Exemplo 3 Prof. Simone Gama Programação I 42 Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 43 Classe Conta Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 44 Classe Conta Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 45 Classe Conta Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 46 Classe Conta A utilização da cláusula THIS faz referência ao atributo da classe dentro da qual se está trabalhando. Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 47 Classe Conta Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 48 Classe Conta Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 49 Classe Conta Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 50 Classe Conta Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 51 Classe Conta Método set para inserir os valores em seus atributos! Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 52 Classe Conta Método get para obter os valores dos seus atributos! Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 53 Classe Conta Encapsulamento GET e SET Encapsulamento – Exemplo 4 Prof. Simone Gama Programação I 54 Classe Conta Encapsulamento GET e SET Encapsulamento – Exemplo 5 Prof. Simone Gama Programação I 55 Classe Conta - Vetor Encapsulamento GET e SET Encapsulamento – Exemplo 5 Prof. Simone Gama Programação I 56 Classe Conta - Vetor Encapsulamento GET e SET Encapsulamento – Exemplo 5 Prof. Simone Gama Programação I 57 Classe Conta - Vetor Encapsulamento GET e SET Encapsulamento – Exemplo 5 Prof. Simone Gama Programação I 58 Classe Conta - Vetor Encapsulamento GET e SET Encapsulamento – Exemplo 6 - Exercício Prof. Simone Gama Programação I 59 Classe Pessoa com vetor de 3 posições Bibliografia • SEBESTA, Roberto. Conceitos de Linguagem de Programação. 4ª e 5ª Edições. Editora Bookman, 2000 e 2003. • Métodos GET e SET • https://www.devmedia.com.br/criando-metodos-get-e-set- em-java/ • https://www.digitalhouse.com/br/blog/programacao- orientada-a-objetos-o-que-e Prof. Simone Gama Programação I 60 https://www.devmedia.com.br/criando-metodos-get-e-set-em-java/ https://www.digitalhouse.com/br/blog/programacao-orientada-a-objetos-o-que-e