INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Documentos relacionados
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Introdução ao Java. Prof. Herbert Rausch Fernandes

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1013 MODELAGEM DE SOFTWARE

Requisitos de sistemas

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Programação Orientada a Objeto: Introdução. Professor: Adonai Estrela Medrado Data: 22/07/2008

Linguagem de Programação I Apresentação da Disciplina

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013

INF1013 MODELAGEM DE SOFTWARE

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

1 Introdução e Conceitos básicos

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

A figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo.

Paradigmas de Linguagens de Programação. Tipos de Dados Abstratos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

AULA 02 DADOS PRIMITIVOS E EXERCÍCIOS

Estrutura de Dados Funções e Procedimentos

Conceitos de Programação Orientada a Objetos

Introdução à Orientação a Objetos em Java

Programação Orientada a Objetos

Instituto de Informática Estrutura de Dados II

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Capítulo 2. Orientação a Objetos

Relacionamentos entre objetos

Fundamentos de Programação

Orientação a Objetos e Java

POO29004 Programação Orientada a Objetos

Programação Orientada a Objetos

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Aula 04 Introdução à Programação Orientada à Objetos

INF1012 MODELAGEM DE DADOS. Departamento de Informática PUC-Rio. Ivan Mathias Filho A Abordagem Entidade-Relacionamento

Programação Orientada a Objetos Relacionamentos entre classes

Programação Orientada a Objetos em Python

Programação Orientada a Objetos

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

Computação II Orientação a Objetos

Programação Orientada a Objetos

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Encapsulamento e Modularização

Programação Java. - Classes, Objetos, Atributos e Métodos - Marco Fagundes Marco Fagundes -

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Programação Orientada a Objetos

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

Programação Orientada a Objetos

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Classe Abstrata e Interface

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Computação II Orientação a Objetos

LINGUAGEM DE PROGRAMAÇÃO

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Aula 08 Relacionamento entre Objetos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Informática. Professor: Diego Oliveira. Conteúdo 04: Orientação a Objetos

C O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O

Encapsulamento. Introdução à Programação André L. Santos

Tipos Abstratos de Dados TADs

Levantamento de Classes

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

INF1012 MODELAGEM DE DADOS. Departamento de Informática PUC-Rio. Ivan Mathias Filho A Abordagem Entidade-Relacionamento

Linguagem de Programação II Implementação

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

COMPORTAMENTOS - Observações

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)

Aula II Orientação a Objetos. Pedro Baesse Alves Pereira

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

1 Analise de Sistemas

Linguagem de Programação II Herança

Instituto Federal de Educação, Ciência e Tecnologia do Ceará IFCE Programa Educacional Brasileiro de Desenvolvimento para ios BEPiD PROVA OBJETIVA

Programação Orientada a Objetos

Namespaces, Classes e Métodos.

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Análise de Programação

Palavras Reservadas da Linguagem Java

No final deste curso, saberás criar programas através da linguagem de programação Java.

Interfaces e Classes Abstratas

Programação Orientada a Objetos

Modelo do Mundo Real. Abstração. Interpretação

Capítulo 6: Linguagens de Programação

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Introdução à Programação. Conceitos Básicos de Orientação a Objetos

Linguagem de Programação IV Introdução

INF1012 MODELAGEM DE DADOS. Departamento de Informática PUC-Rio. Ivan Mathias Filho A Abordagem Entidade-Relacionamento

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

Curso Profissional de Gestão e Programação de Sistemas Informáticos

Transcrição:

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 Conceitos de Orientação a Objetos Classe Objeto Mensagem Orientação a Objetos em Java 2 1

Programa Capítulo 1 Conceitos de Orientação a Objetos Classe Objeto Mensagem Orientação a Objetos em Java 3 Extensibilidade em Dados Todas as linguagens de programação atuais disponibilizam, além dos tipos primitivos, tais como int, double, char, boolean e etc, construtores de novos tipos. typedef struct vetor double x,y; Vet; No exemplo acima, o tipo Vet foi criado, a partir do tipo primitivo double, para representar vetores no R 2. 4 2

