Baixe o app para aproveitar ainda mais
Prévia do material em texto
ANO LETIVO 2019/2020 PROGRAMAÇÃO II Classes PROF. ANTÓNIO GONÇALVES § Estrutura duma classe § Definição de atributos § Construtores (e parâmetros) § Instruções de atribuição § Identificadores § Métodos § Escrever no ecrã ÍNDICE 2Prof. António Gonçalves CLASSES – MOTIVAÇÃO 7 objectosclasses Prof. António Gonçalves Existem milhares de automóveis diferentes, com o mesmo comportamento e com os mesmos atributos (cor, marca, modelo, etc - embora não com os mesmos valores) A este conjunto genérico de comportamentos e atributos dá-se o nome de classe. § Em geral surgem muitos objectos comuns, com a mesma estrutura e comportamento, que são agrupados sob o mesmo conceito: Classe. § uma classe é um módulo onde se especifica quer a estrutura quer o comportamento das instâncias que a partir da mesma pretendemos criar ao longo da execução de um dado programa. § Os objectos são depois criados como instâncias de classes. CLASSE – MÓDULO 8Prof. António Gonçalves Classe Automovel Instancia de Automovel Instancia de Automovel Instancia de Automovel CLASSE/OBJECTOS – ESTRUTURAS 9 § Estruturas Computacionais § Classe § Tem capacidade para criar objetos similares § Chamados instâncias de classe § funcionam como moldes de instâncias § Objeto § Instância de uma classe § Criado por uma classe Prof. António Gonçalves Mecanismo que permite criar múltiplos objetos similares É uma entidade que guarda a estrutura (i.e., variáveis, atributos) e o comportamento (i.e., métodos) desses objetos, para servirem de molde na sua construção. Instancia de Automovel Instancia de Automovel Instancia de Automovel Classe Automovel OBJECTO - INSTÂNCIA DE UMA CLASSE 10Prof. António Gonçalves objecto = Instância de uma classe Instância Classe Instância Instância CLASSE – REUTILIZAÇÃO CÓDIGO 11Prof. António Gonçalves § As classes representam ainda um muito importante mecanismo de partilha de código. § os métodos, que implementam a funcionalidade de todas as suas instâncias, têm o seu código “guardado” num único local- a sua respetiva classe; § As instâncias contêm apenas os “valores” que representam o seu estado interno. CLASSE – REUTILIZAÇÃO CÓDIGO 12Prof. António Gonçalves De facto, não fazendo qualquer sentido que, por exemplo, todo o código dos métodos de instância de Carro tivesse que ser replicado em todas as instâncias criadas, o que seria naturalmente uma redundância e um desperdício, já que o código é exatamente igual, então tal código tem uma única cópia da qual a classe é a natural depositária. CLASSE Prof. António Gonçalves 13 § Tipos de Membros // Todos opcionais § Membros de Instância // Para criar instâncias de classes § Variáveis de instância // Definem a Estrutura para guardar o Estado das instâncias (dados) § Métodos de instância // Definem o Comportamento das instâncias (operações) § Especiais § Construtores // Criam instâncias, reproduzindo as variáveis e mét. de instância Métodos Atributos Construtores Membros de Instância Membros Especial CLASSE –EXEMPLO 2017 14 PROGRAMA 15 § Consiste num conjunto de classes § Classe Principal (Main) § Tem capacidade para iniciar e controlar a execução do programa ... através do método main() Prof. António Gonçalves CLASSE – PASSOS PARA A CRIAR CLASSES Prof. António Gonçalves 16 Passos: • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. 17 Exemplo – Máquina de Bilhetes EXEMPLO – MÁQUINA DE BILHETES (TICKETMACHINE) 18 § Requisitos da Máquina de Bilhetes § Pretende-se uma máquina que faça a venda automática de bilhetes. § Os bilhetes têm um preço único. § Os clientes deverão poder introduzir uma determinada quantia. § Será possível visualizar o bilhete. § Será possível saber o preço do bilhete e a quantia colocada. § Será possível saber qual a quantia total colocada na máquina. Prof. António Gonçalves ESTRUTURA DE UMA CLASSE BÁSICA 19 public class TicketMachine { Código da classe omitido } Cabeçalho da classe Corpo da classe Prof. António Gonçalves Criação de classes • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. ESTRUTURA DE UMA CLASSE BÁSICA 20 public class TicketMachine { Código da classe omitido } § public e class são palavras reservadas da linguagem Java § As palavras reservadas (ou Keywords) são palavras que têm um significado particular na linguagem § Outros exemplos: int, private nome da classepalavra class corpo da classe modificador de visibilidade Prof. António Gonçalves Criação de classes • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. DEFINIÇÃO DA ESTRUTURA (I.E. ATRIBUTOS) 21 public class TicketMachine { PREÇO DO BILHETE -> PRICE DINHEIRO INTRODUZIDO -> BALANCE DINHEIRO TOTAL NA MÁQUINA -> TOTAL ...resto do código omitido } Prof. António Gonçalves Criação de classes • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. DEFINIÇÃO DA ESTRUTURA (I.E. ATRIBUTOS) 22 public class TicketMachine { private int price; private int balance; private int total; ...resto do código omitido } Preço bilhete Quantia colocada antes de imprimir o bilhete Quantia total na máquina Prof. António Gonçalves Criação de classes • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. DEFINIÇÃO DE UM ATRIBUTO 23 private int price; modificador de visibilidade nome da variável tipo § Os atributos armazenam valores de um determinado tipo § Os atributos são variáveis § Também são chamados variáveis de instância § A definição dum atributo é uma instrução do Java § Normalmente são definidos como sendo privados ( private ) fim da instrução Prof. António Gonçalves TIPOS EM JAVA § Java utiliza-se para os tipos básicos semelhantes aos do C e do C++ § Os tipos primitivos são os que figuram na seguinte tabela. 2017 24 ENCAPSULAMENTO EM JAVA A linguagem Java não força o encapsulamento na perspectiva do "esconder" a informação do exterior ! O programador escolhe a visibilidade dos atributos Em geral os atributos são declarados como visíveis apenas na classe! DEFINIÇÃO DA ESTRUTURA (I.E. ATRIBUTOS) 26 public class TicketMachine { private int price; private int balance; private int total; ...Definição comportamento } Prof. António Gonçalves Criação de classes • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. Atributos CONSTRUTORES 27 public class TicketMachine { Atributos public TicketMachine(int ticketCost) { price = ticketCost; balance = 0; total = 0; } Métodos } O construtor tem o mesmo nome que a classe O construtor pode ter parâmetros como qualquer método Prof. António Gonçalves Criação de classes • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. CONSTRUTORES 28 public TicketMachine(int ticketCost) { código do construtor } § Os construtores servem para inicializar os objetos. § Têm o mesmo nome que a classe. § Encarregam-se de fornecer os valores iniciais dos atributos. § Frequentemente recebem os valores dos atributos do exterior através dos parâmetros. Prof. António Gonçalves Criação de classes • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. INSTRUÇÕES DE ATRIBUIÇÃO 29 public TicketMachine(int ticketCost) { price = ticketCost; balance = 0; total = 0; } § As instruções de atribuição servem para colocar valores em variáveis. § Neste exemplo está-se a colocar valores nos atributos (que são variáveis) Váriasinstruções de atribuição Prof. António Gonçalves Criação de classes • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. EXEMPLO – MÁQUINA DE BILHETES (TICKETMACHINE) 31 construtor atributosMétodos Prof. António Gonçalves PASSAGEM DE INFORMAÇÃO ATRAVÉS DE PARÂMETROS 32Prof. António Gonçalves MÉTODOS 34 public class TicketMachine { Atributos Construtores public int getPrice() { return price; } public void insertMoney(int amount) { balance = balance + amount; } … mais métodos } cabeçalho (header) do método Instruções do método Prof. António Gonçalves Criação de classes • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. DEFINIÇÃO DUM MÉTODO 35 public void insertMoney(int amount) { balance = balance + amount; } modificador de visibilidade nome do método tipo de retorno § O cabeçalho do método diz-nos o nome do método, os parâmetros que tem, se retorna ou não um valor e a sua visibilidade (normalmente public ) § O corpo do método contém as instruções que serão executadas parâmetro do método Corpo do método Prof. António Gonçalves Criação de classes • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. DEFINIÇÃO DUM MÉTODO 36 public int getPrice() { return price; } modificador de visibilidade nome do método tipo de retorno § A corpo do método começa com abrir chavetas e termina com fechar chavetas tal como o corpo das classes. § Em Java um conjunto de instruções delimitadas por chavetas chama-se um bloco. parâmetros do método (sem parâmetros) instrução de retorno Início e fim do corpo do método (bloco) Prof. António Gonçalves Criação de classes • Requisitos iniciais; • Definição da estrutura; • Definição do comportamento: • Os construtores; • Os métodos de instância. INSTRUÇÕES DE RETORNO 37 § As instruções de retorno são usadas para se sair dum método. No caso do método retornar um valor devem ser seguidas da expressão cujo cálculo dá o valor a ser retornado. return price; palavra return fim da instrução expressão cujo valor vai ser retornado Prof. António Gonçalves MÉTODOS 38 § Os métodos implementam o comportamento dos objetos. § Os métodos que nos permitem saber informação dos atributos são os métodos inspetores ou seletores. § Normalmente têm o prefixo get (mas nem sempre). § Retornam o valor do atributo respetivo, não têm parâmetros § Exemplo: int getPrice() § Os métodos que nos permitem alterar o estado dos objetos, ou seja alterar o valor dos atributos, são chamados os métodos modificadores. § Normalmente têm o prefixo set (mas nem sempre) § Não retornam valores (são void), recebem o valor do atributo a alterar § Exemplo: void setPrice(int price) § Existem métodos modificadores que alteram o valor dos atributos mas que não colocam diretamente um valor que recebem no atributo. Nestes casos não necessitam de ter o prefixo set. Exemplo: void insertMoney(int amount) Prof. António Gonçalves CONSTRUTORES VERSUS MÉTODOS 39 Método n O nome é definido pelo programador n Tem tipo de retorno (mesmo que seja void) n Pode ser executado em qualquer altura public TicketMachine(int ticketCost) { price = ticketCost; balance = 0; total = 0; } public int getPrice() { return price; } Construtor n Têm o mesmo nome que a classe n Não têm tipo de retorno n Só é executado para a construção do objeto Prof. António Gonçalves ESCREVER NO ECRÃ A PARTIR DE MÉTODOS 40 public void printTicket() { // Simulate the printing of a ticket. System.out.println("##################"); System.out.println("# The BlueJ Line"); System.out.println("# Ticket"); System.out.println("# " + price + " cents."); System.out.println("##################"); System.out.println(); // Update the total collected with the balance. total = total + balance; // Clear the balance. balance = 0; } instruções para escrever no ecrã (System.out.println) A operação “+” é usada aqui para juntar (concatenar) os textos Prof. António Gonçalves CONCATENAÇÃO DE TEXTOS - EXEMPLOS 41 § 2 + 3 5 § ”My" + ”windows" ”Mywindow" § ”saida: " + 10 ”saida: 10" § "# " + valor+ " euros" "# 700 euros" § Quando se juntam textos a um texto inicial tudo o que não for um texto é convertido antes para texto § Por exemplo: ”saida: " + 10 Ao juntar o número 10 ao texto ”saida: " primeiro o 10 é convertido para ”10" e só depois é acrescentado, ficando no fim: ”saida: 10" Prof. António Gonçalves RESUMO 42 § As classes representam um conjunto de objetos semelhantes servindo de modelo para a sua criação. § Os objetos são instâncias de classes e possuem métodos e atributos. § O conjunto de métodos de um objeto define o seu comportamento. O conjunto de valores guardados nos atributos de um objeto define o seu estado. § Os métodos possuem parâmetros e podem retornar valores. Os parâmetros são usados para enviar informação, de um determinado tipo, ao método. § Os objetos comunicam entre si através da troca de mensagens. § Um programa em Programação Orientada por Objetos não é mais que um conjunto de objetos interagindo entre si através da troca de mensagens. Prof. António Gonçalves LIVRO 43 § Chapter 2
Compartilhar