Buscar

LP_II Teo Classes

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

Continue navegando