57
Programação Orientada a Objet o - Aula 1 1 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Embed Size (px)

Citation preview

Page 1: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 1

Introdução à Orientação a Objetos

Prof. Ricardo Linden

Page 2: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 2

História das LPOO

• Simula 67: Encapsulamento em uma definição de “class”• Smalltalk-80: Xerox PARC: Primeira linguagem verdadeiramente

orientada a objeto (Alan Kay) • C++: Primeira linguagem OO amplamente aceita (inicialmente era

apenas um pré-processador)• C++, Ada95, Modula-3, CLOS: acrescentaram orientação a objeto a

estruturas pré-existentes• Java: Modelo de objetos derivado do C++, simplificado e

melhorado

Page 3: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 3

Programação OO X Procedural

• A orientação a objeto muda o foco da programação dos algoritmos para as estruturas de dados:– A organização lógica dos dados determina a organização do

software– O processo de design do software se concentra na organização

dos dados e na definição das operação que a eles são aplicadas– “Tipo de dados” agora está embutido no conceito de “classe”

Mais perto da forma comopensamos no “mundo real”

Page 4: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 4

Conceitos Básicos da Orientação a Objetos

Para podermos começar a nossa aula, nós primeiro precisamos entender os seguintes conceitos básicos:

– Objeto

– Classe

– Instância

– Método

– Mensagem

–Sub-classe–Herança–Abstração–Encapsulamento–Polimorfismo

Page 5: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 5

Objeto

• Um pacote de software que contém uma coleção de procedimentos e dados relacionados.

• Um objeto representa um item, unidade ou entidade (real ou abstrata) individualmente separável com um papel bem definido no domínio do problema.

• Um objeto, como um substantivo, pode ser uma pessoa, local ou objeto basicamente, qualquer conceito que seja aplicável ao projeto do sistema.

Page 6: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 6

Classe

• Um padrão que define os métodos e características que serão incluídos em um tipo particular de objeto.

• Uma classe é uma definição geral dos atributos e métodos de um conjunto de objetos.

• Exemplos: Cliente, Veículo, Conta Corrente, Documento, Reserva

• Cada uma destas classes representa uma série de características comuns:– dados, como placa do veículo – ações, como ligar o veículo

Page 7: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 7

Instância

• Outro nome para um objeto que pertença a uma classe particular.

• Quando uma aplicação está executando, objetos são instanciados de uma classe e tornam-se então instâncias desta classe.

• Exemplos- Ticket No. 00-123961 representa um objeto (instância) da classe “Reserva”.- “Meu Fusquinha” representa uma instância da classe “Veículo”

Page 8: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 8

Método

• Um procedimento/função dentro de um objeto.• Métodos são ações que uma classe ou objeto faz e incluem a

lógica da aplicação.• Um método é similar a uma função/procedimento ou subrotina

em termos de programação estruturada.• Exemplos:

- “Criar uma nova conta” é um método da classe “Conta”- “Registrar para uma Matéria” é um método para a classe “Estudante”

Page 9: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 9

Atributos vs. Métodos

• Atributos definem os dados enquanto os métodos definem a funcionalidade.

• Atributos são definidos por seus nomes e tipos (por exemplo, integer, string, date).

• Métodos são definidos escrevendo o código para isto (exceto no caso de métodos virtuais)

• Atributos e métodos são ambos encapsulados dentro dos seus objetos correspondentes

Page 10: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 10

Encapsulamento

• Uma técnica nos quais os dados estão encapsulados junto com seus procedimentos correspondentes

• Encapsulamento esconde tanto os métodos quanto os atributos do mundo exterior.

• Visibilidade: Public, Private, Protected, e Package-level.– Private: Somente membros da classe podem acessar a propriedade/método

– Protected: Somente membros da classe e subclasses (classes descendentes) podem acessar a propriedade/método

– Public: Todas as classes podem acessar a propriedade/método

– Package Level : Todos as classes do mesmo package conseguem acessar a propriedade/método

Vamos discutir mais detalhadamente mais à frente

Page 11: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 11

Mensagem

• Um sinal que um objeto manda para outro que pede que o objeto que recebe o sinal execute um de seus métodos.

• Como resultado do encapsulamento, mandar mensagens se torna o mecanismo de comunicação entre objetos que interagem.

• Um formato geral de mensagem tem o seguinte formato:Object.método(parâmetros)

• Exemplo: invoice.calcularTotal ( )

Page 12: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 12

Sub-Classe

• Uma classe que é um caso especial de outra classe.

• Sub-classe também é conhecida como classe filha, enquanto que a super-classe é também chamada de classe pai ou mãe.

