Computação II Orientação a Objetos



Documentos relacionados
Computação II Orientação a Objetos

Implementando uma Classe e Criando Objetos a partir dela

Desenvolvimento OO com Java Orientação a objetos básica

Linguagem de Programação I. Orientação a Objetos em Java

Programação Orientada a Objeto

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Algoritmos e Programação

Conceitos básicos da linguagem C

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

JSP - ORIENTADO A OBJETOS

Programação: Tipos, Variáveis e Expressões

Introdução a Java. Hélder Nunes

ALGORITMOS MEMÓRIA, VARIÁVEIS E CONSTANTES, OPERADORES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Introdução a Computação

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Algoritmos e Programação II. Sobrecarga

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis.

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

3 Classes e instanciação de objectos (em Java)

INTRODUÇÃO À LINGUAGEM C++

Orientação a Objetos

Linguagem de Programação I

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Programação para web JavaScript

O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Tipo Abstrato de Dados

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagem de Programação

Componentes da linguagem C++

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

Estrutura de Dados Básica

Programação Orientada a Objetos C++

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

Curso Java Starter. 1

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Java Como Programar, 8/E

Resumo da última aula. Compiladores. Tipos. Regras semânticas. Expressões de tipos. Análise Semântica e checagem de tipos.

Análise e Projeto Orientados por Objetos

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

9 Comandos condicionais

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Prof. Jhonatan Fernando

Esta apresentação ensinará os conceitos de Orientação a Objetos com C++, do mais básico para o mais avançado. É suposto que o aluno já tenha

Introdução à Programação

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus

Noções sobre Objetos e Classes

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

Linguagens de Programação

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Computação II Orientação a Objetos

Vetores. Professor Dr Francisco Isidro Massettto

INF 1007 Programação II

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

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

Programando em C++ Histórico da Linguagem C

Linguagem de Programação C

2. Constantes e Variáveis

Algoritmos e Técnicas de

UNIVERSIDADE ESTADUAL PAULISTA

Neste artigo estudaremos os conceitos relacionados às matrizes unidimensionais (vetores) e multidimensionais.

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

Orientação a Objetos. Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version LibreOffice Productivity Suite

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

POO Programação Orientada a Objetos. Classes em Java

Tabela ASCII de caracteres de controle

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

Convertendo Algoritmos para a Linguagem C

Testando e Comparando Valores

Análise de Programação

Programação Orientada a Objetos (DPADF 0063)

1 Funções básicas de implementação de arquivos

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

JavaScript (ou JScript)

Introdução à Programação com Classes em C++

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Unidade IV: Ponteiros, Referências e Arrays

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Aula de JavaScript 05/03/10

Princípios de programação em Linguagem C++

Variáveis e Comandos de Atribuição

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

2 Ferramentas Utilizadas

Conversão de Tipos e Arrays

Aula 1 Tipo Abstrato de Dados

Transcrição:

Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java

Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos, e sua aplicação em programas reais A linguagem Java é só um veículo para isso Cuidado: programar em Java não é necessariamente programar de maneira OO

Java não-oo Vamos nos concentrar nas partes OO de Java, mas ela também tem tudo que vocês já estão acostumados com C: Variáveis locais e globais, funções, números, entrada e saída no console... Até a sintaxe é muito parecida Programas C simples podem ser reescritos em Java com pequenas alterações, mas não são exemplos de programação OO!

De C para Java com sabor de C #include <stdio.h> void geraconjunto(double vetor[], int tamanho, double inicial) { for (int i = 0 ; i < tamanho; i++) { vetor[i] = inicial; inicial *= 2; } } int main(int argc, char *argv[]) { double vetor[5], num; int i; puts("este programa gera um vetor de numeros inteiros.\n"); puts("entre com o numero inicial do conjunto. "); scanf("%lf", &num); /* Geracao do conjunto */ geraconjunto(vetor, 5, num); /* Impressao do conjunto */ for (i = 0; i < 5; i++) printf("elemento %d = %lf\n", i, vetor[i]); } return 0;

