47
Ling. de Programação ORIENTADA A OBJETOS

Aula de Introdução - JAVA

Embed Size (px)

DESCRIPTION

Aula de Introdução - JAVA

Citation preview

Page 1: Aula de Introdução  - JAVA

Lin

g. de

Pro

gra

maçã

o

OR

IEN

TA

DA

A O

BJE

TO

S

Page 2: Aula de Introdução  - JAVA

Tópicos abordados:

Introdução

Metodologia - Como trabalharemos

Revisão de conteúdo

Programação Orientada a Objetos

Introdução e conceito de

objetos

Classes e Métodos

construtores, destrutores,

polimorfismo, encapsulamento,

abstração e modularização.

Interação entre objetos.

Documentação

Pacotes.

Testes e depuração.

Interface gráfica (noções).

Persistência de dados.

Page 3: Aula de Introdução  - JAVA

Desenvolver o raciocínio lógico.

Comparar estruturas de dados e objetos

Discutir conceitos inerentes a construção de

algoritmos orientados a objetos

Identificar os principais conceitos relacionados a

orientação a objetos na linguagem de

programação utilizada.

Desenvolver algoritmos orientados a objetos,

baseando-se no domínio do problema e nas

operações que devem ser realizadas sobre ele

Page 4: Aula de Introdução  - JAVA

Aplicar os conceitos de orientação a objetos em uma

linguagem de programação

Desenvolver algoritmos orientados a objetos para

solução de problemas

Reconhecer o problema identificando os

componentes para desenvolvimento de algoritmos

orientados a objetos

Refletir sobre os problemas e ser criativos na busca

de soluções

Page 5: Aula de Introdução  - JAVA

Atividades em sala de aula

individuais e/ou em grupo.

Atividades extra-classe

individuais e/ou em grupo.

Avaliações em sala – 0 a 10 pontos

Um trabalho

individuais e/ou em grupo.

Page 6: Aula de Introdução  - JAVA

BlueJ

Page 7: Aula de Introdução  - JAVA

NetBeans

Page 8: Aula de Introdução  - JAVA

Maior capacidade de desenvolver soluções

computacionais para problemas.

Maior habilidade ao usar uma LP.

Maior capacidade para escolher LPs

apropriadas.

Maior habilidade para aprender novas LPs .

Maior habilidade para projetar novas LPs.

Page 9: Aula de Introdução  - JAVA

Etapas do Desenvolvimento de Software

Planejamento.

Especificação de Requisitos.

Análise.

Projeto.

Implementação .

Validação (Testes).

Implantação.

Manutenção.

Page 10: Aula de Introdução  - JAVA

Aplicações Científicas.

Aplicações Comerciais.

Inteligência Artificial.

Programação de Software Básico e Ferramentas de

Suporte a Programação.

Linguagens de Script.

Aplicações Web.

Page 11: Aula de Introdução  - JAVA

Legibilidade – Facilidade para se ler e entender um

programa.

Redigibilidade – Facilidade de redigir um programa.

Possibilita ao programador se concentrar nos algoritmos

e não na linguagem

Confiabilidade – mecanismos fornecidos pelas LPs para

incentivar a construção de programas confiáveis.

Tratamento de Exceções

Eficiência – programas mais ágeis

Facilidade de Aprendizado – programas fáceis de

aprender

Modificabilidade – facilidade de alteração de programas

Reusabilidade – facilidade de reutilização de código

Portabilidade – utilização em diferentes plataformas

Page 12: Aula de Introdução  - JAVA

O computador é

hardware que só entende operações muito básicas (zeros

e uns, processadas logicamente);

Programa executável = coleção de instruções em

linguagem de máquina;

Criar programas em linguagem de máquina é

extremamente difícil e improdutivo;

Para facilitar

Usamos linguagens de programação menos complexa e

utilizamos um programa que transforme uma linguagem

em outra: um tradutor.

Page 13: Aula de Introdução  - JAVA

Existe duas maneiras de se traduzir um programa:

compilação e interpretação.

Page 14: Aula de Introdução  - JAVA
Page 15: Aula de Introdução  - JAVA

Compilação:

Execução mais rápida;

Somente o executável é carregado em memória.

Interpretação:

Portabilidade.

Compilação + Interpretação = Híbrido

Une as vantagens de ambos.

Page 16: Aula de Introdução  - JAVA
Page 17: Aula de Introdução  - JAVA

Compilação Maior eficiência

Problemas com portabilidade e depuração

Exemplo: C

Interpretação Pura Portabilidade e facilidade para depuração

Problemas com eficiência e maior consumo de memória

Raramente usada

Híbrido Une vantagens dos outros métodos

Exemplo: Java – o código intermediário é o bytecode e o seuinterpretador é o JVM (Java Virtual Machine)‏

Page 18: Aula de Introdução  - JAVA

Solução

(Computacional)

Conceito fundamental em LPs:

Linguagem de máquina abstrai o hardware;

Linguagem de alto nível abstrai a de máquina;

