Вы находитесь на странице: 1из 25

Anlise e Desenvolvimento de Sistemas Paradigma de Programao Notas de Aula 14

Prof. MSc. Joo Vilian

Abstrao Procedural...
Em

programao imperativa, programas so modelados como algoritmos mais estrutura de dados; Algoritmos so desenvolvidos atravs de duas idias complementares:

Uso

Abstrao procedural; Refinamento gradual;

de bibliotecas e funes reutilizveis;

Abstrao Procedural...
Abstrao

Procedural - permite ao programador se preocupar principalmente com a interface entre a funo e o que ela calcula, ignorando os detalhes de como o clculo realizado;

Ex: funes sin, cos e sqrt; System.out.println(); Etc...

Abstrao Procedural...
Refinamento

Gradual desenvolver o programa passo-a-passo, indo de sua forma mais geral a sua forma mais especfica;

Ex: Uma funo de Interface textual com o Usurio em Java: Inicialmente temos a chamada para a funo:

interfaceUsuario();

Abstrao Procedural...
Criao

da funo: public static void interfaceUsuario(){ } Preenchimento do algoritmo da funo o que a funo faz; public static void interfaceUsuario(){ //LOOP //MENU //USURIO DIGITA A OPO DESEJADA //AO //FIM LOOP }
5

Abstrao Procedural...
Preenchimento Passo

1 loop: public static void interfaceUsuario(){ int opcao; do{ //MENU //USURIO DIGITA A OPO DESEJADA //AO }while(opcao != 5); }

da funo passo a passo:

Abstrao Procedural...
Passo

2 menu: public static void interfaceUsuario(){ int opcao; do{ menu(); //USURIO DIGITA A OPO DESEJADA //AO }while(opcao != 5); }

Abstrao Procedural...
Passo

3 usurio digita a opo desejada: public static void interfaceUsuario(){ int opcao; Scanner sc = new Scanner(System.in); do{ menu(); opcao = sc.nextInt(); //AO }while(opcao != 5); }
8

Abstrao Procedural
Passo

4 ao: public static void interfaceUsuario(){ int opcao; Scanner sc = new Scanner(System.in); do{ menu(); opcao = sc.nextInt(); realizaAcao(opcao); }while(opcao != 5); }
9

Tipos de Dados Abstratos...


Extenso

de abstrao procedural; Abstrai no apenas funes, mas tambm tipos; Mesmo tipos primitivos possuem abstrao;

Ex: float em Java operaes no dependem de sua representao concreta para serem realizadas;

Abstrao

de dados proporciona encapsulamento dos mesmos;

10

Tipos de Dados Abstratos...


Encapsulamento

um mecanismo que permite que constantes logicamente relacionadas, tipos, variveis, mtodos, etc, sejam agrupados em uma nova entidade;

Ex:

Estruturas; Classes;

11

Tipos de Dados Abstratos...


Em

programao imperativa, os tipos abstratos so passivos, as operaes so realizadas em cima deles, e no eles quem realizam as operaes; Exemplo:

Entidade Aluno realiza matricula, entre outras operaes; Exemplo em C++ exemplo em programao imperativa.

12

Tipos de Dados Abstratos...


typedef struct{ string nome; int numMatricula; bool estahMatriculado; } Aluno; void realizaMatricula(Aluno a){ a.estahMatriculado = true; } ......
13

Modelo Objeto
Problemas

Programao

Orientada a Objetos existe desde a dcada de 60, mas s se tornou popular na dcada de 80;
14

Inicializao dos dados; Finalizao dos dados; Estender uma abstrao adicionando novas operaes algo complexo; Modelagem complexa de tipos especficos de programao, como Interfaces Grficas de Usurio e programao de sistemas embarcados;

na programao imperativa:

Classe...

uma declarao de tipo que encapsula constantes, variveis e funes para manipulao dessas variveis;
Uma

classe , por si mesma, um tipo de dado abstrato;

15

Classe...
Variveis

classe; Construtores inicializam uma instncia de uma classe; Destrutores finalizam uma instncia de uma classe; Mtodos outras funes da instncia; Objetos Instncia de uma classe;

de instncia variveis locais de uma

16

Classe...
public class Aluno{ String nome; int numMatricula; boolean estahMatriculado; ... void realizaMatricula(){ estahMatriculado = true; } ... }
17

Classe...
Uma

funo do construtor garantir que todas as variveis de instncia sejam corretamente inicializadas;

Um

construtor em Java formado de 3 partes: <Visibilidade><Nome da Classe>(<Parmetros>)


18

No exemplo Aluno para linguagem imperativa, para cada instncia se faz necessrio preencher todos os dados do Aluno, um por um; No construtor, voc encapsula isso em um mtodo, e obriga que esse mtodo seja chamado na criao do objeto;

Classe...
Exemplo

de Construtor para Aluno: public Aluno(String nome1, int matricula1){ nome = nome1; matricula = matricula1; estahMatriculado = false; }
Exemplo

aluno: Aluno a = new Aluno(Jos da Silva, 12345);


19

de criao de um objeto do tipo

Classe...
Destruidores

da memria; Java no possui destruidores;

tem como funo retirar o objeto

C++

Garbage Collection (Coletor de Lixo) serve para retirar automaticamente objetos que no sero mais utilizados no programa; Vantagens: evita que o programador tenha que se preocupar com isso, e aumenta a segurana; Desvantagem: deixa o software mais lento;

possui destruidores;

20

Classe...
Mtodos

de Classe So mtodos que no pertencem a nenhum objeto, mas a classe em si;


Math.random(); Integer.parseInt(84); Collections.sort(list); etc...

Resqucios da programao imperativa; So chamados pelo nome da classe; Exemplos de mtodos de classe da API Java:

21

Classe...
Mtodos

em Java: <visibilidade> static <tipo de retorno> <nome> (<parmetros>)


Exemplo:

de classe possuem o seguinte formato

public static int soma(int x, int y){ return x + y; }

22

Classe
Mtodos

de instncia so mtodos pertencentes ao Objeto em si.


Possuem

o seguinte formato em Java: <visibilidade> <tipo de retorno> <nome> (<parmetros>) Exemplo de chamada: Aluno x = new Aluno(); x.realizaMatricula();

As chamadas so feitas atravs dos objetos;

23

Visibilidade...
O

nvel de visibilidade de uma varivel, mtodo ou classe o quanto esse elemento est visvel ao mundo exterior a classe; Java possui 4 nveis de visibilidade, do maior nvel ao menor nvel:

public; protected; default; private.

24

Visibilidade
public

permite que o elemento seja acessvel de qualquer lugar; Recomenda-se no usar em variveis; protected permite que o elemento seja acessvel apenas em classes de mesmo pacote e por subclasses; default permite que o elemento seja acessvel apenas em classes de mesmo pacote; No possui um nome especfico no cdigo; private no permite visualizao fora da classe;

25

Вам также может понравиться