orientação a objetos com javajulionardi.scalfoni.com.br/arquivos/proiii_apresentacao1.pdf · oo e...

27
Orientação a Objetos com Java Julio Cesar Nardi [email protected] 2011/2

Upload: others

Post on 03-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

Orientação a Objetos com Java

Julio Cesar [email protected]

2011/2

Page 2: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

Aula 01:Começando com Java

Objetivos: Compreender o que é Java, OO e suas vantagens;

Entender os procedimentos para criação de aplicações Java;

Criar um programa Java simples.

Page 3: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

Java e OO

JAVA é Orientada a Objetos Até é possível usar Java sem OO, mas...

Perderá todas as vantagens que o paradigma proporciona;

Dificilmente irá além de programas simples; ou terá “monstros macarrônicos”

Será difícil entender outros programas; O código ficará difícil de ler, manutenir e reutilizar; Estará perdendo tempo. Use outra linguagem!

Logo, para fazer bom uso de Java é preciso conhecer bem os conceitos da Orientação a Objetos.

Page 4: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

Orientação a Objetos

Objetivos Diminuir a distância entre o mundo real e o modelo

abstrato de solução. “O mundo é composto por objetos”

Trabalhar com noções intuitivas, retardando a implementação.

Definição “Um sistema construído usando um método Orientado a

Objetos é aquele cujos componentes são partes encapsuladas de dados e funções, que podem herdar atributos e comportamento de outros componentes da mesma natureza, e cujos componentes comunicam-se entre si por meio de mensagens.” (Yourdon, 1994)

Page 5: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

Orientação a Objetos

ProblemaProblemaMundo Real

Modelo deSolução

Código de Máquina

Humanos

Máquinas

Page 6: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

Procedural x OO

Objeto

A B C

D E F

Componente X

1 B CD E 7

X B CD H F

@ B CD $ F

A B CD E F

Módulo 1

A B C

D E F

X

YZ

Módulo 2

X

Y

Z

A

Lógica Exposta e Espalhada por Todo o Sistema

Lógica Encapsulada em Pequenos Objetos

Mais próximo do mundo computacional, foco nos procedimentos

Mais próximo do mundo real, foco no domínio do problema

Page 7: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

Orientação a Objetos

Características visão do mundo real mais adequada através da

observação de objetos; desenvolvimento incremental e evolutivo,

extremamente desejável no desenvolvimento em etapas ou equipes distintas;

reusabilidade, possibilitando reaproveitar parcelas de código, projetos ou mesmo de especificações de requisitos na construção de um sistema;

possibilidade de incorporação de pequenas diferenças a elementos do sistema, através da abstração de generalização/especialização;

modularidade, através do conceito de objetos e classes, incorporando dados e operações, propiciando o encapsulamento.

Page 8: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

Orientação a Objetos

Conceitos Objeto: Identidade, Estado, Comportamento Classe, Objeto, Relação, Herança, Atributo, Método Abstração, Encapsulamento, Polimorfismo, Ligação

Dinâmica

Vantagens Organização, Extensibilidade, Qualidade, Reuso,

Produtividade, Custo.

Page 9: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA: Histórico

História: Após conflitos internos na Sun, a empresa resolve

desenvolver algo inovador. A Idéia: Comunicar aparelhos eletrônicos (TVs, Jogos,

Controles Remotos, Eletrodomésticos, Computadores, etc.)

Mas... Esses aparelhos possuem hardware muito diferente e limitado.

Surge Oak, uma linguagem OO, baseada em C++, projetada para rodar em diferentes hardwares.

Page 10: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA : Histórico

História: Em 1993, lançam o Mosaic, o primeiro navegadores

Web, e o projeto muda de rumo. A Sun resolve apostar... no Sucesso da Internet. Queria permitir o uso de multimídia na web. Para popularizar rapidamente, disponibilizam Oak

gratuitamente, em 1995, com o nome de Java. A Netscape anuncia novo navegador com suporte a

Java e a tecnologia dispara.

Page 11: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA : Histórico

Java hoje tem 12 anos: 1995: Java 1.0a; 1997: Java Development Kit 1.1; 1998: Java 2 Platform 1.2; 2000: Java 2 Platform 1.3; 2002: Java 2 Platform 1.4; 2004: Java 2 Platform 5.0 (Tiger); 2006: Java 6 (Mustang); 2008: A seguir: Java 7 (Dolphin).

