Buscar

01-Apresentacao.pptx

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

5/23/13	
  
1	
  
Conceitos fundamentais - 

OO e Java 
Introdução a Programação II 
BCC – DEINFO – UFRPE 
sidney@deinfo.ufpe.br 
Roteiro 
•  Introdução a orientação a objetos 
•  Introdução a linguagem Java 
•  Visão da disciplina 
ORIENTAÇÃO A OBJETOS 
Paradigma de programação 
•  Estilo de programação suportado por linguagens que 
agrupam certas características comuns 
•  Principais: 
–  Imperativo – C, Ada, Pascal 
–  Funcional – Haskell, LISP 
–  Lógico - Prolog 
–  Orientado a objetos (OO) – Smalltalk, C++, Java, C# 
•  Imperativo e OO são os mais populares 
Orientação a objetos (OO) 
•  1967: sugiu com Simula, linguagem para simulações 
–  Ex: simulação do movimento de navios 
•  Anos 90: popularização com o uso de interfaces 
gráficas com o usuário (GUI) 
–  Ex: componentes de interface Cocoa para MacOS 
•  Está presente na maioria das linguagens modernas 
(porém poucas são consideradas puramente OO) 
Programa OO 
•  Programa é formado de vários objetos que interagem 
entre sí 
•  Exemplo de programa no ambiente de ensino Alice: 
mundo formado de chão de grama, botões e pinguins. 
Pinguins cantam quando inicia o programa. 
5/23/13	
  
2	
  
Objeto 
•  Tem um tipo definido (classe) 
•  Possui: 
–  Identificação 
–  Variáveis (ou atributos) 
–  Ações (métodos) 
•  Exemplo: Objeto do Tipo Pinguim 
	
  {	
  	
  
	
  	
  nome	
  =	
  pinguim1,	
  	
  
	
  	
  cor	
  =	
  vermelho,	
  	
  
	
  	
  método	
  =	
  cantar()	
  	
  
}	
  
Classe 
•  Define o tipo para objetos (instâncias da classe) 
•  Define os atributos e métodos comuns para suas 
instâncias 
•  Ex: todo objeto do Tipo Pinguim tem uma cor e canta 
	
  {	
  	
  
	
  	
  cor	
  =	
  ?,	
  	
  
	
  	
  método	
  =	
  cantar()	
  {	
  
	
  	
  	
  	
  	
  abrirBoca();	
  	
  
	
  	
  	
  	
  	
  ...	
  	
  
	
  	
  }	
  	
  
}	
  
Instâncias de uma classe 
•  Exemplo: Objetos da Classe (Tipo) Pinguim 
	
  {	
  	
  
	
  	
  nome	
  =	
  pinguim1,	
  	
  
	
  	
  cor	
  =	
  azul,	
  	
  
	
  	
  cantar()	
  	
  
}	
  
	
  {	
  	
  
	
  	
  nome	
  =	
  pinguim2,	
  	
  
	
  	
  cor	
  =	
  amarelo,	
  	
  
	
  	
  cantar()	
  	
  
}	
  
	
  {	
  	
  
	
  	
  nome	
  =	
  pinguim3,	
  	
  
	
  	
  cor	
  =	
  verde,	
  	
  
	
  	
  pular()	
  	
  
}	
  
Programa OO 
•  Possui ao menos um objeto com um método principal 
–  Define o comportamento inicial do programa 
•  Exemplo: 
mundo.metodoPrincipal() {	
pinguim1.cantar();	
pinguim2.cantar();	
pinguim3.cantar();	
 ...	
}	
pinguim.cantar() {	
 abrirBoca();	
 levantarBracos();	
 tocarNota();	
 fecharBoca();	
 baixarBracos(); 	
}	
Princípios de OO 
•  Abstração 
•  Encapsulamento 
•  Modularidade 
•  Herança 
Abstração 
•  Foco nas características essenciais de um conceito 
	
  Abstração	
  para	
  	
  
classe	
  
Conceito	
  concreto	
  
Automovel	
  
consumo	
  
tanque	
  
...	
  
autonomia()	
  
...	
  
5/23/13	
  
3	
  
Exercício: identifique atributos e 
métodos para 
•  Conta 
 
 
 
•  Assinatura dos métodos (interface) isolam detalhes da 
implementação 
Encapsulamento 
Interface	
  =	
  {	
  
	
  	
  liga();	
  
	
  	
  desliga();	
  
	
  	
  proxCanal();	
  
	
  	
  voltaCanal();	
  
	
  	
  aumentaVol();	
  
	
  	
  abaixaVol();	
  
}	
  
Implementação	
  
Modularidade 
•  Decomposição do problema em pequenos pedaços 
Sistema	
  
GUI	
  
Lógica	
  
USlitários	
  
Dados	
  
Herança 
•  Criação de hierarquias de abstrações 
Projeto OO com UML 
•  A estrutura e o comportamento de um software OO 
podem ser modeladas 
–  Ex: com UML (Unified Modelling Language) 
•  Engenharia direta e reversa 
Pessoa	
  
nome	
  :	
  String	
  
class Pessoa {	
 String nome;	
}	
Modelo	
  UML	
   Código	
  Java	
  
Padrões de projeto OO 
•  Catálogo de problemas comuns no projeto de sistemas 
OO com as respectivas soluções 
•  Exemplo: Padrão observador (Observer). Muito utilizado 
para avisar eventos que ocorrem na GUI. 
5/23/13	
  
4	
  
Linguagem Java 
Java 
•  Linguagem OO independente de plataforma criada pela 
Sun Microsystems 
–  Hoje é da Oracle 
•  Parecida com C e C++, porém mais simples 
•  Micro (JME), Standard (JSE) e Enterprise (JEE) 
 
Bytecode, JVM e JRE 
•  Código fonte (.java) é compilado para bytecode (.class), 
formato independente de plataforma 
•  Bytecode é interpretado na Máquina Virtual Java (JVM) 
de cada plataforma 
•  Java Runtime Environment (JRE) = API + JVM 
•  Java Development Kit (JDK) = JRE + Compilador 
Bytecode	
  (.class)	
  
JVM	
  
SO	
  
Eclipse 
•  Principal IDE para Java 
•  Livre e de código aberto 
•  Implementada em Java 
Hello World em Java 
 
public class HelloWorld { 
   public static void main(String[] args) { 
 // imprime string na saída padrão 
       System.out.println(”Olá mundo em Java!"); 
   } 
} 
 
VISÃO DO CURSO 
5/23/13	
  
5	
  
Objetivos do curso 
•  Aprender a conceber sistemas usando o paradigma OO 
•  Ter habilidades fundamentais para escrever programas 
com a linguagem Java padrão (JSE – Java Standard 
Edition) 
Conteúdo 
•  Fundamentos de classes e objetos 
•  Java imperativo: condicionais, laços, etc 
•  Tipos de coleções para Java 
•  Herança 
•  Polimorfismo 
•  Tipos genéricos 
•  Exceções 
•  Interface gráfica com Swing 
•  Padrões fundamentais de OO 
Bibliografia principal 
•  “Java : como programar”, 6ª Edição, Harvey Deitel 
Metodologia 
•  Aulas teóricas 
•  Listas de exercícios 
•  Aulas de laboratório 
•  Desenvolvimento de projeto OO com uso de padrões 
–  IDE adotada será Eclipse (www.eclipse.org) 
Site da disciplina 
•  Contém estas e outras informações 
 
https://sites.google.com/site/ipii20131/

Outros materiais