• Nenhum resultado encontrado

CONCEITOS AVANÇADOS DE ORIENTAÇÃO À OBJETOS

N/A
N/A
Protected

Academic year: 2019

Share "CONCEITOS AVANÇADOS DE ORIENTAÇÃO À OBJETOS"

Copied!
41
0
0

Texto

(1)

CONCEITOS AVANÇADOS DE ORIENTAÇÃO À OBJETOS

PROGRAMAÇÃ

(2)

 Conceitos avançados sobre orientação a objectos

 Classes

 Atributos de classe

 Metodos de classe

 Metodos construtores

 Herança

 Sobrecarga

 polimorfismo

PROGRAM

AÇÃO

(3)

 Os programas criados segundo a programação orientada a objetos funcionam

essencialmente a custa de entidades

 As entidades são objectos

 Os objectos possuem características próprias

 Os objectos são capazes de desempenhar

determinadas tarefas

PROGRAM

AÇÃO

(4)

 Desenhar um programa, consistem em definir os objectos necessários, suas funcionalidades e o modo como comunicam entre si

 Um objecto é uma combinação de dados e

atributos (variáveis) e acções (subprogramas) relacionadas.

 Os subprogramas em POO são comummente

designados por métodos

PROGRAM

AÇÃO

(5)

 Um objecto pode ser caracterizado por três componentes:

 Identidade

 Atributo

 Comportamento

PROGRAM

AÇÃO

(6)

 Um objecto pode ser caracterizado

por três componentes:

 Identidade

 Permite ao programador e ao sistema a

sua identificação

 Atributo

 Permitem caracteriza-lo

 Comportamento

 Define o conjunto de funcionalidades que

pode executar por opção própria ou a pedido

de outro objecto.

PROGRAM

AÇÃO

III

É comum ter num programa

objectos semelhantes, com o mesmo comportamento,

mas com atributos e identidades

(7)

 Objecto especial que serve de molde ou padrão para a criação de objectos

 Possuem a mesma estrutura interna

 Mesmas variáveis de instância

 Mesmo comportamento

 Mesmos métodos de instancia

 Mesma interface ou API

PROGRAM

AÇÃO

(8)

 Capazes de responder às mesmas mensagens, ou seja, um objecto pode efetuar uma tarefa de outro desde que esteja definida em seus

comportamentos – chamada de um método

definido no outro objecto

 Pode ser vista como um TIPO

 Em linguagem POO, são vistos como

mecanismos de implementação de Tipos Abstractos de Dados (TAD)

 Representam mecanismos de partilha de

código

PROGRAM

AÇÃO

(9)
(10)

 Reutilizável

 Colocada dentro de um bloco que é

antecedido pela palavra reservada class,

seguido pelo identificador da classe que deve começar pela letra maiúscula.

 O nome dos objectos por letra minúscula

 Dentro do bloco, estarão as definições dos membros da classe (class members)

PROGRAM

AÇÃO

(11)

 Definição de cada variável de instância,

separando as várias declarações com

comentários que auxiliem a legibilidade dos programas.

PROGRAM

AÇÃO

III

class Cao{

//variáveis de instância

private int idade; // idade do cão private string nome; // nome do cão private string raca; // raça do cão private string cor; // cor do cão //Identificação da classe

class Cao{

//definições dos atributos e comportamentos que os objectos criados a partir dela devem apresentar

(12)

 Private

 indica que as variáveis apenas podem ser

acedidas directamente pelos métodos

(comportamentos) definidos na própria classe.

 com ela, o objecto criado será uma entidade

fechada portanto encapsulada.

 Os detalhes internos não são visiveis a partir do

exterior

PROGRAM

AÇÃO

III

class Cao{

//variáveis de instância

(13)

 Cada classe tem pelo menos um construtor.

 Tipo especial de método utilizado para criação e

inicialização de objectos criados a partir de uma classe.

 Têm o mesmo nome da classe

 Distinguem-se de outros métodos por não terem

valor de retorno, nem mesmo void.

 Não são chamados como os outros métodos,

apenas a instrução de criação de objectos de uma classe os pode chamar.

PROGRAM

AÇÃO

(14)

PROGRAM

AÇÃO

III

class Cao{

//variáveis de instância

private int idade; // idade do cão private string nome; // nome do cão private string raca; // raça do cão private string cor; // cor do cão

Public Cao(int i, string n, string r, string c) {

idade = i; nome = n; raca = r; cor = c; }

(15)