• Sub-classes são especializações das super-classes e são criadas via herança

• Exemplo:

– Um pediata é um caso especial de médico

– Um carro é um caso especial de veículo.

Page 13: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 13

Herança

• Em OO existe um relacionamento “Is-a” entre classes– Exemplo : aluno-4o.-período is-a aluno is-a pessoa

• Classes derivadas são chamadas de subclasses (mesmo que normalmente sejam maiores)

• Pode haver herança simples e múltiplia• Classes base abstratas:

– Classes não têm instâncias reais (objetos)– Subclasses têm que implementar alguns métodos– Ex. : classe veículo_automotor com o método abstrato ligar. Não existem objetos

desta classe, que é uma classe base abstrata. As classes carro e moto herdam as propriedades desta classe e implementam o método ligar.

Page 14: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 14

Hierarquia de Classes

• Classes podem ser organizadas em hierarquias de forma que classes mais específicas herdem métodos de classes mais abstratas

• Diagramas de hierarquia de classes

Classe: Cadeira

subclasses

Cadeira de Escritório Cadeira de Balanço

Page 15: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 15

Abstração

• É o processo de capturar o comportamento essencial e características e colocá-las de uma forma conveniente para organizar a hierarquia de classes.

• Exemplo:– Veículo (Sub-classes: Terrestre, Marinho e Aéreo)

• Classes abstratas nunca são instanciadas– Decorrência da sua natureza genérica

– Exemplo : Nada é um “veículo” genericamente, mas sim um veículo terreste, marinho ou aéreo.

Page 16: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 16

Sobrecarga

• Mesmo nome, mas número ou tipo de parâmetros diferentes.

• Para sobrecarregar uma função, basta declarar os vários tipos que ela pode ter.

• Exemplo : classe carro, método frear.– Se receber um parâmetro, indica a força que temos que aplicar no pedal.

– Se não receber nenhum parâmetro, indica que temos que parar o carro.

• Também é aplicável a operadores

• Exemplo: operador +2 + 3 (adição inteira)

3.2 + 2.5 (adição real)

Page 17: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 17

Polimorfismo

• Esconder procedimentos alternativos por trás de uma interface comum.

• Polimorfismo vem do grego e significa “muitas formas.”

• Isto permite que se tenha uma interface comum que esconde detalhes de implementação

• Exemplo : método frear.– Tem uma implementação na classe base (carro).

– Tem outra implementação na classe filha (ferrari).

• A função da classe filha se sobrepõe (overrides) à da classe mãe

Page 18: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 18

Polimorfismo Sobrecarga

• Com polimorfismo, nós decidimos qual dos métodos será usado em tempo de execução (exemplo claro de binding dinâmico).

• Com sobrecarga, podemos decidir qual dos métodos será usado em tempo de compilação, distinguindo pelos parâmetros passados.– O processo de escolha da função correta pelo compilador é chamado

de resolução de sobrecarga (overload resolution)

Page 19: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 19

Programas Java

• Programas Java consistem em classes, que são formadas por atributos e métodos que realizam tarefas e retornam informações quando apropriado.

• Isto é, para fazer seus programas Java, você precisa desenvolver classes que chamarão outras classes, e assim por diante.

• Logo, precisamos aprender como desenvolver nossas próprias classes em Java para que possamos implementar soluções para nossos problemas.

Page 20: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 20

Programando OO em Java

• O núcleo da LP é pequeno, mas existem várias bibliotecas de classes que fornecem várias funcionalidades adicionais para a LP.

• Em Java usamos uma abordagem de blocos de construção, reutilizando os softwares já existentes. Isto fará com que:– Seus programas tenham melhor desempenho, pois normalmente as classes pré-

programadas são mais otimizadas do que o seu código pessoal.

– Melhore a portabilidade do seu programa, pois estará usando classes e métodos que são incluídos em praticamente todas as implementações do Java

– Você economize tempo de programação.

Page 21: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 21

A Linguagem de Programação Java

• Onde encontrar informação– Inventada pela Sun Microsystems

– http://java.sun.com

• O código Java é compilado para um código de nível médio (byte code), que é independente de máquina e precisa então ser interpretedado por um interpretador Java.

Código Fonte Java

CompiladorJava

Arquivo ClassJava

InterpretadorJava Executar

Programa

ExecutarPrograma

Page 22: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 22

Editando seus programas

• Um arquivo fonte Java é 100% texto puro.

• Você pode editá-lo usando qualquer editor de texto de sua preferência (notepad, vi, emacs, edit, etc).

• Existem ambientes IDE, como Netbeans (escrito em Java e gratuito para usos não comerciais), Jbuilder, Visual Café e o Visual J++

