Baixe o app para aproveitar ainda mais
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/
Compartilhar