programação orientada a objetos - 001

39
Professor Dal Prá Programação Orientada a Objetos

Upload: jose-volmei-dal-pra-junior

Post on 05-Jul-2015

341 views

Category:

Documents


0 download

DESCRIPTION

Aula 1 - Programação Orientada a Objetos

TRANSCRIPT

Page 1: Programação Orientada a Objetos - 001

Professor Dal Prá

Programação Orientada a

Objetos

Page 2: Programação Orientada a Objetos - 001

Professor Dal Prá

Quem é o professor ?

• José Volmei Dal Prá Junior

– Analista de sistemas da CooperAlfa • Trabalhamos com

– Progress

– Java

– Qualquer outra tecnologia que resolva o problema

– Consultor de tecnologias

– Trabalha com tecnologia deste 2003

– Java durante a graduação • Pós graduação

• Depois experiências práticas e muito estudo

Page 3: Programação Orientada a Objetos - 001

Professor Dal Prá

Fale sobre você

• Nome

• Trabalha? Estuda?

• Experiência com desenvolvimento

• Experiência com Java

• Expectativas

Page 4: Programação Orientada a Objetos - 001

Professor Dal Prá

Qual é o objetivo da disciplina?

• Aprender conceitos de Orientação a Objetos

• Como usar na prática os conceitos

– Java será uma ferramenta para aplicar os conceitos

Page 5: Programação Orientada a Objetos - 001

Como vamos trabalhar?

• Explicação dos conceitos

• Como funciona no Java

• Exercícios

– Mão na massa!

Page 6: Programação Orientada a Objetos - 001

Avaliações

• A1

• A2

• Trabalho prático

– Sistema completo

– Apresentar

• A3

– Esperamos que ninguém precise dela!!

Page 7: Programação Orientada a Objetos - 001

Professor Dal Prá

Material apoio

• Apostila

• Apresentações

• Oracle (www.java.oracle.com)

• Google

• GUJ

• Professor via [email protected]

Page 8: Programação Orientada a Objetos - 001

O que é Java?

• É uma plataforma – Desenvolvimento

• Linguagem de programação – Java

– Outras (JRuby, Groovy, Scala, Closure, etc)

• Bibliotecas – oficiais

– terceiros

– Execução não é “nativa” • Máquina virtual

– Oficial

– Terceiros

Page 9: Programação Orientada a Objetos - 001

Como está dividida a plataforma?

Page 10: Programação Orientada a Objetos - 001

Vamos estudar uma parte do SE

Page 11: Programação Orientada a Objetos - 001

Como funciona o processo de desenvolvimento?

1) Edita

2) Compila

3) Executa

Gera um

arquivo

“.class”

Page 12: Programação Orientada a Objetos - 001

Máquina Virtual?

• É um software que faz um “meio de campo” entre o programa Java compilado (bytecode) e o ambiente de execução (Sistema Operacional)

• Ela que permite que o Java seja multiplataforma

Page 13: Programação Orientada a Objetos - 001

Professor Dal Prá

Características da plataforma Java

• Orientada a objetos

– Herança simples

– Interfaces

• Sintaxe semelhante a C++

• Fortemente tipada

• Extensível

• Sem ponteiros

Page 14: Programação Orientada a Objetos - 001

Professor Dal Prá

• API dá suporte a – Distribuição (RMI)

– Threads

– Acesso a bancos de dados (JDBC)

– Acesso a recursos e implementações nativas (JNI)

• Compilação otimizada em tempo de execução (JIT)

Características da plataforma Java

Page 15: Programação Orientada a Objetos - 001

Professor Dal Prá

• Execução em modo texto

• Execução em modo gráfico (Swing/AWT/SWT)

• Execução no servidor (Servlet)

• Execução no navegado (Applets)

Características da plataforma Java

Page 16: Programação Orientada a Objetos - 001

Professor Dal Prá

• Indicada para criação de sistemas grandes, complexos e com grande número de desenvolvedores

• Primeira versão é mais trabalhosa do que uma versão feita em ferramentas RAD.

• Facilita na manutenção corretiva e evolutiva Padrões de projeto são muito importantes

• Muitas bibliotecas gratuitas Frameworks

Características da plataforma Java

Page 17: Programação Orientada a Objetos - 001

Professor Dal Prá

• Tudo é especificação

– o que é necessário?

• Depois vem a implementação