• Os arquivos fonte devem ter extensão .java

Page 23: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 23

• Java é uma linguagem de formato livro. Isto quer dizer que não necessitamos de espaços em branco, identação ou pulo de linha para que o compilador entenda nossos códigos.

Editando seus programas

Como em qualquer linugagem, devemos programaem Java buscando sempre o máximo de clarezapara facilitar a compreensão e a manutenção

posteriores. Assim sendo, apesar de não seremobrigatórios, a identação, pulos de linha e

espaços em branco são altamente recomendados

Page 24: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 24

Breve introdução ao Java

• Vamos ver agora dois exemplos que nos permitirão ter uma idéia de como programar em Java.

• Entretanto, vários conceitos serão omitidos neste momento.

• Não há motivo para estresse ou para começar a pensar em destruir seu computador - nós vamos ver tudo detalhadamente ainda neste curso!

Page 25: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 25

Primeiro Exemplo em Java

//Este é o nosso primeiro exemplo em Javapublic class HelloWorld { public static void main (String[] args)

{System.out.println("Hello World!");

}}

Page 26: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 26

Conceitos vistos no exemplo

• // São iniciadores de comentários em uma linha (como no C++).

• Em Java também podemos ter comentários delimitados por /* e */, como no C.

• Os comentários marcados por // são preferíveis por poderem ser lidos pela ferramenta javadoc, que veremos neste curso se tivermos tempo.

Não há necessidade de correr com a matéria, mas há muito para se ver em Java. Logo, quanto mais adiante formos, mais vocês aprenderão.

Page 27: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 27

• public class HelloWorld– Esta linha é uma definição de classe.

– Todo programa em Java consiste em uma ou mais classes definidas pelo programador (ou pelo usuário).

– A palavra chave class introduz uma definição de classe em Java e é imediatamente seguida pelo nome da classe.

– Notas importantes:O nome da classe segue é um identificadorAs palavras chaves em Java são palavras reservadas Java faz diferenciação entre maiúsculas e minúsculas (HelloWorld

Helloworld)

Conceitos vistos no exemplo

Page 28: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 28

• public class HelloWorld

– public é um modificador de visibilidade

– Toda classe public deve estar gravada em um arquivo cujo nome é o mesmo da classe (neste caso, HelloWorld.java) Assim, não podemos ter duas classes public no mesmo

arquivo. Vamos ver como contornar isto mais a frente.

– Todo arquivo java deve terminar com a extensão .java

Conceitos vistos no exemplo

Page 29: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 29

• { }– Os blocos de comando são definidos pelas chaves, como no C e no C++

– Vocês notarão muitos pontos em comum entre o Java e estas linguagens.

• public static void main (String[] args)– Todo aplicativo Java deve ter um método main, onde ele é iniciado.

– Se não tiver, o interpretador Java não executará a sua classe.

– Como no C, a palavra chave void indica que o método não retorna nenhum valor.

Conceitos vistos no exemplo

Page 30: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 30

• public static void main (String[] args)– O public é um modificador de visibilidade (faz o método ser público).

– O static diz que o método pertence à classe e não aos seus objetos

Conceitos vistos no exemplo

Vamos ver estes conceitos commais detalhes mais adiante!

Page 31: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 31

• System.out.println("Hello World!");– System.out é o objeto de saída padrão

– Ele permite aos aplicativos Java escrever na janela de comando a partir do qual o aplicativo Java é executado.

– O método println imprime uma linha colocando um CRLF no fim.

– O método print faz o mesmo, só que sem o CRLF Os caracteres de escape \n, \t, etc. que conhecíamos do printf também valem

para o print e para o println.

Conceitos vistos no exemplo

Page 32: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 32

Como compilar o código usando JDK?

Janela MS-DOS

O arquivo fonte “.java” deve sempre ter esta extensão

Executando o compilador

Arquivo “.class” gerado

Page 33: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 33

Aplicativos Java

• Existem dois tipos de programas Java:

– Aplicativos : programas semelhantes a processador de textos, planilhas, etc. que

normalmente são armazenados e executados localmente.são carregados na memória usando-se o interpretador Java.

– Applets : programas pequenos que normalmente são armazenados em um

computador ao qual o usuário se conecta remotamente via web.São carregados e executados via appletviewer e precisam ser chamados

através de uma página html.

Page 34: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 34

Como executar o código?

Executando o interpretador Java

Saída do programa e término

Page 35: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 35

Importante

• O diretório onde ficam o compilador (javac) e o interpretador (java) Java deve ser acrescentado ao PATH do DOS

