0% acharam este documento útil (0 voto)
9 visualizações31 páginas

3 - Java POO

O documento aborda a Programação Orientada a Objetos (POO) em Java, destacando conceitos fundamentais como classes, objetos, atributos e métodos. Também discute a criação de classes, tipos de variáveis, encapsulamento, herança, polimorfismo e o uso de palavras reservadas como 'this' e 'super'. Além disso, menciona a importância de construtores e classes abstratas na estruturação do código.

Enviado por

palavrasnafe
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
9 visualizações31 páginas

3 - Java POO

O documento aborda a Programação Orientada a Objetos (POO) em Java, destacando conceitos fundamentais como classes, objetos, atributos e métodos. Também discute a criação de classes, tipos de variáveis, encapsulamento, herança, polimorfismo e o uso de palavras reservadas como 'this' e 'super'. Além disso, menciona a importância de construtores e classes abstratas na estruturação do código.

Enviado por

palavrasnafe
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 31

Linguagem Java - POO

1 Formador João Fragoso


Programação Orientada a Objetos
A POO foi criada para tentar aproximar o mundo real do
mundo virtual: a ideia fundamental é tentar simular o mundo
real na programação recorrendo a objetos. O programador é
responsável por moldar o mundo dos objetos e como devem
interagir entre si.
Permite também um código de mais fácil interpretação e
reutilizável.

2 Formador João Fragoso


Conceitos
 Classe: Define um conjunto de
características que são comuns a
uma série de objetos.
 Objeto: Concretização de uma
determinada classe. Diz-se que
os objetos são instâncias da
classe.
 As classes são, portanto,
representações abstratas de
objetos.

3 Formador João Fragoso


Conceitos
 Atributos: Características que distinguem um objeto do
objeto vizinho.
 Exemplo de atributos da classe veículo: nº de rodas, nº de série,
cor, marca, etc

 Métodos: Comportamento do objeto. Forma pela qual um


objeto atua sobre outros objetos ou sobre si próprio.
 Exemplo de métodos da classe veículo: ligar o motor, acelerar,
travar, etc

4 Formador João Fragoso


Conceitos

Classe Atributos Métodos


Pessoa nome, idade, género Falar(), andar()
Carro matrícula, marca Acelerar(), travar()
Cão nome, raça Latir(), correr()

5 Formador João Fragoso


Classes
 Criação de Classes:
 As classes constituem modelos para os objetos que depois serão
criados no seu seio.

classe Nome_Classe
{
Código
}

6 Formador João Fragoso


Tipos de Variáveis
 Variáveis de Classe: Definidas ao nível da classe e são globais a
todos os objetos nela caracterizada, ou seja, a sua alteração é vista
em todos os objetos. (palavra chave static).

 Variáveis de Objeto (atributos): Permite armazenar as


características de um determinado objeto. A declaração feita na
zona de definição da classe e são conhecidas de todos os objetos
concretizados na classe.

 Variáveis Locais: Existem apenas dentro dos métodos ou dentro


dos blocos {} onde são declarados. Quando o bloco ou método
onde estão definidas termina, elas deixam de ser reconhecidas.

7 Formador João Fragoso


Construtores
 Tipo especial de método.
 Bloco de código que é executado sempre que utilizamos a
palavra reservada new.
 Quando não é explicitamente declarado, o compilador insere o
construtor default.
 Tem sempre o mesmo nome da classe em que está definido e
nunca devolve qualquer parâmetro.
 Quando se cria um novo objeto a informação que lhe fica
associada é o endereço de memória onde está guardada a
informação do objeto.

8 Formador João Fragoso


Utilização de Métodos e Atributos
 Criação de métodos:
 Definição dos comportamentos dos objetos da classe.
Tipo_Dados Nome_Método(Tipo1 arg1,…)
{
….
}

 Utilização de métodos:
Nome_Objeto.Método(Arg1,…)

 Acesso a atributos:
Nome_Objeto.variável;

9 Formador João Fragoso


Palavra Reservada This
 Utilização da palavra reservada This
//Construtor que inicializa o objeto com três parâmetros

 Em Java podemos ter um parâmetro de um método e um


atributo de uma classe com o mesmo nome.

 A palavra reservada this representa o objeto referenciado.

10 Formador João Fragoso


Acesso a Bibliotecas e Classes
 Bibliotecas de Classes: classes e métodos predefinidos que
podem ser importados para o programa através da instrução
import.
 Exemplo:
 Classe Scanner para receber dados e que faz parte do pacote
'java.util'.
import java.util.Scanner;
 Criar objeto do tipo Scanner:
Nome_classe objeto = new nome_classe(argumentos);
Scanner entrada = new Scanner(System.in);

11 Formador João Fragoso


Encapsulamento
Refere-se ao isolamento entre as partes do programa. Tem como
objetivo controlar o tipo e acesso às classes, atributos e métodos.

 Modificadores de Acesso:
 public: Classes, atributos e métodos visível em qualquer ponto do
programa.
 private: Atributos e métodos visíveis somente no interior da classe onde
é definido, vedando a sua utilização mesmo às suas subclasses.
 protected: Atributos e métodos visíveis à classe em que está definido, mas
também às respetivas subclasses.