– como fazer para atender o que é necessário

• Máquina virtual de vários fabricantes

– Oracle

– IBM

– etc

Características da plataforma Java

Page 18: Programação Orientada a Objetos - 001

Professor Dal Prá

Sopa de letrinhas

• JDK

• JRE

• JVM

• KVM

• JSP

• POJO

• Bean

• JSE

• JEE

• JME

• DI

• ORM

• JDBC

• RMI

Page 19: Programação Orientada a Objetos - 001

Professor Dal Prá

Mercado Java

•Mundo

•Brasil

•Chapecó e região

Page 20: Programação Orientada a Objetos - 001

Ferramentas

• Qualquer editor de texto + compilador javac

• Eclipse

• Netbeans

• IntelliJ IDEA

• JBuilder

• BlueJ

Vamos usar

este

Page 21: Programação Orientada a Objetos - 001

O que vamos fazer agora?

• Vamos aprender os comandos básicos

– Não envolvem orientação a objetos

• Familiarizar-se com o Eclipse

– Como criar projetos, arquivos e executar os programas

Page 22: Programação Orientada a Objetos - 001

Primeiro programa

• Abrir o Eclipse

• Novo projeto

• Novo “Programa”

– Imprime seu nome

public class Programa { public static void main(String[] args){ System.out.println("Jose"); } }

Page 23: Programação Orientada a Objetos - 001

Variáveis

• Estão dentro de um bloco de código

– Por enquanto vamos chamar de função

• Ser para guardar valores durante um certo período

tipo nomeDaVariavel = valorInicial;

Atribuição (não é comparação)

Pode ser um valor, cálculo ou

chamada de “função”

Regras:

• case sensitive

• começar com uma letra, $ ou _

• não pode ter espaços

Page 24: Programação Orientada a Objetos - 001

Quais são os tipos possíveis?

Tipo O que podemos guardar? Exemplo

byte Inteiros de -128 a 127 – poupa espaço byte idade = 18;

short Inteiros de -32.768 a 32.767 – poupa espaço short contador = 1000;

int Inteiros de -2,147,483,648 a 2,147,483,647 (32bits) int tamanho = 100000;

long Inteiros gigantes (64bits) long sequencia = 100000000l;

float Decimais de precisão simples (32bits) float valor = 10.05f;

double Decimais de precisão dupla (64bits) double total = 1000.10;

boolean Valores lógicos. true ou false boolean aceita = true;

char Caracter unicode char letra = „a‟;

Estes tipos são chamados de tipos PRIMITIVOS, pois

não estão ligados aos conceitos de POO

Page 25: Programação Orientada a Objetos - 001

Pense em variáveis como se fossem copos

• Cada copo sabe guardar um tipo de líquido

short

int

long

float

double

Page 26: Programação Orientada a Objetos - 001

Conversão de tipos trocar o conteúdo de copo

Implícita

Explícita

Page 27: Programação Orientada a Objetos - 001

E como faço para guardar palavras?

• String

– não é um tipo primitivo

– mas ao utilizarmos, parece que é

– é, basicamente, uma matriz de char

String nome = “Seu nome aqui”;

String sobrenome = “Seu sobrenome aqui”;

Sempre entre aspas duplas

Page 28: Programação Orientada a Objetos - 001

O que fazer com estas variáveis?

• Variáveis sozinhas não tem utilidade alguma, certo?

• Como podemos modificar os valores?

• Como “grudar” palavras umas nas outras?

• Como fazer comparações?

• Como desviar o fluxo do programa?

Page 29: Programação Orientada a Objetos - 001

Como fazer cálculos matemáticos?

Operador O que faz? Exemplos

+ Soma valores

int a = 1; int b = 1; int c = a + b; int x = 25 + 25;

- Subtrair valores int a = 10; int b = 5; int c = a - b; int y = a * 30;

* Multiplica valores int a = 2; int b = 2; int c = a * b; int x = y * 3 * c;

/ Divide valores. Cuidado com a divisão por 0

int a = 10; int b = 2; int c = a / b; int z = 10 / c;

% Resto da divisão de um valor por outro int a = 10; int b = 3; int c = a % b; int w = k % y;

Page 30: Programação Orientada a Objetos - 001

Como guardar os cálculos em uma variável?

Operado

r

O que faz? Exemplos

= “Joga” um valor que está à direita dele para uma

