Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução à Programação
Orientada a Objetos
O que é um paradigma de
programação?
– É um padrão conceitual que orienta
soluções de projeto e implementação.
– Paradigmas explicam como os elementos
que compõem um programa são
organizados e como interagem entre si.
• Exs.: procedural, funcional, orientado a objetos
Orientação a Objetos
1
Objetos
Cada objeto possui características
(dados) e comportamento (operações).
– Ex.: lâmpada
• características: ligada (sim/não), potência,
voltagem, etc.
• comportamento: ligar, desligar, queimar, etc.
Encapsulamento
É um dos conceitos básicos de OO.
A idéia de uma “caixa preta”:
– não é necessário saber os detalhes de
funcionamento interno, mas sim como
utilizar.
Encapsular é esconder como as coisas
funcionam por trás de uma interface
externa.
– Ex.: caixa automático
• Como ele é implementado internamente?
• Utilizamos através de operações bem
conhecidas
2
Operações (Métodos)
Dados (Atributos)
objeto •Acesso aos dados é feito
através da chamada de um
método
•Privado
Mensagens
obj1
MENSAGEM
3
Classes
Lâmpada
Classificação Instanciação
Lâmpada1 Lâmpada2
4
veículos
Ferrari
veículo IDN8810
Marca
objeto1 instâncias
Placa
lerPlaca
Fiat Uno
IAS3333
classe
objeto2
Exemplo Java
public class Veiculo {
private String marca;
private String placa; Atributos
...
Resumo Conceitos OO
Objeto
– unidade básica de orientação a objetos. Um
objeto é uma entidade que tem atributos,
comportamento e identidade. Objetos são
membros de uma classe e os atributos e o
comportamento (métodos) de um objeto são
definidos pela definição da classe.
Classe
– uma classe é uma descrição de um conjunto de
objetos. Este conjunto de objetos compartilha
atributos e comportamento em comum. Uma
definição de classe descreve todos os atributos
dos objetos membros da classe, bem como os
métodos que implementam o comportamento
destes membros.
5
Orientação a objetos
– um método de desenvolvimento de software que
usa abstração com objetos, classes encapsuladas
e comunicação por mensagens, hierarquia de
classes e polimorfismo.
Abstração
– um modelo de um conceito ou objeto do mundo
real.
Encapsulamento
– processo de esconder os detalhes internos de um
objeto do mundo externo.
Atributo
– usado para armazenar o estado de um objeto.
Pode ser simples como uma variável escalar (int,
char, double, ou boolean) ou pode ser uma
estrutura complexa tal como outro objeto.
Comportamento
– atividade de um objeto que é vista do ponto de
vista do mundo externo. Inclui como um objeto
responde a mensagens alterando seu estado
interno ou retornando informação sobre seu
estado interno.
Método
– uma operação ou serviço executado sobre o
objeto, declarado como parte da estrutura da
classe. Métodos são usados para implementar o
comportamento do objeto.
Estado
– reflete os valores correntes de todos os atributos
de um objeto e são o resultado do comportamento
do objeto ao longo do tempo.
Introdução Java
Histórico da linguagem
– 1991
• Patrick Naughton, Mike Sheridan e James
Gosling criaram a linguagem em 1991, no
GreenProject da Sun
• O objetivo do era desenvolver software para
controlar eletrodomésticos (TVs interativas,
torradeiras interativas, etc.)
6
• Idéia inicial era utilizar C++
• Objetivos: linguagem pequena, eficiente e
facilmente portável
• A linguagem deveria permitir a construção de
programas que pudessem executar em
diferentes arquiteturas sem a necessidade de
se re-escrever código.
• Foi criada a linguagem Oak, que com o
crescimento da Internet deu origem a Java
– Potencial de criar páginas na Web com conteúdo
dinâmico.
– 1994
• Criado o navegador HotJava que permitia
executar applets Java
– 1995
• Em maio, John Gage, diretor da Sun
Microsystems e Marc Andreessen, da
Netscape, anunciaram que a linguagem já era
realidade e seria incorporada ao Navigator
• Em novembro, a linguagem Java foi
disponibilizada pela 1ª vez no JDK 1.0
– 1997
• JDK 1.1 traz novas APIs para tratamento de
eventos, acesso a banco de dados, interfaces
gráficas, etc
– 1999
• JDK 1.2 ou Java 2
• Correção de bugs, otimização e sedimentação
dos conceitos
Observação:
– A partir da versão 1.2, o JDK (Java
Development Kit) recebeu a denominação
de SDK (System Development Kit).
7
Plataforma Java
J2SE (Java 2 Platform, Standard Edition)
– Desenvolvimento e execução de applets,
aplicações stand-alone ou aplicações cliente
J2EE (Java 2 Platform, Enterprise Edition)
– Reúne um conjunto de tecnologias em uma
arquitetura voltada para o desenvolvimento de
aplicações servidoras
J2ME (Java 2 Platform, Micro Edition)
– Fornece um ambiente de execução otimizado e
permite escrever programas cliente que são
executados em pequenos dispositivos sem-fio
(smart cards, telefones celulares, pagers, ...)
Características
– Java é tanto uma linguagem de
programação de alto nível quanto uma
plataforma de desenvolvimento de
sistemas.
8
Ambiente Java
Java é tanto compilada quanto
interpretada.
– O compilador transforma o programa em
bytecodes.
– Bytecodes são instruções de máquina
compreendidas pela Java Virtual Machine.
– A Java Virtual Machine é um interpretador
que transforma as instruções bytecodes
em linguagem de máquina.
Programa Java
minhaClasse.java
javac.exe
Compilador
Bytecode
minhaClasse.class
Interpretador java.exe
JVM
PC UNIX MAC
9
C X Java
C X Java
Ambientes de programação
– BlueJ
• Ambiente voltado para o ensino de Java e
Orientação a Objetos
• Disponibilizado gratuitamente na Internet
• http://www.bluej.org
• Necessita do SDK instalado para funcionar
– Eclipse
• Ambiente integrado para o desenvolvimento
profissional de software
• Disponibilizado gratuitamente na Internet
http://www.eclipse.org
• Necessita do SDK instalado para funcionar
10
Ambiente de Execução
– J2SE deve ser utilizado por
desenvolvedores
– Para apenas executar programas em Java,
a Sun disponibiliza o JRE (Java Runtime
Environment)
Estrutura de um programa
Um programa Java é um conjunto composto
por uma ou mais classes.
Tipicamente, cada classe é implementada
em um arquivo fonte separado, sendo que o
arquivo deve ter o mesmo nome da classe.
– Ex.: a classe Veiculo deve estar definida no
arquivo Veiculo.java
Em geral, os arquivos que compõem um
programa java devem estar no mesmo
diretório.
11
Ambiente de Programação
Sun disponibiliza gratuitamente
– http://java.sun.com
J2SE
– Disponível para vários sistemas
operacionais
– Contém: compilador, depurador, biblioteca
de classes e a máquina virtual
– Não oferece editor ou ambiente visual
integrado
12
Para converter de um tipo para um tipo
menor, precisamos referenciar de forma
explícita.
– (tipo Java) expressão;
– Ex.:
• long l = 1;
int i = (int) l;
• byte b1=1, b2=2, b3;
b3 = (byte)(b1 + b2);
– Cuidado! Ao somar dois valores byte
iguais a 100, o resultado é o int 200. Ao
realizar o cast para byte, o resultado é
convertido para -56, o equivalente ao
padrão de bits armazenados.
Operadores
Operadores básicos:
– aritméticos: +, -, *, /, % (resto da divisão)
– relacionais: >, >=, <, <=
– igualdade: ==, !=
– lógicos: &&, & (and), ||, | (or), ^ (xor), ! (not)
– atribuição: =, +=, -=, *=, /=, %=
– incremento, decremento: ++, --
13
Cuidado:
– O resultado da operação de divisão em Java
depende do tipo dos operandos.
• Tipo inteiro: o resultado é a divisão inteira
int resultado = 10/4 //igual a 2
• Tipo ponto flutuante: o resultado é a divisão
“normal”
float resultado = 10f/4f //igual a 2,5
Comandos
Declaração
– Variáveis:
• int valor1, valor2 = 123;
• double taxa, percentual;
– Constantes:
• final double PI = 3.1415;
if
– Condicionais são escritos da seguinte
forma:
• if (condição) {
comandos;
}
• if (condição) {
comandos;
} else {
comandos;
}
• if (condição) {
comandos;
} else if (condição) {
comandos;
} else {
comandos;
}
14
if (i % 2 == 0) {
System.out.println(“Par”);
} else {
System.out.println(“Ímpar”);
}
if (vel >= 25) {
if (vel > 65) {
System.out.println(“maior 65”);
} else {
System.out.println(“maior 25”);
}
} else {
System.out.println(“menor 25”);
}
switch...case
– Utilizado para cobrir múltiplas escolhas
sobre valores alternativos de variáveis int,
byte, short, long ou char.
– Escreve-se da seguinte forma:
• switch (expressão) {
case constante1:
comandos;
break;
...
default:
comandos;
}
switch (menuItem){
case 0:
System.out.println(“zero”);
break;
case 1:
System.out.println(“um”);
break;
default:
System.out.println(“inválido”);
}
switch (nota){
case ‘A’:
case ‘B’:
case ‘C’:
System.out.println(“Passou”);
break;
default:
System.out.println(“Reprovou”);
}
15
for
– Tem a seguinte forma:
• for (inicialização; condição; alteração) {
comandos;
}
– Ex.:
int soma = 0;
for (int i=1; i<=3; i++) {
sum += i;
}
System.out.println(“Soma “+soma);
while
– Tem a seguinte forma:
• while (condição) {
comandos;
}
– Ex.:
int i = 0;
while (i<10) {
System.out.println(“i= “ + i);
i++;
}
do...while
– Tem a seguinte forma:
• do {
comandos;
} while (condição);
– Ex.:
int i = 0;
do {
System.out.println(“i= “+i);
i++;
} while (i<10);
16
Classe String
String
– É uma classe e não tipo primitivo.
– Representa um grupo de caracteres.
– Declarados entre aspas duplas
• String nome = "Júlio";
• String nome = new String(“Júlio”);
Conversão
– Java converte outros tipos para strings
• int idade = 25;
String nomeIdade = nome + " " + idade;
Operadores
– concatenação: +
• String nomeCompleto = nome + " " +
"Machado”;
– comparação: equals
• String str1 = "texto";
String str2 = "txt";
if(str1.equals(str2)){} //compara conteúdo
Métodos úteis
– Tamanho:
• Método length()
• String texto1 = "Início";
System.out.println(texto1.length())
;
--> 6
– Caractere em uma posição:
• Método charAt(posição)
• char c = texto1.charAt(1);
--> n
17
– Substrings:
• Método substring(início,fim)
• String texto1 = "Início";
String sub = texto1.substring(1,3)
--> ní
– Conversão:
• Métodos parseXXX de cada classe do tipo
original
• int i = Integer.parseInt("123");
• double d = Double.parseDouble("1.3");
18