História da OO Sketchpad (1963) Editor gráfico pioneiro, introduz o conceito de objeto Desenhos e diagramas podiam ser agrupados e clonados: um desenho mestre podia ter várias instâncias, e mudanças no mestre eram refletidas nas instâncias

História da OO Simula (1962-68) Família de linguagens de programação para simulação de eventos discretos Simula 67 introduz os conceitos de classes, métodos virtuais, herança e subtipagem O modelo orientado a objetos é bastante natural para simulações, onde pode-se modelar cada elemento da simulação como um objeto responsável pelo seu próprio comportamento Jogos também são simulações!

História da OO Smalltalk (1972-80) Primeira linguagem OO pura Qualquer coisa em Smalltalk é um objeto: uma instância de uma classe que responde a mensagens (métodos virtuais) Inclusive coisas como as próprias classes, o contexto onde ficam armazenadas as variáveis, as partes do ambiente de programação...

História da OO Java (1995-?) Criada originalmente para ser embutida em receptores de TV a cabo Depois embutida em páginas web, como applets, mas ganhou maior uso como linguagem usada em sistemas web no lado do servidor, e em algumas aplicações desktop Sintaxe inspirada em C, mas o modelo de execução está mais próximo de Simula e Smalltalk

Dados primitivos Objetos concretos são compostos de estado e comportamento O estado pode ser composto por outros objetos, que por sua vez têm seu próprio estado, composto por outros objetos, que têm seu próprio estado, que... Alguma hora batemos nos átomos da linguagem, os tipos primitivos Manipulamos os tipos primitivos usando os operadores pré-definidos de Java; eles não possuem métodos

Inteiros Sinalizados com o tipo int Possuem sinal e 32 bits de precisão, então vão de ~-2.000.000.000 a ~2.000.000.000 Operações como em C: +, -, *, /, &, Exemplos: 2, 5, 42, 1000000, -1

Reais Sinalizados pelo tipo double Ponto flutuante com 64 bits, o que dá 52 bits de precisão (a mantissa) Também possui as mesmas operações que seus similares em C, e os mesmos problemas com erros e incapacidade de representar exatamente diversos números Exemplos: 1.23, 2.56e7, 3e-2, 0.0

Booleanos Sinalizados pelo tipo boolean Dois valores: verdadeiro (true) e falso (false) Operações como os booleanos de C: && (e), (ou),! (negação) Java também tem o operador ternário?:

Cadeias (strings) Sinalizados pelo tipo String Não são exatamente tão primitivos como os anteriores, pois já são objetos que também possuem métodos Mas têm uma operação pré-definida: concatenação com + Concatenação cria uma nova string, não muda seus operandos Mesmos códigos de escape que em C mas, ao contrário de C, strings não são vetores de caracteres, e não podemos acessar (ou modificar) seus caracteres com []

Vetores Pode-se construir um vetor a partir de qualquer tipo (inclusive vetores de objetos complexos) int[], double[], int[][], String[],... Um vetor é criado com new: new int[5] Acessados com [] como em C Não existe free: se um vetor não é mais alcançável ele alguma hora é liberado

Classes Uma das unidades básicas de um programa Java No nível mais simples é como uma struct de C, agrupando diversos valores em uma mesma entidade, e possui campos Campos de uma classe podem ter qualquer tipo, inclusive outras classes Instâncias de uma classe também são criadas com new

Construtor Podemos inicializar os campos de uma nova instância de modo parecido do que fazemos em C, mas esse não é o estilo OO apropriado A inicialização dos campos de um objeto é tarefa do seu construtor A declaração de um construtor se parece com a declaração de uma função em C, mas um construtor sempre tem o mesmo nome da classe Podemos passar argumentos para a classe quando usamos new, e esses argumentos são os parâmetros do construtor Dentro do construtor, a variável especial this aponta para o objeto recémcriado que deve ser inicializado

Sobrecarga de construtores Uma classe pode querer inicializar objetos de várias maneiras Para isso, podemos definir vários construtores, contanto que as assinaturas deles sejam diferentes (número e/ou tipos dos parâmetros) Essa sobrecarga é bastante comum nas bibliotecas Java