Extensibilidade em Operações Além das operações básicas sobre os tipos primitivos, as linguagens de programação, em geral, permitem a construção de novas operações através do uso de funções e procedimentos. double prodinterno(vet v1,vet v2) return v1.x*v2.x+v1.y*v2.y; No exemplo acima, a função prodinterno permite calcular o produto interno de dois vetores do R 2. 5 Problema Linguagens como C e Pascal permitem operar livremente sobre os elementos básicos de tipos não-primitivos; Isso pode conduzir a situações em que o valor de uma variável seja incompatível com o seu tipo. typedef struct data int dia,mes,ano; Data; int main(void) Data dtnasc; dtnasc.mes=100; // Inconsistente!!! 6 3

Solução A solução para esse problema seria um mecanismo sintático que não permitisse o livre acesso aos elementos básicos dos tipos não-primitivos; Desse modo, a manipulação de dados baseados em tipos não-primitivos só poderia ser feita através de operações definidas especialmente para os novos tipos; Uma resposta para esse problema pode ser encontrada no conceito matemático de Tipo Abstrato de Dados (ADT); Tal mecanismo é conhecido como Classe. Uma classe é um tipo abstrato de dados possivelmente parcialmente implementado. Bertrand Meyer Object Oriented Software Construction 7 Classe - Definição Outra definição, mais operacional, de classe é: Uma classe é a descrição de um conjunto de objetos que possuem a mesma semântica e compartilham as mesmas propriedades (atributos, operações e relacionamentos). Grady Booch UML User Guide Nessa definição uma classe é vista como um conjunto de objetos; Um objeto é uma instância de alguma classe. 8 4

Classe - Ilustração Classe Objetos 9 Objeto Um objeto é uma entidade com fronteiras bem definidas e que possui identidade, estado e comportamento próprios; O estado de um objeto é definido pelos valores dos seus atributos, e o seu comportamento pela suas operações. Objeto Genérico Objeto Bicicleta 10 5

Objetos Nesse modelo de objeto, os atributos são mantidos no seu centro, ou núcleo. As operações (métodos) rodeiam e escondem o núcleo de um objeto dos demais objetos existentes em um programa. O empacotamento da estrutura interna de um objeto é denominado encapsulamento. Tal modelo (um núcleo contendo atributos protegidos por operações) é considerado por muitos como a representação ideal de um objeto de software. 11 Mensagens Objetos interagem através de mensagens; Quando um objeto A deseja que um objeto B execute uma de suas operações, A envia uma mensagem para B; As informações passadas através de uma mensagem são os parâmetros da operação a ser executada. 12 6

Programa Capítulo 1 Conceitos de Orientação a Objetos Classe Objeto Mensagem Orientação a Objetos em Java 13 Classe em Java Exemplo 14 7

Classes em Java Estrutura Básica Uma classe Java possui a seguinte estrutura básica: <modificadores> class <nome> // variáveis <lista_modificadores> <tipo> <nome> [=<valor_inicial>;] // métodos <lista_modificadores> <tipo> <nome>([<lista_parametros>]) <comandos> 15 Classes em Java Exemplo public class Vetor // variaveis private double x=3.0; private double y=4.0; // métodos public double modulo() double a; a=math.sqrt(math.pow(x,2.0)+math.pow(y,2.0)); return a; 16 8

Modificador de Acesso public Na definição de uma classe o modificador public declara que a mesma pode ser usada por qualquer outra classe. A ausência do modificador public faz com que uma classe só possa ser usada por classes que pertençam ao mesmo pacote que a classe em questão; Na definição de um atributo, o modificador public declara que esse atributo pode ser livremente acessado por métodos externos à classe na qual ele foi definido. 17 Modificador de Acesso private Para não permitir a quebra do encapsulamento, devemos usar o modificador de acesso private na definição de atributos; Um atributo privado só pode ser acessado por métodos definidos na própria classe a qual o atributo pertence. Os métodos de uma classe são normalmente definidos com o modificador de acesso public. 18 9