Etc.

O objetivo é escrever as soluções em termos cada

vez mais próximos do mundo real.

Problema

(mundo real)0101010

1001010

0101010

1010101

0101010

1001010

0101010

1010101

0101010

1001010

0101010

1010101

Dificuldades

semânticas

Page 19: Aula de Introdução  - JAVA

Dentre os paradigmas existentes, a Orientação a

Objetos destaca-se pelo nível de abstração:

Elementos do mundo real são modelados como

objetos no mundo computacional;

Objetos possuem propriedades e comportamento,

assim como no mundo real;

O código expressa a solução em termos mais

próximos do problema.

As classes expressam grupos de objetos

Page 20: Aula de Introdução  - JAVA

PROGRAMAÇÃO ESTRUTURADA

Métodos Procedimentos e Funções

Instâncias de Variáveis Variáveis

Mensagens Chamadas a procedimentos e funções

Classes Tipos de Dados definidos pelo usuário

Herança -

Polimorfismo -

PROGRAMAÇÃO

ORIENTADA A OBJETOS

Page 21: Aula de Introdução  - JAVA

UNIDADE-SERRA

Page 22: Aula de Introdução  - JAVA

Uma classe é geralmente descrita como o modelo

ou a forma a partir do qual um objeto é criado.

Classe é um componente de programa que descreve a“estrutura” e o “comportamento” de um grupo de objetossemelhantes (CAMARÃO, 2003).

Objeto é uma extensão do conceito de objeto no mundoreal, em que se podem ter (relacionar) coisas tangíveis,um incidente (evento ou ocorrência) ou uma interação(transação ou contrato) (PUGA, 2003). É a criação deuma instância da classe (HORSTMANN, 2001).

A cada criação de um novo objeto pertencente a

uma mesma classe, chamamos de instância da

classe.

Page 23: Aula de Introdução  - JAVA

herança em orientação a objetos representa a implementação da generalização. Herança é o compartilhamento de atributos e operações entre

classes com base em um relacionamento hierárquico.

Ex: a subclasse Utilitário herda todos os atributos e operações da

superclasse Veículos.

UTILITÁRIOS PASSAGEIROS ESPORTE PASSEIO

VEÍCULOS

GE

NE

RA

LIZ

ÃO

ES

PE

CIA

LIZ

ÃO

Page 24: Aula de Introdução  - JAVA

Polimorfismo significa a capacidade de assumir

muitas formas.

permite que um objeto assuma um comportamento diferente daquele

definido em sua classe.

Page 25: Aula de Introdução  - JAVA

Encapsulamento (ocultamento de informações).

consiste na separação entre os aspectos externos de um

objeto, acessíveis por outros objetos.

Mensagens e métodos

As operações (serviços) que um objeto oferece são

chamadas de métodos. A solicitação de operações entre

objetos é feita através de mensagens.

Com o encapsulamento, não é permitido acessar

diretamente as propriedades de um objeto, é preciso

operar por meio de métodos

Page 26: Aula de Introdução  - JAVA

Cite 3 propriedades desejáveis em linguagens de

programação.

Em que campos de trabalho podemos utilizar as

linguagens de programação.

Explique com suas palavras o que voce entendeu

sobre tradução híbrida.

O que é uma classe?

O que é herança?

Page 27: Aula de Introdução  - JAVA
Page 28: Aula de Introdução  - JAVA

Uma linguagem de programação;

Um software distribuído pela Sun Microsystems;

Uma ilha da Indonésia.

Mantida por uma comunidade.

Page 29: Aula de Introdução  - JAVA

Uma especificação criada pela SUN, entretanto a

linguagem Java é Mantida pelo Java Comunity

Proccess (JCP) que reune experts em Java,

empresas e universidades que por meio de

processos democráticos definem a evolução da

linguagem.

Page 30: Aula de Introdução  - JAVA

Linguagem concebida para a utilização em

pequenos dispositivos eletrônicos.Em 1995, a Sun anuncia o Java como uma nova

plataforma de desenvolvimento.

Java, graças a um café;

Nascem as Applets, Java é incluída no Netscape,

disponibilizada ao público e deslancha;

Java hoje é utilizada em diversas áreas, desde

aplicativos corporativos, controle de servidores www

etc.

Java fará 15 anos em 2010.

Page 31: Aula de Introdução  - JAVA

Facilidade de aprendizado;

Legibilidade;

Redigibilidade;

Confiabilidade;

Eficiência;

Código reutilizável;

Flexibilidade;

Page 32: Aula de Introdução  - JAVA

Plataforma = SO + Hardware:

Windows + PC (Intel / AMD);

Linux + PC;

MacOS X + Macintosh.

Java situa-se um nível acima do SO, formando uma

nova plataforma de computação:

Portável;

Baseada na Máquina Virtual Java (JVM);

Linguagem Java é a parte central da plataforma.

Page 33: Aula de Introdução  - JAVA

Por que Java?

Uma das linguagens OO mais usadas;