• Se formos re-utilizar classes que nós mesmos criamos, devemos colocar seus diretórios no CLASSPATH do DOS Vamos voltar a este tema mais adiante neste curso.

• As duas mudanças podem ser feitas no próprio AUTOEXEC.BAT, para que quando o micro seja ligado, elas sejam automaticamente implementadas.

• O diretório corrente não necessariamente estará sendo buscado pelo interpretador java. Acerte as variáveis de ambiente.

Page 36: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 36

Segundo exemplo

//Este é o nosso segundo exemplo em Javaimport javax.swing.JOptionPane;

public class HelloWorld { public static void main (String[] args)

{ JOptionPane.showMessageDialog(null, "Hello World!");

System.exit(0);}

}

Page 37: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 37

Conceitos vistos neste exemplo

• import javax.swing.JOptionPane;– Esta instrução serve para identificar e carregar classes requeridas para

compilar um programa java.

– Existem muitas classes prontas em Java, como a classe Swing que contém elementos que nos ajudam a definir interfaces gráficas com os usuários.

– Existem elementos para diálogos, botões, janelas, etc.

Se tivermos tempo, veremos também as interfaces gráficas ao fim deste curso. Mas não vamos correr mais por causa disto!

Page 38: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 38

Biblioteca de classes

• Uma biblioteca de classes é uma coleção de classes que podemos usar quando desenvolvemos programas.

• Existe uma biblioteca padrão de classes Java que é parte de qualquer ambiente de desenvolvimento Java

• Estas classes não são parteda linguagem Java per se, mas nós nos baseamos bastante nelas.

As bibliotecas de classes Javasão equivalente às bibliotecas do C

Page 39: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 39

• Várias classes que usaremos, como a System e a String são parte da biblioteca padrão de classes Java

• Outras bibliotecas de classes podem ser adquiridas com fabricantes de software ou criadas por você mesmo.

Biblioteca de classes

Não seja teimoso!Desenvolver novamente classes já existentes é simplesmente tolice - causa erros e perda de

performance!

Page 40: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 40

Pacotes

• As classes da biblioteca padrão Java são organizadas em pacotes.

• Alguns dos pacotes da biblioteca padrão são:

Pacote

java.langjava.appletjava.awtjavax.swingjava.netjava.util

Propósito

Suporte genéricoCriar applets para a webInterfaces gráficas e gráficosCapacidades e componetes gráficos adicionaisComunicação em redeUtilidades variadas

Page 41: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 41

A declaração import

• Quando queremos usar uma classe de um pacote, pode usar seu nome totalmente qualificado

java.util.Random

• Outra opção é importar a classe, e depois usar o nome da classe:

import java.util.Random;

• Para importar todas as classes em um pacote específico, você pode usar o caracter curinga *

import java.util.*;

Page 42: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 42

• Todas as classes do pacote java.lang são automaticamente importadas em nossos programas

• É por isto que não precisamos de um import no primeiro exemplo.

A declaração import

Não é necessário estourar a cabeçatentando entender a fundo agora osconceitos de classes e pacotes. Nósos veremos com mais cuidado maisa frente neste curso!

Page 43: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 43

Conceitos vistos neste exemplo

• System.exit(0);

– Esta instrução serve para finalizar o nosso programa.

– Todo programa com interface gráfica precisa ser finalizado desta forma, para que termine corretamente.

– Caso não o façamos, nossa janela de comando não voltará a funcionar corretamente.

Page 44: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 44

Pergunta razoável

Se eu preciso importar um arquivo para usar a classeJOptionPane, porque não preciso importar uma

classe para usar a classe System e seu objeto out?

Page 45: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 45

Resposta

A classe System é parte do pacote java.langLembre-se que este pacote padrão é importado

automaticamente em todo programa Java

Page 46: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 46

Terceiro exemplo import javax.swing.JOptionPane;

public class Soma1 { public static void main (String[] args)

{ int n1,n2,soma;

String s1,s2;s1=JOptionPane.showInputDialog(“Prim Num. :");s2=JOptionPane.showInputDialog(“Seg. Num. :");n1=Integer.parseInt(s1);n2=Integer.parseInt(s2);soma=n1+n2;

JOptionPane.showMessageDialog(null,“A soma é”+soma); System.exit(0);}

}

Page 47: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 47

Conceitos vistos neste exemplo

• import javax.swing.JOptionPane;– Esta instrução serve para identificar e carregar classes requeridas para

compilar um programa java, informando ao compilador onde pode encontrá-las (no caso, no diretório javax).