variavel que está à esquerda

int idade = 18; int quadrado = x * x;

+= Tem o mesmo efeito de somar o valor atual da

variável com o valor que está a esquerda;

int a = 10; a += 1; int a = 10; a = a + 1

-= Tem o mesmo efeito de diminuir o valor atual da

variável com o valor que está a esquerda;

int a = 10; a -= 1; int a = 10; a = a - 1;

*= Tem o mesmo efeito de multiplicar o valor atual da

variável com o valor que está a esquerda;

int a = 10; a *= 2; int a = 10; a = a * 2;

/= Tem o mesmo efeito de dividir o valor atual da

variável pelo valor que está a esquerda;

int a = 10; a /= 2; int a = 10; a = a / 2;

Page 31: Programação Orientada a Objetos - 001

Operadores unários

• Fazem a operação e já guardam o valor na própria variável

Operador O que faz? Exemplos

++ Soma 1 no valor atual da variável e já guarda na

própria variável

contador++;

++contador;

-- Subtrai 1 no valor atual da variável e já guarda na

própria variável

contador--;

--contador;

Tem diferença de estar à direita ou à esquerda da variável

• direita: soma é feita depois da utilização da variável

• esquerda: soma é feita antes da utilização da variável

Page 32: Programação Orientada a Objetos - 001

Como anexar uma palavra na outra?

String nome = "Seu nome";

String sobrenome = "Seu sobrenome";

String nomeCompleto = nome + " " + sobrenome;

String frase = "string" + " " + 10 + " " + "concatenada";

Page 33: Programação Orientada a Objetos - 001

E se eu quiser comparar um valor ou variável com outra?

Operador O que faz? Exemplo

== Verifica se um é igual ao outro a == b; 1 == 2; 10.5 == 20;

!= Verifica se um é diferente do outro (não iguais) a != b; 1 != 2; 10.5 != 20;

> Verifica se um é maior que o outro a > b; 1 > 2; 10.5 > 20;

>= Verifica se um é maior ou igual ao outro a >= b; 1 >= 2; 10.5 >= 20;

< Verifica se um é menor que o outro a < b; 1 < 2; 10.5 < 20;

<= Verifica se um é menor ou igual ao outro a <= b; 1 <= 2; 10.5 <= 20;

Sempre retornam true ou false

Page 34: Programação Orientada a Objetos - 001

Ok. Mas meus sistemas precisarão de desvios no fluxo de execução. Como faço?

Use o comando SE ... ENTÃO

if (verdade)

faz_tal_coisa;

int idade = 15;

if ( idade >= 18 )

System.out.println("Maior de idade!"); Uma linha de

comando apenas!

Sempre uma expressão lógica (true ou false)

Page 35: Programação Orientada a Objetos - 001

E caso seu precise executar mais de um comando após o IF?

Use um "bloco" de código

if (verdade) {

faz_tal_coisa;

faz_outra_coisa;

}

Fecha o bloco

Abre o bloco

Sempre use blocos, mesmo que para comandos simples!

Page 36: Programação Orientada a Objetos - 001

if (verdade) { faz_tal_coisa; } else { faz_outra_coisa; }

E caso eu queira fazer alguma coisa quando o IF falhar?

• Use o comando SE ... ENTÃO ... SENÃO

Quer dizer: “Caso o if acima seja

false execute este bloco baixo”

Page 37: Programação Orientada a Objetos - 001

O IF usa expressões lógicas. E se eu quiser fazer mais do que uma comparação?

Expressão O que faz? Exemplos

& Faz uma operação de conjunção

(E) entre uma expressão e outra

if ( idade > 15 and idade < 18 ) { ... }

&& Igual ao &, porém nem sempre

avalia a segunda expressão

if (idade > 15 and idade < 18 ) { ... }

| Faz uma operação de disjunção

(OU) entre uma expressão e

outra

if ( temSaldo | ehClienteEspecial ) { ... }

|| Igual ao |, porém nem sempre

avalia a segunda expressão

if ( temSaldo || ehClienteEspecial ) { ... }

! Inverte a expressão (não) if (!temSaldo){ ... }

Use && e || sempre

Page 38: Programação Orientada a Objetos - 001

Lembra da TABELA VERDADE?

Expressões && ||

false false false false

false true false true

true false false true

true true true true

Expressões !

true false

false true