Programação Orientada a Objetos



Documentos relacionados
Orientação a Objetos com Java

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Linguagem Java. Arquitetura e Ambiente de Desenvolvimento. Arquitetura e Ambiente de Desenvolvimento Prof. Anderson Augustinho Uniandrade

Programação Orientada a Objetos (DPADF 0063)

Programação de Computadores - I. Profª Beatriz Profº Israel

Desenvolvimento Web TCC Turma A-1

PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA*

Introdução à Linguagem Java

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Programação de Computadores II TCC Turma A-1

FBV - Linguagem de Programação II. Um pouco sobre Java

PROGRAMAÇÃO JAVA. Parte 1

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Introdução à Linguagem Java. Departamento de Informática Prof. Anselmo C. de Paiva

Faculdade Latino Americana Programação Orientada a Objetos II - 4º Período Ciências da Computação. REVISÃO POO Parte 01

Programação Orientada a Objetos

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

Sistemas Operacionais

Java para Desktop. Introdução à Plataforma Java JSE

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

A Linguagem Java. Apresentação. Java. A Linguagem da Internet

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Linguagem de Programação Introdução a Linguagem Java

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática

CURSO DE PROGRAMAÇÃO EM JAVA

Programação online em Java

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Sistemas Distribuídos

Capítulo 8. Software de Sistema

Aspectos de Segurança em Programação com Java

Prof. M.Sc. Fábio Procópio Prof. M.Sc. João Maria Criação: Fev/2010

Java. Marcio de Carvalho Victorino

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

1. Apresentação Objetivos

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Linguagens de. Aula 02. Profa Cristiane Koehler

Orientação a Objetos e a Linguagem Java

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Um pouco do Java. Prof. Eduardo

A linguagem Java foi projetada tendo em vista os seguintes objetivos:

Programação Orientada a Objetos

PROGRAMA DE DISCIPLINA

Figura 01 Kernel de um Sistema Operacional

Sintaxe Básica de Java Parte 1

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Programação Orientada a Objetos

Organização e Arquitetura de Computadores I. de Computadores

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

AULA 1 INTRODUÇÃO AO JAVA

Definições. Parte 02. Java Conceitos e. Desenvolvimento de Programação Orientada a Objetos. Prof. Pedro Neto

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UFRPE Prof. Gustavo Callou

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Adriano Reine Bueno Rafael Barros Silva

Prof. Esp. Adriano Carvalho

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Paradigmas de Linguagens de Programação

Visão Geral da Plataforma Java. Robinson Castilho - JUGMS castilho@bacarin.com.br

Professor: Douglas Sousa Cursos de Computação

Sistemas Operacionais

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

UFG - Instituto de Informática

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

SISTEMAS OPERACIONAIS

Fonte (livro-texto): Conceitos de Linguagens de Programação, 4ed. Robert W. Sebesta

Qualidade de Software

Linguagem de Programação I

Tutorial de instalação do Java 7 no Windows 7.

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UFG - Instituto de Informática

2 Orientação a objetos na prática

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Laboratório I Aula 2

1.6. Tratamento de Exceções

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

FundamentosemInformática

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

SISTEMA GERENCIADOR DE BANCO DE DADOS

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Programação por Objectos. Java

Transcrição:

Programação Orientada a Objetos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira

Introdução ao Paradigma OO Prof. Márcio Bueno poonoite@marciobueno.com

Conceito Paradigma que usa ao longo do processo de desenvolvimento de software, o conceito de Objetos. Sistemas OO são estruturados como um conjunto de objetos inter-relacionados que juntos atendem os requisitos do sistema. 3/25

Conceito (2) Programação imperativa versus Programação OO A programação imperativa primeiro focaliza as funções que um sistema vai oferecer ao usuário; A programação orientada a objetos dá prioridade a definição dos objetos (dados) a serem manipulados pelo sistema e em seguida as atividades que um dado objeto poderá realizar. 4/25

Vantagens e Desvantagens Vantagens Modelagem usando conceitos do mundo real; Transição suave entre etapas de desenvolvimento devido ao uso da abstração de objetos; Grande suporte de ferramentas, linguagens e tecnologias, métodos e técnicas. Desvantagens Uso correto requer experiência e tempo inicial para aprendizado. 5/25

Princípios Básicos da POO Abstração Encapsulamento Modularidade Herança 6/25

Abstração Criação de um modelo para representação da realidade Representação apenas das características essenciais do ponto de vista do desenvolvimento do sistema Concentração em idéias gerais ( o que ), não em detalhes ( como ) Cachorro nome idade raca Galinha idade Imovel precoaluguel precocompra quantidadequartos quantidadesuites tamanho 7/25

Encapsulamento Capacidade de esconder detalhes específicos de uma dada entidade Elimina dependência de implementação, escondendo-a de quem usa o objeto no sistema 8/25

Modularidade Decomposição de alguma entidade grande e complexa em entidades menores Permite decompor um problema complexo em problemas menores e mais simples Sistema grande quebrado em unidades menores Estratégia de dividir para conquistar! Carro Pneu Chassi Motor 9/25