• public class Soma1 { – Inicia as definições da classe Soma1.

– Como é uma classe pública, ela deve estar em um arquivo denominado Soma1.java

– A chave indica o começo do bloco de definições. Não esqueça que ela tem que ser fechada quando este terminar.

Page 48: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 48

Conceitos vistos neste exemplo

Declarações de variáveis

– Como em todas as linguagens compiladas, precisamos declarar as variáveis que usamos.

– Declarações consistem do tipo da variável, seu nome e um ponto-e-vírgula.

– Se tivermos mais de uma variável do mesmo tipo, podemos colocá-las na mesma declaração, separadas por vírgulas.

– É boa prática de programação dar para as variáveis nomes descritivos da sua verdadeira função.

Page 49: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 49

Conceitos vistos neste exemplo

• int n1,n2,soma;– Estamos declarando variáveis do tipo inteiro.

– Existem outros tipos numéricos, para armazenar números racionais (float e double).

• String s1,s2;– Estamos declarando objetos da classe String.

Como dissemos antes, não vamos nos aprofundar nos conceitos de Java neste momento. Mais a frente nós discutiremos todos estes conceitos mais profundamente.

Page 50: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 50

Conceitos vistos neste exemplo• s1=JOptionPane.showInputDialog(”Prim Num. :");

– Estamos usando um método da classe JOptionPane que realiza uma entrada de dados.

– Este método retorna uma string.

• n1=Integer.parseInt(s1);– Java é uma linguagem muito mais rigorosamente tipada do que o C.

– Não é possível realizar typecasting automático na maioria dos casos.

– Temos que chamar uma função (no caso um método da classe Integer) para poder converte a string entrada na instrução anterior em um inteiro para realizarmos a soma.

Existe o tipo int e a classe Integer, que

é denominada uma “wrapper class” do

tipo. Mais à frente veremos isto com

detalhes.

Page 51: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 51

Quarto exemploimport javax.swing.JOptionPane;

public class Max1 { public static void main (String[] args)

{ int n1,n2,max;

n1=Integer.parseInt(JOptionPane.showInputDialog(“Prim Num. :"));n2=Integer.parseInt(JOptionPane.showInputDialog(“Seg Num. :"));if (n1>n2) {

max=n1;} else {

max=n2;}

JOptionPane.showMessageDialog(null,“O máximo é ”+max); System.exit(0);}

}

Page 52: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 52

• if (n1>n2) { – O if é uma statement condicional, que permite que tomemos

decisões/escolhamos um curso de ação em nossos programas.

– A statement if tem o seguinte formato: if (condição) statement1 else statement2

– onde: condição é uma expressão booleana (lógica) statement1 é executada se a condição é avaliada como verdadeira. statement2 é executada se a condição é avaliada como falsa.

– A cláusula else é opcional

Conceitos vistos neste exemplo

A statement1 e a statement2 podem ser substituídas por um bloco de statements, mas neste caso não podemos esquecer das chaves em torno deste bloco.

Page 53: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 53

Quinto Exemploimport javax.swing.JOptionPane;

public class Max1 { public static void main (String[] args)

{ int i,soma;

i=1;soma=0;while (i<=10) { soma+=Integer.parseInt(JOptionPane.showInputDialog(“Num :")); i++;}

JOptionPane.showMessageDialog(null,“A soma é ”+soma); System.exit(0);}

}

Page 54: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 54

Conceitos vistos neste exemplo

• while (i<=10) { – Statements de repetição nos permitem repetir ações dentro de nossos

programas

– Existem três tipos de estruturas de repetição em Java for statementdo statementwhile statement

Compromisso:Veremos todascom cuidado depois!

Page 55: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 55

• O comando while permite que um statement (ou bloco de statements) seja repetido até que uma determinada condição seja verdadeira.

• Formato geral:– while(condition){ statement(s) }

• Onde:– condição é uma expressão booleana

– a(s) statement(s) sendo repetidas alteram o valor da condição para false em algum momento

Conceitos vistos neste exemplo

Page 56: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 56

Comportamento do while

• Na primeira vez que o loop é executado, a condição é avaliada. Se ela for falsa, não se executa as statements dentro do loop nenhuma vez.

• Se for verdadeira, executam-se todas as statements do loop e volta-se para o começo para avaliar a condição novamente.

• Este passo é repetido até que a condição seja falsa.

Isto implica que as statements podem executar qualquer número de vezes (de zero a infinito!)

Page 57: Programação Orientada a Objeto - Aula 11 Introdução à Orientação a Objetos Prof. Ricardo Linden

Programação Orientada a Objeto - Aula 1 57

Fim da aula

Já temos uma boa introdução.

Melhorem-na, fazendo os exercícios!