A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagem JAVA Ariane Machado Lima.

Apresentações semelhantes


Apresentação em tema: "Linguagem JAVA Ariane Machado Lima."— Transcrição da apresentação:

1 Linguagem JAVA Ariane Machado Lima

2 Noções gerais Histórico (Oak) Características:
simples e familiar (C, C++) orientada a objetos (tipos primitivos e objetos) distribuída (redes dinâmicas e objetos remotos) interpretada (bytecode, JVM, compile-run) robusta (sem pointers, GC, fortemente tipada) segura (GC, sem pointers, bytecode protegido) portabilidade (diferentes plataformas e browsers) alta performance (desenvolvimento e bom bytecode) multitarefa e dinâmica (threads, sincronização, redes)

3 Java não tem... typedef, define, preprocessor struct, union enum goto
pointers sobrecarga de operadores templates herança múltipla

4 Orientação a objetos Objetivo de hoje: introduzir conceitos fundamentais. Objetivos do paradigma: clareza e facilidade de desenvolvimento reutilização de código desenvolvimento evolutivo (escalabilidade) manutenção (documentação) baixo custo (tempo de análise, projeto, implementação e manutenção)

5 Orientação a objetos (cont.)
Primórdios: Simula-67 e Smalltalk-80 Palavras chaves: encapsulamento herança polimorfismo Boa programação não depende de OO, mas fica muito mais fácil.