12 Formador João Fragoso


Encapsulamento
 Outros Modificadores de Acesso:
 static: Quando o seu conteúdo é modificado numa instância é
modificado em todas instâncias. Na declaração de um
método, quando apenas queremos que seja possível o acesso a
ele dentro da classe.
 final: Indica que a classe, método ou variável assim declarada têm
uma única atribuição que se mantém constante, ou seja, não pode
ser alterada.

13 Formador João Fragoso


Encapsulamento
 Modificadores de classe:
 public: A classe pode ser publicamente acedida, ou seja, os
elementos públicos da classe são disponibilizados para todo o
programa.
 abstract: A classe não pode ser instanciada.
 final: A classe não pode ter subclasses.

 Nota: Na omissão do qualificador public, uma classe é apenas


acessível no pacote onde está definida.
 Nota: Uma classe pode ter mais do que um qualificador. Contudo,
uma classe não pode ser ao mesmo tempo abstract e final.

14 Formador João Fragoso


Encapsulamento
 Getters e Setteres
 Métodos utilizados para aceder a atributos private a partir de
outras classes.
 Convenção de utilização:
 Getters: Método que retorna o valor do atributo e tem como
sintaxe get[Nome_atributo]. Quando retorna um boolean a
convenção é is[Nome_atributo].
 Setters: Método que atribui/modifica o valor de um atributo e
tem como sintaxe set[Nome_atributo].

15 Formador João Fragoso


Encapsulamento

16 Formador João Fragoso


Herança
 Permite reutilizar código. Métodos que estejam definidos numa
classe podem ser utilizados por objetos definidos nas suas
subclasses.
 Para fazermos uma classe herdar as características de uma outra,
usamos a palavra reservada extends logo após a definição do
nome da classe.

 Dessa forma:
class NomeDaClasseASerCriada extends NomeDaClasseASerHerdada

17 Formador João Fragoso


Exemplo de Herança

18 Formador João Fragoso


Polimorfismo
 Polimorfismo significa "muitas formas"
— ou seja, a capacidade de um mesmo
nome representar comportamentos
diferentes.
Método comunica()

19 Formador João Fragoso


Tipos de Polimorfismo
 Sobrecarga (Overload):
 Consiste em implementar um método com assinaturas
diferentes na mesma classe.
 A assinatura de um método consiste na primeira linha, ou seja,
pelo modificador de acesso, pelo tipo de dados de retorno, pelo
nome do método e pelos parâmetros.

Duas assinaturas diferentes do


mesmo método

20 Formador João Fragoso


Tipos de Polimorfismo
 Reescrita (Override):
 Permite alterar ou complementar as funcionalidades de um
método que se herdou de uma superclasse.
 O método que é efetivamente chamado é o que foi definido na
classe a que o objeto que o chame pertence, ignorando o código
do método herdado.
 Estamos a reescrever o método.

Nota: A reescrita consiste em implantar um método


com a mesma assinatura em classes diferentes ao contrário
da sobrecarga que é na própria classe.

21 Formador João Fragoso


Reescrita: @Override
 A anotação @Override é usada para indicar que um método
está a substituir (sobrescrever) um método da superclasse
(classe pai).
 Garante que o método está a realmente a sobrescrever um
método da superclasse.
 Se estiver presente e houver um erro no nome ou na
assinatura, o compilador gera um erro.

22 Formador João Fragoso


Reescrita: @Override

 Cachorro sobrescreve o método fazerSom() da classe Animal.


 A anotação @Override informa ao compilador que a intenção é
substituir o método herdado.

23 Formador João Fragoso


@Override - Riscos
 Se não for colocada a anotação e errar o nome ou
parâmetros, não haverá erro de compilação mas o método
da superclasse não será sobrescrito, e o comportamento
pode ser inesperado.

24 Formador João Fragoso


Palavra Reservada Super
 Após um método ser reescrito, não podemos chamar
diretamente o método herdado da superclasse.

É possível resolver esse problema?

 O Super vai permitir aceder a membros (métodos ou


atributos) da superclasse (classe pai) a partir de uma
subclasse (classe filha).

25 Formador João Fragoso


Acesso à classe Pai
 A palavra reservada super em Java é usada para aceder a
membros (métodos ou atributos) da superclasse (classe pai) a
partir de uma subclasse (classe filha).

26 Formador João Fragoso


Utilização do Super()
 Chamar o construtor da superclasse:

27 Formador João Fragoso


Utilização do Super()
 Chamar um método da superclasse:

28 Formador João Fragoso


Utilização do Super()
 Aceder a um atributo da superclasse:

29 Formador João Fragoso


Classes Abstratas
 Não podem ser instanciadas de forma direta, uma vez que não
possuem construtor.
Se Carro for abstrata esta linha
dá erro de compilação

 O principal objetivo é ser estendida, já que não criam nada em


concreto, podendo ter métodos concretos e abstratos.

 Uma classe abstrata pode conter métodos abstratos que terão de ser
implementados obrigatoriamente nas subclasses.

 Se estender a outra classe abstrata, esta ultima não precisa de


implementar os métodos abstratos.
30 Formador João Fragoso
Classes Abstratas

31 Formador João Fragoso

Você também pode gostar