Modularidade (2) O método de construção de um software é modular quando ele ajuda ao projetista a produzir um sistema de software feito de elementos autônomos conectados por uma coerência e tenha uma estrutura simples 10/25

Herança Hierarquização de abstrações Mecanismos para permitir reuso e extensibilidade Relação do tipo é um ou relação de herança Animal Pessoa Mamifero Reptil Anfibio PessoaFisica PessoaJuridica Cachorro Gato Jacare Sapo 11/25

Características da Linguagem Java Prof. Márcio Bueno poonoite@marciobueno.com

Características da Linguagem Java Concisa e Simples Orientada a Objetos Linguagem de programação para a Internet Robusta Segura Neutra em relação a Arquitetura Portável Interpretada Concorrente Tolerante à Falhas Coleta automática de lixo Compilada 13

Características da Linguagem Java Concisa e simples Sintaxe parecida com C o que facilita o entendimento por uma grande parte de programadores Não suporta manipulação de ponteiros Não utiliza alocação explícita de memória Não tem herança múltipla Orientada a objetos Suporta os principais conceitos de orientação a objetos Favorece a reusabilidade e extensibilidade 14/25

Características da Linguagem Java (2) Linguagem de programação para a Internet Poderosos recursos de rede; Biblioteca extensa de rotinas para lidar com protocolos TCP/IP, como HTTP e FTP; Acesso a objetos na Internet através de URLs; Mecanismos de invocação de métodos remotos. Robusta Fortemente tipada Aumenta a confiabilidade dos programas Verificação em tempo de compilação e execução Reduz imprevistos em tempo de execução Ex.: Atributos são automaticamente inicializados. 15/25

Características da Linguagem Java (3) Segura Eliminação dos principais problemas de segurança como restrições de acesso a arquivos Criptografia / Assinatura Digital Neutra em relação à Arquitetura Compilador gera formato de arquivo neutro em relação à arquitetura Código compilado é executável em muitos processadores, dada a presença do sistema Java de tempo de execução Geração de bytecodes que são posteriormente interpretados em qualquer máquina e convertidos para código nativo de máquina 16/25

Características da Linguagem Java (3) Portável Completamente especificada Não contém aspectos dependentes da implementação: o tamanho dos tipos é fixo para qualquer implementação. Write Once, Run Anywhere (SUN) 17/25

Características da Linguagem Java (3) Interpretada Interpretador Java pode executar bytecodes Java diretamente em qualquer máquina na qual o interpretador tenha sido escrito. Facilita distribuição de software (classes são baixadas pela rede). 18/25

Características da Linguagem Java (3) Concorrente Suporta aplicações concorrentes: multithreads Uma aplicação pode ter diversas atividades simultaneamente (um Web browser pode estar emitindo o som de um clip, enquanto fazendo scrolling de uma página e ainda carregando uma imagem em background ) Importante para aplicações gráficas Melhor tempo de resposta para aplicações interativas e/ou de tempo-real. 19/25

Características da Linguagem Java (4) Tolerância a falhas através de exceções Exceção - evento que ocorre durante a execução de um programa e que quebra o fluxo normal de execução das instruções Java suporta o lançamento e a captura de exceções nas aplicações Novas exceções podem ser criadas para tratar aspectos específicos Padronização e legibilidade de código. 20/25

Características da Linguagem Java (4) Coleta automática de lixo Evita erros de uso de memória Compilada Alto Desempenho Utilizando compiladores JIT (Just-In-Time), bytecodes podem ser traduzidos em tempo de execução para código de máquina. Extenso conjunto de bibliotecas de classes já desenvolvidas e incorporadas 21/25

Tecnologia Java Uma coleção de APIs (Application Programming Interfaces) Um ambiente de desenvolvimento J2SDK Java 2 Software Development Kit J2SE Standard Edition J2EE Enterprise Edition J2ME Micro Edition. Coleção de ferramentas de linha de comando para, entre outras tarefas, compilar e executar aplicações Java. 22/25

Tecnologia Java Um ambiente de execução disponível para vários sistemas operacionais e browsers. JRE Java Runtime Environment Tudo o que é necessário para executar aplicações Java. Compilação e execução Um programa escrito usando a Linguagem Java é traduzido em bytecode através do processo de compilação e armazenado em um arquivo *.class chamado de Classe Java Bytecode é o código de máquina que executa em qualquer S.O. através da Máquina Virtual Java (JVM) 23/25

Compilação e Execução Código Java: HelloWorld.java public class HelloWorld { public static void main(string[] args) { System.out.println("Hello world!"); } } compilação: javac Bytecode Java: HelloWorld.class F4 D9 00 03 0A B2 FE FF FF 09 02 01 01 2E 2F 24/25

Compilação e Execução Bytecode Java: HelloWorld.class F4 D9 00 03 0A B2 FE FF FF 09 02 01 01 2E 2F execução: java JVM GC Interpretador Compilador JIT SO Hardware 25/25