 Criação de instâncias de uma dada classe

PROGRAM

AÇÃO

III

class Ponto{

//variáveis de instância int x;

int y;

Final double A = 3.4; //construtor default Ponto(){

x = 0; y= 0; }

//construtor com parametros

Ponto(int cx, int cy){ x = cx;

y = cy; }

}

Valores atribuídos por omissão

Instancias da classe Ponto criadas, com atribuição às variáveis

de instância, valores iniciais dados como

(16)

 mudarIdade()

 alterarNome()

 retificarRaca()

 tirarCor()

PROGRAM

AÇÃO

(17)

PROGRAM

AÇÃO

III

class Cao{

//variáveis de instância

private int idade; // idade do cão private string nome; // nome do cão private string raca; // raça do cão private string cor; // cor do cão

Public Cao(int i, string n, string r, string c) {

idade = i; nome = n; raca = r; cor = c; }

(18)

import java.awt.*; public class Cao{

//variáveis de instância

private int idade; // idade do cão

private string nome; // nome do cão

private string raca; // raça do cão

private string cor; // cor do cão

//Construtor com parametros e recebe os valores iniciais dos atributos

public Cao(int i, string n, string r, string c) {

idade = i; nome = n; raca = r; cor = c; }

PROGRAM

AÇÃO

(19)

//muda a idade de acordo com os atributos

Public void mudarIdade(int id) {

}

}

PROGRAM

AÇÃO

(20)