J2SE x J2EE x J2ME

Page 12: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA : O que é?

O que é Java? Um software? Uma tecnologia? Uma linguagem de programação? Uma plataforma de desenvolvimento? Uma ilha da Indonésia?

Page 13: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA : O que é?

O que é Java? Orientada a Objetos Portável Versátil Robusta e Segura Gratuita Popular e com uma comunidade ativa

Page 14: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA : Linguagem

Java é uma Linguagem/Especificação Orientada a Objetos Híbrida (compilada e interpretada); Semelhante a C/C++, mas

“É mais simples e tão poderosa quanto” Não tem ponteiro, #define, .h etc É independente de plataforma “É mais robusta e segura”: coletor de lixo, exceções,

verificação de tipos, checagem de integridade, suporte nativo a threads.

Page 15: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA : Mitos Java é Lenta!

As primeiras versões eram lentas, mas as mais novas são, muitas vezes, mais rápidas que C++. Compilador JIT (Just in Time).

Não possui um Ambiente RAD! Há muitas ferramentas de alta produtividade disponíveis,

inclusive free.

JavaScript é uma derivação de Java! Elas só tem em comum as 4 primeiras letras e a sintaxe que é

semelhante.

Java só serve para fazer Applets! Java serve para fazer de clientes desktop à aplicações

corporativas, passando por dispositivos móveis.

Java é a melhor forma de fazer tudo! Infelizmente, não! Java é bastante versátil, mas não faz tudo!

Page 16: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA : Por que usar?

Por que usar Java? Java é OO! Independente de plataforma; Projetada para redes desde o começo; Alta aceitação e suporte na indústria; Muitas ferramentas e bibliotecas disponíveis, várias

free Vasta documentação, fácil de aprender; “Alta produtividade”; Etc.

Page 17: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA : Abrangência

Hoje, Java está presente em 90 operadores de telefonia móvel; 700 milhões de celulares; 700 milhões de computadores pessoais; Mais de 2 bilhões de dispositivos

tecnológicos em todo o planeta Terra; 100% das 500 maiores empresas do mundo. US$ 100 bilhões/ano em movimentações

Page 18: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA: Arquitetura

Page 19: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA: Do que Precisamos?

JRE: Java Runtime Environment JVM (Java Virtual Machine) APIs do Java SE (Standard Edition)

JDK: Java Development Kit Ferramentas de desenvolvimento

Comandos: java, javac, jar, javadoc, etc.

JavaDoc Documentação das APIs

Page 20: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JVM: Write One, Run Anywhere

Java é compilada e interpretada:

– Códigos das Classes são compilados para uma linguagem intermediária chamada ByteCode;

– O ByteCode é interpretado por uma “máquina virtual”, a JVM;

– A JVM envia comandos específicos da plataforma para o sistema operacional.

Page 21: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

Java: Testando...

1) Editar MeuPrograma.java

/** Testando o MeuPrograma Java. */public class MeuPrograma { /** Método main. */ public static void main(String[] args) { // imprimindo algo System.out.println("Testando MeuPrograma Java!"); }}

Page 22: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

Java: Testando...

2) Compilar a classe para o seu ByteCode:

> javac MeuPrograma.java

Resultado?

MeuPrograma.class

Page 23: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

Java: Testando...

3) Executar o ByteCode:

> java MeuPrograma

Resultado?

“Testando MeuPrograma Java!”

Page 24: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

JAVA: Do que Preciso? (2)

JDK + JRE http://java.sun.com/javase/downloads/index.jsp

Java Documentation http://java.sun.com/javase/downloads/index.jsp

Editor EJE: http://www.claudiodesio.com/eje.htm JEdit: http://www.jedit.org/ Netbeans: http://www.netbeans.org/ Eclipse: http://www.eclipse.org/

Page 25: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

Exercício 01

Para aula:– Criar um programa que imprima “Olá Mundo!”;

Page 26: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

Aula 01:Começando com Java

Objetivos: Compreender o que é Java, OO e suas vantagens;

Entender os procedimentos para criação de um programa Java;

Criar um programa Java simples.

Page 27: Orientação a Objetos com Javajulionardi.scalfoni.com.br/arquivos/PROIII_Apresentacao1.pdf · OO e Java Orientação a Objetos Objetivos Diminuir a distância entre o mundo real

OO e Java

Seja Bem Vindo ao Mundo Java