Características de Java:

Simples, porém versátil, robusta e muito segura;

Portável (independente de sistema operacional);

Gratuita e com código disponível para consulta;

Popular, rodeada por uma comunidade muito ativa;

De alta aceitação e com suporte da indústria;

Muitas ferramentas disponíveis;

Muita documentação disponível.

Page 34: Aula de Introdução  - JAVA

Orientada a Objetos.Multithreading.Suporte a comunicação.Acesso remoto a banco de dados.

Baseada em C++:

Sintaxe semelhante;

Porém mais simples.

Portabilidade (multiplataforma):

Compilação para bytecode e interpretação na JVM;

Page 35: Aula de Introdução  - JAVA

Confiável:

Verificações na compilação e execução;

Não há aritmética de ponteiros, que são tratados como

referências a objetos;

A gerência de memória é feita pela JVM (coletor de lixo),

facilitando a tarefa do programador.

Dinâmica:

Classes são carregadas sob demanda (class loader).

Page 36: Aula de Introdução  - JAVA

Projetada para ambientes distribuídos:

Suporte de alto nível para construção de aplicações em

rede (sockets, RMI, etc.);

Segura:

Verificações em tempo de execução;

Verificação de bytecode;

Possui bom desempenho: Linguagens híbridas não têm o mesmo desempenho de

linguagens compiladas;

No entanto, existem diversas otimizações, com melhorias a

cada nova versão;

Facilita a programação concorrente: Dispõe de elementos que facilitam a programação de

sistemas com uso intensivo de threads paralelas.

Page 37: Aula de Introdução  - JAVA
Page 38: Aula de Introdução  - JAVA

Código Java

Compilador

Byte Code Java

VM Linux VM Microsoft VM Celular

SO Linux SO Microsoft SO Celular

Ambiente

de Desenvolvimento

Distribuição

Ambiente de Execução

Page 39: Aula de Introdução  - JAVA

Java é distribuída em três edições:

Java Standard Edition (Java SE);

Java Enterprise Edition (Java EE);

Java Mobile Edition (Java ME).

Page 40: Aula de Introdução  - JAVA

Ferramentas de desenvolvimento e API núcleo da

plataforma (base para as demais);

Permite o desenvolvimento de aplicações desktop,

com interface gráfica, acesso à bancos de dados,

I/O, acesso à rede, etc.;

Dividida em:

JDK = Java Development Kit;

JRE = Java Runtime Environment.

Page 41: Aula de Introdução  - JAVA

Somente para programadores;

Contém:

Ferramentas de desenvolvimento;

Ambiente de execução (JRE);

API Java SE (compilada e código-fonte);

Programas de demonstração;

Bibliotecas adicionais;

Documentação (obtida separadamente).

Page 42: Aula de Introdução  - JAVA

Necessária para rodar programas Java (bytecodes

compilados);

É a única parte da plataforma Java que os clientes

precisam instalar;

Em alguns SOs já vem instalada (ex.: MacOS X);

A Sun provê suporte oficial às plataformas Windows,

Solaris e Linux;

Há suporte não-oficial a diversas outras plataformas

(a Apple suporta a plataforma Mac).

Page 43: Aula de Introdução  - JAVA
Page 44: Aula de Introdução  - JAVA

AWT/Swing: interfaces gráficas;

JDBC: acesso a bancos de dados;

JNDI: acesso a servidores de nomes;

RMI: invocação remota de métodos ;

I/O: entrada e saída (arquivos);

Math: cálculos matemáticos;

Networking: transmissão de dados via rede;

Security: segurança;

Serialization: persistência por serialização;

XML: processamento de XML e afins;

Lang & Util: núcleo da linguagem, utilitários;

Concurrency: programação concorrente;

Page 45: Aula de Introdução  - JAVA

Permite o desenvolvimento de aplicações

corporativas:

Multi-camadas, distribuídas, centradas em

servidores,

altamente robustas, estáveis e escaláveis.

Inclui as especificações para desenvolvimento Web:

Servlets, JSP, Web Services, JSF, etc.;

Componentes gerenciados integrados a outras

tecnologias Java EE para prover acesso remoto,

persistência e transações transparentes, etc.

RMI/IIOP e Java IDL: conectividade;

JTA: transações em bancos de dados;

JMS e JavaMail: envio de mensagens;

Page 46: Aula de Introdução  - JAVA

Permite o desenvolvimento de aplicações para

dispositivos móveis:

Telefones celulares;

PDAs (Palm, iPaq, etc.);

Dispositivos embarcados (embedded);

Etc.

Java Card: aplicações para Smart Cards e outros

dispositivos muito limitados.

Page 47: Aula de Introdução  - JAVA

Conteúdo oficial do Java – http://java.sun.com

Desenvolvimento Orientado a Objetos com Java

Slides de Vítor Souza, baseados na apostila de

Flávio M. Varejão .

Livro: Programação de softwares em Java – Érico

Casella tavares de Mattos.