 Método que retorna o valor de um atributo

PROGRAM

AÇÃO

III

Public String getNome() {

(21)

 Método que modifica o valor de um atributo

PROGRAM

AÇÃO

III

Public void setNome(String valor) {

(22)

 Os acessores seguem as seguintes regras:

 O atributo tem de ser declarado como private  O acessor será public

 Os getters não recebem nenhum parametro e

retornam um valor cujo tipo é igual ao atributo que acede

 Os setters apenas recebem um parametro, do

tipo do atributo e não retornam valor

PROGRAM

AÇÃO

(23)

PROGRAM

AÇÃO

III

Private String nome; Public String getNome() {

Return nome; }

Public void setNome(String valor) {

(24)

 A chamada a metodos de um objecto é necessário referencia o objecto

 Referencia ao objecto;

 O literal ponto;

 O nome do método;

 Os parametros necessarios a serem passados.

PROGRAM

AÇÃO

III

referenciaObjecto .Ometodo();

(25)

 A chamada a metodos de um objecto é necessário referencia o objecto

 Referencia ao objecto;

 O literal ponto;

 O nome do método;

 Os parametros necessarios a serem passados.

PROGRAM

AÇÃO

III

Características CB = new Características("Blattella Germanica“); CB.getNome();

Ou

(26)

 Tambem chamado de metodos da classe,

visto que o seu comportamento não depende de nenhum estado do objecto.

 O comportamento de um metodo estatico

acontece ao nivel da classe

PROGRAM

AÇÃO

III

(27)

 Construtor de cópia

 Recebe um parâmetro do mesmo tipo de objeto

que se pretende criar, obtendo uma copia do parâmetro.

 getX() e getY() métodos que consultam a

coordenada respetiva do ponto p.

PROGRAM

AÇÃO

III

Ponto(Ponto p){ x = p.getX(); y = p.getY();

(28)

 Métodos de instância

 São responsáveis pelo comportamento das

instancias da classe.

 getX()  método que faz acesso ao valor de uma

variável de instancia de nome genérico X.

 setX()  métodos que alteram o valor de uma

variável de instancia X.

PROGRAM

AÇÃO

III

Exemplos: getNome(), getConta, getProvincia()

(29)

 Interrogadores ou seletores  getX()

 Métodos que realizam a consulta do valor de

dada variável e devolvem esse valor como resultado.

 Modificadores  setX()

 Alteram o valor da variável de instancia.

PROGRAM

AÇÃO

III

(30)

 Interrogadores ou seletores  getX()

PROGRAM

AÇÃO

III

// interrogador ou seletor int getX(){

return x; }

int cx = p1.getX();

System.out.println(“ X de P1 = “ + cx); Ou

(31)

 Modificadores – incremento das coordenadas

 Invocação do método anterior num objecto

exterior a classe.

 O objecto exterior altera o seu estado interno p1

 O objecto exterior (invocador) não necessita de

receber qualquer resultado (void)

PROGRAM

AÇÃO

III

void incCoor (int deltaX, int deltaY){ x = x + deltaX;

y = y + deltaY; }

(32)

 Modificadores – decremento das coordenadas

 Invocação do método anterior num objecto

exterior a classe.

 O objecto exterior altera o seu estado interno p1

 O objecto exterior (invocador) não necessita de

receber qualquer resultado (void)

PROGRAM

AÇÃO

III

void decCoor (int deltaX, int deltaY){ x = x - deltaX;

y = y - deltaY; }

(33)

PROGRAM

AÇÃO

III

String getConta()

Boolean maiorQue(int valor) Void setValor(int valor)

Boolean valorEntre(real min, real max) Double[] notasAcimaDe(double NotaRef)

(34)

 Acesso aos packages que contêm o conjunto de classes

 Classes individuais

 Cada um dos membros

 Variáveis

 Métodos

 Interfaces, classes abstratas

PROGRAM

AÇÃO

(35)

 Modificadores de acesso

 Tipos de acesso

 Public

 Qualquer classe

 Protected

 Propria classe; qualquer classe do mesmo package e

qualquer subclasse

 Private

 Propria classe

 Por omissão (default)

 Caso nenhum modificador seja declarado

 Propria classe e classes dentro do mesmo package

PROGRAM

AÇÃO

(36)

 Modificadores de acesso

 Tipos de acesso

 Private e protected

 Classes especiais (inner class)

 Usadas na implementação de classes predefinidas

complexas de Java

 Definidas no interior de outras classes

 A não declaração de um modificador particular,

significa que a classe estará apenas acessível dentro do respectivo package.

PROGRAM

AÇÃO

(37)

PROGRAM

AÇÃO

III

Import static java.lang.Math.abs; Public class Ponto{

//variáveis de instancia private int x;

private int y; //Construtores

Public Ponto(){x=0; y=0;} Public Ponto(int cx, int cy){ x= cx; y=cy;

}

Public Ponto(Ponto p){ x = p.getX();

y = p.getY(); }

//Metodos de instancia // interrogador – devolve x Public int getX(){

return x; }

// interrogador – devolve y Public int getY(){

return y; }

//modificador – incremento das coordenadas

public void incCoord(int deltaX, int DeltaY){

(38)

PROGRAM

AÇÃO

III

/*determina se um ponto tem ambas as coordenadas positivas */ public boolean coordPos(){ return x > 0 && y > 0 ; }

/* verifica se um ponto é simétrico, ou seja, se dista

igualmente dos eixos do X e dos Y */ public boolean simétrico(){

return abs(x) == abs(y); }

(39)

PROGRAM

AÇÃO

(40)
(41)

TRATAMENTO DE EXCEPÇÕES

PROGRAMAÇÃ

Referências

Documentos relacionados

Redução na [Ax] foliar aumenta a produção de etileno e a sensibilidade das células da camada de abscisão ao etileno etileno Separação da camada de abscisão

• Para a realização de obras em planos horizontais ou verticais ou obras com uma inclinação em uma ou duas direções • Desempenho em obras com visível laser vermelho (NL400)

invariante da transferência de calor conjugada por convecção forçada-condução no resfriamento de três aquecedores 3D protuberantes montados em um substrato condutivo em um

peso (gr) peso (gr) peso (gr) peso (gr) peso (gr) peso (gr) peso (gr) peso (gr) Tabela de Produtos Catalogo de Productos.. Embalagem meramente indicativa. a)medidas según

Através desse projeto são desenvolvidos produtos produzidos na Casa da Costura da Associação e comercializados, gerando renda para as mulheres da comunidade e ao mesmo tempo

Methods: Retrospective case series evaluating patients undergoing rotator cuff repair, analyzed by the UCLA score (pre and 12-month postoperative) and Magnetic Resonance

“responsabilidade pela solicitação de abertura de processo de flexibilização de jornada de trabalho ao Reitor, nos termos desta Resolução, de forma conjunta ou

Em conformidade com a Resolução CONSEPE nº 727, com destaque para os artigos 3º, 4º e 8º: a) O(a) candidato(a) ao cargo de professor visitante nacional e estrangeiro no