6 Encapsulamento typedef struct { char nome[50]; long RG;
char [50]; } Pessoa; Pessoa* pessoa1; pessoa1 = malloc(sizeof(Pessoa)); if (pessoa1 == NULL) erro(); strcpy(pessoa1->nome, “Antonio da Silva”); pessoa1->RG = strcpy(pessoa1-> , if (pessoa1->RG = pessoa2->RG) ARG!!!!

7 Encapsulamento (cont.)
Podemos proteger os atributos de um “tipo de variável” definindo funções e procedimentos exclusivos. Pessoa pode ser uma caixa preta com uma interface de acesso (desenho). A definição da caixa preta é uma classe. Em Java, classe é tipo. Uma instância da classe Pessoa é um objeto Pessoa (tipo - variável)

8 Encapsulamento (cont.)
Class Pessoa{ //atributos char nome[50]; long RG; char [50]; //metodos void alteraNome(char* novo_nome); char* obtemNome(void); void alteraRG(long novo_RG); long obtemRG(void); void altera (char* novo_ ); char* obtem (void) }

9 Encapsulamento (cont.)
Uma função de uma classe é um método. A invocação de um método (seletor [parâmetros]) é uma mensagem. O conjunto de mensagens de uma classe define sua interface. Os atributos só podem ser alterados e acessados via mensagens. Isso é encapsulamento. Diagrama de classe

10 Modelar Professor e Aluno

11 Herança Repetição de código  repetir implementação, erros, testes, manutenção. Podemos usar a classe Pessoa Herança: compartilhamento de atributos e operações entre classes com base em um relacionamento UML Pessoa/Professor/Aluno

12 Polimorfismo Uma operação pode se comportar de maneira diferente em classes diferentes. Ex.: página 25 Sobrecarga de mensagens Além disso, podemos definir dentro de uma mesma classe mensagens com o mesmo seletor e diferentes parâmetros. Ex.: texturizar(void) texturizar(padrão)

13 Agregação Microcomputador: monitor, torre, mouse, teclado.
Os atributos ainda são complexos.

14 Agregação (cont.) Solução: modelamos como objetos de uma classe.
Class Microcomputador{ Monitor monitor; Torre torre; Mouse mouse; Teclado teclado; ... }

15 Agregação (cont.) Torre é composta de CPU e RAM. Notação: 
Figura página 24. Agregações recursivas: página 24.

16 Associação Relacionamento entre objetos de uma classe
UML Aluno / Disciplina Multiplicidade de associações (pág. 22)

17 Desenvolvimento de uma aplicação OO
Identificação de classes e objetos Identificação de comportamentos Identificação de relações entre classes Identificação de interfaces e métodos ...

18 Sintaxe básica Tipos básicos:
long : inteiro de 64 bits (+ ou - 18 dígitos) int: inteiro de 32 bits [ ; ] short: inteiro de 16 bits [ ; ] byte: inteiro de 8 bits [-128; +127] double: real de precisão dupla, 64 bits [1,7E-308; 1,7E+308] float: real de 32 bits [3,4E-38; 3,4E+38] char: caracter de 16 bits (sem sinal) boolean: tipo lógico true ou false (1 bit)

19 Sintaxe básica (cont.) Comentários: Operadores relacionais:
// até o fim da linha /* até encontrar uma barra / Operadores relacionais: == igual != diferente > maior >= maior ou igual < menor <= menor ou igual

20 Sintaxe básica (cont.) Operadores aritméticos
x = 4*(2+5) / (3-1) // x == 14 y = x % 3 // y == 2 x++ // x == 15 y-- // y == 1 y += x // y == 16 -= *= /= %= Alguns operadores lógicos && e || ou

21 Comando condicional if (expressão booleana) bloco1; else bloco2;
if (x >= 0) x = 1; else x = -1;

22 Comando de seleção switch (expressão) { case valor1: bloco1; break;
... case valorN: blocoN; default: bloco N+1; }

23 Comando de seleção (cont.)
switch (opcao) { case 0: msg = “Quero Coca-Cola”; break; case 1: msg = “Quero Guaraná”; case 2: msg = “Quero Soda”; default: msg = “Opção inválida”; } System.out.println(msg);

24 Comandos de Repetição while (x>=0)
{ System.out.println(“Valor de x: ” + x); x--; } do { x--; System.out.println(“Valor de x: ” + x); } while (x>0)

25 Comandos de Repetição (cont.)
for (x= -20; x<= 0; x++) { msg = “Valor de x” + x; System.out.println(msg); }

26 Equivalências super this ~ self static: método ou variável de classe
Envio de mensagens: (classe/objeto).mensagem([param*]) Exemplo:

27 Final Classe: Método: Variável: não pode ser mais extendida
não pode mais ser sobrecarregado Variável: não pode mais mudar de valor (constante)

28 Classes e métodos abstratos
Classes abstratas: reúne características comuns das subclasses não podem ser instanciadas (não possuem construtor) Métodos abstratos: não possui código devem ser implementados nas subclasses não pode ser static ou final devem pertencer a uma classe abstrata

29 Interface Define tipo (~classe abstrata) Apenas métodos públicos
Não possui código Não possui atributos de instância atributos final e static são permitidos Não possui construtor Podem herdar de outras interfaces

30 Classes abstratas X interfaces
Fatoração de implementação: funcionalidades iguais de um conjunto de classes podem ser implementadas apenas uma vez na classe abstrata Generalidade de uso: uma interface pode ser implementada por classes não relacionadas

31 Classes abstratas X interfaces (cont.)
Expansibilidade: inserção de novos métodos em uma interface implica modificação de todas as classes que a implementam Herança múltipla: cada classe pode herdar de apenas uma classe (abstrata ou não), mas pode implementar várias interfaces

32 Pacotes Coleções de classes java, javax, org.omg subpacotes
nome completo de classes inclui pacote: String ~ java.lang.String Definindo pacotes: package meu_pacote; Usando pacotes: import java.util.*;

33 Alguns pacotes java.lang java.util java.io java.awt java.math java.net
java.beans

34 Estrutura de um arquivo .java
[package] [import] public class NomeArquivo

35 Arrays Declaração: Point [] listaDePontos; Point listaDePontos[];
listaDePontos.length

36 Arrays (cont) Criação e inicialização:
listaDeInteiros = new int[10]; //valores default listaDeInteiros = new int {1,2,3,4,5}; //tipo implícito (uso de array anônimo) listaDeInteiros = {1,2,3,4,5}; //tipo e tamanho implícitos Point[] pontos {circulo1.getCenterPoint(), circulo2. getCenterPoint()} //inicialização em tempo de execução


Carregar ppt "Linguagem JAVA Ariane Machado Lima."

Apresentações semelhantes


Anúncios Google