Figura 3.1 Modelo da programação estruturada

Tamanho: px
Começar a partir da página:

Download "Figura 3.1 Modelo da programação estruturada"

Transcrição

1 3 - Conceitos de Orientação aos Objectos Hoje em dia, praticamente todo o software está a ser escrito numa ou noutra linguagem orientada aos objectos. As linguagens estruturadas como o C e o Pascal tiveram muito sucesso nos anos 70 e 80. Desde os anos 90 que a programação orientada aos objectos OOP (Object-Oriented Programming) ganhou especial relevância, dominando a indústria informática. Os exemplos mais familiares de linguagens orientadas aos objectos são o C++, o Java, o Delphi e o SmallTalk. Porquê esta mudança? As linguagens estruturadas têm um modelo de programação simples. Tipicamente, o programador pensa numa ou mais estruturas de dados que lhe modele o problema e, em seguida, desenvolve um conjunto de operações (funções) que actuam sobre essas estruturas de dados (figura 3.1). Figura 3.1 Modelo da programação estruturada Embora este modelo de desenvolvimento funcione bem para pequenos programas, existem sérios problemas quando a dimensão dos sistemas começa a aumentar. FCA - Editora de Informática 45

2 C# 2.0 O problema é que uma vez que todas as operações têm acesso a todos os dados, uma pequena modificação num dos módulos pode ter implicações em todo o programa. À medida que os programas crescem, torna-se muito difícil manter o código. É simples de constatar: mudar o nome de uma variável numa estrutura de dados pode implicar mudar o seu nome em milhares de linhas de código onde esta é utilizada. Vejamos um outro exemplo: se uma função pode alterar o valor de uma variável global, sem que o resto das funções tenham consciência ou esperem essa alteração, isso poderá levar a graves erros de funcionamento. Estes problemas são muito difíceis de retirar do código. Costuma-se dizer que neste tipo de arquitectura existe um elevado acoplamento entre módulos. A programação orientada aos objectos tenta aliviar alguns destes problemas. A ideia principal é diminuir o acoplamento entre os diversos módulos. Para isso, cada uma das estruturas de dados é encapsulada dentro de um objecto, que também possui funções que actuam sobre essa estrutura de dados. Os dados não são directamente visíveis para o exterior do objecto. Apenas a interface, isto é, as operações disponibilizadas no objecto, é visível. Em OOP o programador pensa em termos de objectos que modelam o seu problema e nas relações entre eles. As estruturas de dados específicas e a implementação das operações sobre as mesmas devem ser apenas detalhes de implementação. A figura 3.2 ilustra esta ideia. Figura 3.2 Modelo da programação orientada aos objectos Uma questão bastante complexa é a forma como se consegue chegar a um conjunto de objectos e relações que modelem o problema correctamente. O objectivo deste livro não é ensinar o leitor todo este processo. O tema é demasiado extenso e complexo para o discutirmos em profundidade aqui. Caso o leitor não tenha experiência em design orientado ao objecto, recomendamos o livro de Grady Booch Object-Oriented Analysis and Design with Applications. Não é realmente possível aprender a programar bem no paradigma de orientação aos objectos, lendo simplesmente um livro que ensina a sintaxe usada numa linguagem. Embora isso seja mais ou menos possível numa linguagem estruturada, os conceitos envolvidos em orientação aos objectos são muito mais elaborados. É usual dizer-se que para aprender OOP começa-se por ler um livro que 46 FCA - Editora de Informática

3 CONCEITOS DE ORIENTAÇÃO AOS OBJECTOS ensine a sintaxe de uma linguagem OOP, em seguida lê-se um livro sobre design OOP e finalmente, só a experiência pode ajudar o programador. No entanto, antes de começarmos a discutir a sintaxe do C# em detalhe, vamos discutir um pouco dos principais conceitos associados à OOP. 3.1 Conceitos básicos A programação orientada aos objectos assenta em três conceitos básicos fundamentais: encapsulamento de informação, composição/herança e polimorfismo. Iremos examinar cada um deles. No entanto, caso o leitor não consiga perceber todos os conceitos, não se preocupe. Mais à frente iremos discutir em detalhe a sintaxe utilizada. Nesta altura o que importa é ficar com as noções básicas sobre estes três pilares fundamentais. Todos os conceitos aqui abordados serão largamente examinados em capítulos posteriores. 3.2 Encapsulamento de informação Tal como foi dito antes, um dos pontos fulcrais da OOP é o esconder as estruturas de dados dentro de certas entidades (objectos), aos quais são associadas funções (métodos) que manipulam essas estruturas de dados. As estruturas de dados não devem ser visíveis para outros objectos, apenas a sua interface (isto é, os seus métodos ou funções). Como é que se começa este processo? O programador começa por definir classes. Uma classe representa um tipo abstracto de dados famílias de entidades. Por exemplo, um empregado de uma empresa poderá corresponder a uma classe Empregado: class Empregado private string Nome; // Nome da pessoa private int Idade; // Idade da pessoa // Construtor: inicializa os elementos internos de um objecto public Empregado(string nomedapessoa, int idadedapessoa) Nome = nomedapessoa; Idade = idadedapessoa; // Mostra a informação sobre a pessoa public void MostraInformacao() Console.WriteLine("0 tem 1 anos", Nome, Idade); Um Empregado tem internamente armazenado um nome e uma idade. É de notar que antes da declaração das variáveis Nome e Idade encontra-se a palavra-chave private. O que isto quer dizer é que apenas esta classe pode utilizar estas variáveis. Nenhuma outra classe pode aceder às variáveis. A informação é escondida dentro da sua classe. FCA - Editora de Informática 47

4 C# 2.0 Esta classe possui também um construtor Empregado(string nomedapessoa, int idadedapessoa) e um método MostraInformacao(). Ambos são public. Sempre que uma entidade é declarada como public, qualquer outra lhe pode aceder. Sempre que uma entidade é declarada como private, apenas os elementos pertencentes à mesma classe lhe têm acesso. Para que serve o construtor? O construtor permite criar uma nova instância da classe. Isto é, permite criar um novo objecto dessa classe. Por exemplo: Empregado chefeprojecto = new Empregado("Luís Silva", 34); chefeprojecto.mostrainformacao(); faz com que seja criada uma nova instância da classe (um objecto), que irá guardar o nome e a idade do empregado no seu interior. Ao chamar chefeprojecto.mostrainformação(), o método é invocado naquele objecto em particular o empregado Luís Silva. Em qualquer altura podemos criar diversos objectos da mesma classe, que estes possuem identidades distintas: Empregado engenheiro1 = new Empregado("Magda Dionísio", 25); Empregado engenheiro2 = new Empregado("Cecília Cardoso", 25); engenheiro1.mostrainformacao(); engenheiro2.mostrainformacao(); Ao executar este segmento de código, surgirá no ecrã: Magda Dionísio tem 25 anos Cecília Cardoso tem 25 anos É de notar que não é válido escrever expressões como: Console.WriteLine("0", engenheiro1.nome); Uma vez que Nome é declarado como private, apenas elementos da sua própria classe lhe conseguirão aceder. É certo que é possível declarar todos os elementos de uma classe como sendo públicos, mas aí estão a perder-se todas as vantagens de utilizar uma linguagem orientada aos objectos, pois está-se a aumentar o acoplamento total da aplicação. Uma outra questão importante é o operador new. Este operador é utilizado sempre que se está a criar uma instância de uma classe, isto é, um objecto. Este operador trata de encontrar e reservar a memória necessária para conter o objecto e de chamar o construtor do mesmo, finalmente retornando uma referência para o objecto criado. 3.3 Composição e herança Quando um programador está a desenhar uma aplicação orientada aos objectos, começa por tentar encontrar classes. Cada classe tem uma determinada responsabilidade e representa uma entidade concreta do mundo real. Uma classe pode ter no seu interior objectos de outras classes ou relações para estes. Por exemplo, podemos ter na classe Empregado um objecto do tipo Casa e um objecto do tipo Telemovel (figura 3.3). Por sua 48 FCA - Editora de Informática

5 CONCEITOS DE ORIENTAÇÃO AOS OBJECTOS vez, cada uma destas classes irá possuir os seus dados e métodos. A este tipo de relação chama-se composição, sendo a relação mais típica do design orientado aos objectos. A linha com um quadrado numa das pontas indica uma relação de composição, estando o losango do lado da classe que contém uma referência para a outra. Figura 3.3 Relação de composição No entanto, existe um outro tipo de relação bastante comum e muito importante, é a relação de herança. Consideremos ainda o exemplo da classe Empregado. Imaginemos agora que numa aplicação que utilize esta classe surge uma nova classe que representa o patrão da empresa. Isto é, existe uma classe Patrao. Tal como um empregado normal, o patrão possui um nome e uma idade. No entanto, possui ainda uma característica que é ter um certo número de acções da empresa. Uma possível solução para este problema seria criar uma nova classe que tivesse como campos o nome, a idade e o número de acções que o patrão possui. No entanto, iríamos também de ter de duplicar os métodos existentes, para além dos dados já presentes em Empregado. Uma outra possível solução seria utilizar composição e colocar dentro da classe Patrao uma instância de Empregado. No entanto, novamente aqui temos o problema de ter de duplicar os métodos de Empregado na classe Patrao. Quando surge este tipo de problemas, em que uma classe é uma especialização de uma outra (Patrao é um caso especial de Empregado: o patrão é um empregado da empresa), estamos na presença de uma relação de herança. Isto é, existe uma classe que possui todos os elementos que outra possui, mas também possui mais alguns, sejam estes métodos ou dados. No nosso exemplo particular, dizemos que Patrao é uma classe derivada (ou herdada) da classe Empregado (figura 3.4). A seta indica a relação de herança, indo da classe derivada para a classe base. FCA - Editora de Informática 49

6 C# 2.0 Figura 3.4 Relação de herança Também é vulgar chamar à classe Empregado classe base, uma vez que está a ser utilizada como base de uma outra classe que se está a definir. Vejamos como é representada esta relação: class Patrao : Empregado private int NumeroAccoes; // Número de acções da empresa public Patrao(string nomedopatrao, int idadedopatrao, int naccoes) : base(nomedopatrao, idadedopatrao) NumeroAccoes = naccoes; // Mostra o número de acções do patrão public void MostraAccoes() Console.WriteLine("O número de acções é: 0", NumeroAccoes); A primeira mudança aparente é na declaração da classe: class Patrao : Empregado... o que isto quer dizer é que a classe Patrao deriva de Empregado, tendo todas as variáveis e métodos presentes na classe base (Empregado). Note-se também a modificação no construtor: public Patrao(string nomedopatrao, int idadedopatrao, int naccoes) : base(nomedopatrao, idadedopatrao)... Como a classe é diferente, o construtor também tem de ser diferente. Após a declaração do construtor, é indicado após os dois pontos a forma como a classe base tem de ser construída. Isto é, antes de um patrão ser um patrão, tem de ser um empregado. Assim, a palavra-chave base representa o construtor da classe acima (Empregado). Neste caso é 50 FCA - Editora de Informática

7 CONCEITOS DE ORIENTAÇÃO AOS OBJECTOS indicado que o objecto base Empregado deve ser inicializado com as variáveis nomedopatrao e idadedopatrao. Finalmente, no corpo do construtor propriamente dito, é feita a inicialização da variável que faltava (NumeroAccoes). Um ponto extremamente relevante é que um objecto Patrao também é um objecto Empregado, possuindo todos os métodos que este tem. Assim, o seguinte código é perfeitamente válido: Patrao donodaempresa = new Patrao("Manuel Marques", 61, ); donodaempresa.mostrainformacao(); donodaempresa.mostraaccoes(); É de salientar que na maioria das aplicações não existem muitas relações de herança. As relações de herança são extremamente úteis quanto se está a desenvolver bibliotecas para serem utilizadas (ou reutilizadas) por outros. Um erro muito comum das pessoas que se encontram a aprender OOP pela primeira vez é pensarem que a herança tem de, forçosamente, ser utilizada na solução de todos os problemas. Isso não é verdade. Só se deve utilizar herança em casos em que traga vantagens claras de reutilização ou caso a abstracção seja de facto algo que seja bem implementado em objectos concretos derivados. Figura 3.5 Exemplo de uma hierarquia de classes Uma das regras básicas para determinar se uma relação é de composição ou de herança é perguntar se se deve dizer contém ou é um. Por exemplo: um automóvel contém um motor, logo, deve existir uma relação de composição entre automóvel e motor. Não se pode dizer que um automóvel é um motor. Da mesma forma, pode-se dizer que um automóvel é um veículo. Assim, existe uma relação de herança entre estas duas entidades. Não faz sentido dizer que um veículo contém um automóvel. FCA - Editora de Informática 51

8 C# 2.0 Sempre que o programador decidir ter uma classe base e várias classes derivadas, deverá mover o máximo de funcionalidade para a classe base. Por exemplo, se existirem variáveis com a mesma funcionalidade nas classes derivadas, estas deverão ser substituídas por uma variável comum na classe base. O mesmo acontece com métodos semelhantes. É típico existir uma classe base, da qual derivam várias outras classes. Ao conjunto de classes pertencentes à mesma árvore, chama-se hierarquia de classes. A figura 3.5 ilustra parte de uma hierarquia de classes retirada da documentação da plataforma.net. 3.4 Polimorfismo Uma outra característica fundamental da programação orientada aos objectos é o polimorfismo. Por polimorfismo, entende-se a capacidade de objectos diferentes se comportarem de forma diferente quando lhes é chamado o mesmo método. Vejamos um caso concreto. /* * Programa que ilustra o conceito de polimorfismo. */ using System; // Classe base, comum a todos os empregados class Empregado private string Nome; public Empregado(string nomedapessoa) Nome = nomedapessoa; public void MostraNome() Console.WriteLine("0", Nome); // Método preparado para ser alterado por classes derivadas public virtual void MostraFuncao() Console.WriteLine("Empregado"); // Classe patrao, um caso especial de empregado class Patrao : Empregado public Patrao(string nomedopatrao) : base(nomedopatrao) // Nova implementação da funcionalidade "MostraFuncao" public override void MostraFuncao() Console.WriteLine("Patrao"); 52 FCA - Editora de Informática

9 CONCEITOS DE ORIENTAÇÃO AOS OBJECTOS // O programa principal class Exemplo3_1 static void Main() // Uma pequena tabela dos trabalhadores da empresa Empregado[] trabalhadores = new Empregado[] new Empregado("Zé Maria"), new Empregado("António Carlos"), new Patrao("José António") ; // Mostra o nome e a função de todos os trabalhadores for (int i=0; i<trabalhadores.length; i++) trabalhadores[i].mostranome(); trabalhadores[i].mostrafuncao(); Console.WriteLine(); Listagem 3.1 Programa que ilustra o conceito de polimorfismo (ExemploCap3_1.cs) No caso do programa da listagem 3.1, temos uma classe base Empregado e uma classe derivada Patrao. Existe ainda um método chamado MostraFuncao() que, por omissão, diz que a pessoa é um Empregado. No entanto, as classes derivadas devem poder modificar este método para que reflictam a função da pessoa em questão. Assim, enquanto no caso de um empregado simples o método mostra a palavra Empregado, no caso do patrão deverá mostrar Patrão. Suponhamos que temos o seguinte código: Patrao chefe = new Patrao("Manuel Marques"); chefe.mostranome(); chefe.mostrafuncao(); Empregado emp = chefe; emp.mostrafuncao(); Qual deverá ser o resultado da execução? Obviamente que a linha chefe.mostrafuncao(); levará a que seja escrito Patrão, no entanto, quando se cria uma referência Empregado emp com o valor de chefe e se chama MostraFuncao() sobre esta, o que acontecerá? Em primeiro lugar, a conversão de Patrao em Empregado é possível. É sempre possível converter (ou utilizar) uma classe base em vez da classe derivada. Isso deve-se ao facto de uma relação de herança ser uma relação é um. A classe Patrao possui todos os elementos que a classe Empregado possui. FCA - Editora de Informática 53

10 C# 2.0 Agora vem a parte mais interessante: ao escrever emp.mostrafuncao();, o CLR guarda a verdadeira identidade dos objectos que estão associados a cada referência. Assim, embora estejamos a chamar o método MostraFuncao() através de uma referência Empregado, o sistema sabe que tem de chamar a verdadeira implementação desse método, para o objecto em causa. Neste caso o resultado da execução seria então: Manuel Marques Patrão Patrão A isto chama-se polimorfismo. O sistema descobre automaticamente a verdadeira classe de cada objecto e chama as implementações reais para os objectos em causa. Em C#, sempre que se quiser tirar partido desta funcionalidade, tem de se declarar o método base como sendo virtual (chama-se a isto métodos virtuais). Sempre que numa classe derivada se altera a implementação de um destes métodos, como é o caso da classe Patrao, tem de se marcar esse método com a palavra-chave override. Voltemos agora ao exemplo da listagem 3.1. Na classe principal do programa é criada uma pequena tabela com os trabalhadores da empresa (trabalhadores), onde se encontram dois empregados normais e um patrão. Em seguida, é executado o seguinte ciclo: for (int i=0; i<trabalhadores.length; i++) trabalhadores[i].mostranome(); trabalhadores[i].mostrafuncao(); Console.WriteLine(); Aqui vemos o poder do polimorfismo em acção. Os empregados (quer sejam normais ou patrões) são tratados de forma uniforme, sendo colocados numa tabela. No entanto, ao chamar o método MostraFuncao(), no caso dos empregados normais, é mostrado Empregado. No caso dos patrões é mostrado Patrão. O resultado da execução do programa é o seguinte: Zé Maria Empregado António Carlos Empregado José António Patrão O polimorfismo permite que os objectos mantenham a sua identidade apesar de serem tratados usando classes mais genéricas (isto é, classes mais acima na hierarquia de derivação). Isso é extremamente poderoso. Por exemplo, neste exemplo seria trivial estendê-lo por forma a que houvesse um método de cálculo de salário que no caso dos empregados teria uma certa implementação e no caso dos patrões uma outra. Convém alertar para o facto de que no caso de não se declararem os métodos como virtual ou não se diga que os novos métodos são override, o comportamento do sistema é 54 FCA - Editora de Informática

11 CONCEITOS DE ORIENTAÇÃO AOS OBJECTOS chamar os métodos da classe que está a ser utilizada como referência. Isto é, no pequeno exemplo de chefe, ao fazer emp.mostrafuncao();, caso MostraFuncao() não fosse um método virtual ou a nova implementação não fizesse o override da antiga, a chamada resultaria em Empregado em vez de Patrão. Isto é uma fonte comum de erros, pelo que o programador deve estar atento a esta situação. A reter Conceitos básicos de OOP A programação orientada aos objectos (OOP) baseia-se em três princípios básicos: encapsulamento, composição/herança e polimorfismo. Encapsulamento refere-se ao facto de as estruturas de dados serem entidades privadas de cada classe, devendo ser apenas acedidas por elementos da própria classe. Composição e herança são os tipos de relações que podem existir entre objectos (e classes). Composição corresponde a relações do tipo contém, herança corresponde a relações do tipo é um. Polimorfismo refere-se à capacidade de diferentes objectos se comportarem de forma diferente quando o mesmo método é invocado neles. Isto apesar de ser utilizada uma referência para uma classe base para fazer a chamada. Uma classe representa uma família de objectos, enquanto um objecto representa uma instância dessa família (ex: Empregado é uma classe enquanto a entidade que representa José António é um objecto da classe Empregado). Diferentes instâncias de uma classe têm variáveis diferentes. As instâncias são criadas com o operador new. Ao criar um novo objecto, o construtor da classe é chamado. O construtor tem o mesmo nome que a classe e não tem valor de retorno. Se um elemento de uma classe é declarado private, então é visível apenas para elementos dessa classe. Se um elemento de uma classe é declarado public, então é visível para o exterior da classe. Os dados da classe devem, regra geral, ser privados. Apenas o menor número possível de métodos da classe deve ser público. Uma relação de composição surge quando uma classe tem de conter um objecto de uma outra classe (exemplo: automóvel contém motor ). Uma relação de herança surge quando um objecto também é uma instância de uma outra classe mais geral (exemplo: automóvel é um veículo ). Uma relação de herança indica-se por: class ClasseDerivada : ClasseBase... É sempre possível utilizar uma referência de uma classe mais acima na hierarquia de derivação para um objecto de uma classe derivada dessa. Para existir polimorfismo, os métodos na classe base têm de ser declarados virtual e nas classes derivadas têm de ser declarados override. Ao longo dos próximos capítulos, iremos analisar detalhadamente os pormenores associados à programação orientada aos objectos. FCA - Editora de Informática 55

Conceitos de Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos Conceitos de Programação Orientada a Objetos Tatyana Bitencourt Com as técnicas de orientação a objeto, é possível obter resultados considerados impossíveis pensando de maneira estruturada. Como Java não

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse

Leia mais

Polimorfismo. O que é polimorfismo?

Polimorfismo. O que é polimorfismo? O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus

Leia mais

Linguagens de Programação Aula 12

Linguagens de Programação Aula 12 Linguagens de Programação Aula 12 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Implementando subprogramas 2 Na aula de hoje Suporte para a programação orientada a objetos 3 Roteiro Introdução

Leia mais

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

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural

Leia mais

Linguagem de Programação Introdução a Orientação a Objetos

Linguagem de Programação Introdução a Orientação a Objetos Linguagem de Programação Introdução a Orientação a Objetos Rafael Silva Guimarães Instituto Federal do Espírito Santo Campus Cachoeiro de Itapemirim Definição de Orientação a Objetos. Orientação a Objetos:

Leia mais

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos Programação com Objectos Processamento de Dados I 2. Classes, Atributos e Métodos 1 Classes, Atributos e Métodos Modificadores de acesso (visibilidade) Sobrecarga de métodos (method overloading) Variáveis

Leia mais

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias

Leia mais

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Câmpus Santa Helena Curso: Ciência da Computação Disciplina: Programação Orientada a Objetos AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Tema

Leia mais

9 Classes Abstractas e Interfaces

9 Classes Abstractas e Interfaces 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Professora Sheila Cáceres Polimorfismo Polimorfismo Polimorfismo é a característica única de linguagens orientadas

Leia mais

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

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Professora Sheila Cáceres Variáveis locais Campos são um tipo de variável. Eles: armazenam valores por toda a vida de um objeto; e

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 5: Associações LEEC@IST Java 1/32 Associação revisão Uma associação representa uma referência entre objectos. Numa associação são definidos: Identificador termo descritivo

Leia mais

Conceitos de Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos Conceitos de Programação Orientada a Objetos Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 02 Conceitos de Programação Orientada a Objetos 1 Conceitos Fundamentais Classe; Ocultamento de informação;

Leia mais

Introdução a Programação Orientada a Objetos

Introdução a Programação Orientada a Objetos Introdução a Programação Orientada a Objetos Fernando de Simas, Airton de Souza, Sérgio Roberto Centro de Ciências Tecnológicas da Terra e do Mar Universidade do Vale do Itajaí UNIVALI. 88302-202 Itajaí

Leia mais

Interfaces e Classes Abstratas

Interfaces e Classes Abstratas Interfaces e Classes Abstratas José Gustavo de Souza Paiva Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos abstratos

Leia mais

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

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

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

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

Introdução a orientação a objetos

Introdução a orientação a objetos 2 Introdução a orientação a objetos Introdução 2 Linguagens procedimentais 2 Um pouco de história 2 Idéias básicas da POO 2 Classe, atributo e método 2 Herança 3 Polimorfismo 3 Vantagens e desvantagens

Leia mais

Introdução à Programação Orientada a Objetos. Programação Estruturada vs Programação Orientada a Objetos

Introdução à Programação Orientada a Objetos. Programação Estruturada vs Programação Orientada a Objetos Introdução à Programação Orientada a Objetos O desenvolvimento de software é extremamente amplo. Nesse mercado, existem diversas linguagens de programação, que seguem diferentes paradigmas. Um desses paradigmas

Leia mais

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

Classes o Objetos. Classes, objetos, métodos e variáveis de instância Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento

Leia mais

Aula 9 Herança. Prof. Jefersson Alex dos Santos

Aula 9 Herança. Prof. Jefersson Alex dos Santos Aula 9 Herança Prof. Jefersson Alex dos Santos Roteiro Introdução Conversão de tipo explícita (Cast) Acesso Protegido A classe Object A classe Class Reflexão Recomendações de Projeto Herança Técnica necessária

Leia mais

Modificadores de Acesso e Atributos de Classe

Modificadores de Acesso e Atributos de Classe Modificadores de Acesso e Atributos de Classe 1 Controlando o acesso p Um dos problemas mais simples que temos no nosso sistema de contas é que o método saca permite sacar mesmo que o limite tenha sido

Leia mais

Programação Orientada a Objetos. Encapsulamento

Programação Orientada a Objetos. Encapsulamento Programação Orientada a Objetos Encapsulamento Cristiano Lehrer, M.Sc. Introdução (1/2) Os três pilares da programação orientada a objetos são: Encapsulamento Herança Polimorfismo Encapsulamento é a característica

Leia mais

Notas de Aula 04: Herança e polimorfismo.

Notas de Aula 04: Herança e polimorfismo. Notas de Aula 04: Herança e polimorfismo. Objetivos da aula: Introduzir o conceito de Heranças Criar uma hierarquia de classes Rever o uso de modificadores de acesso. Apresentar o conceito de polimorfismo

Leia mais

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos) Orientação a Objetos Parte I Introdução a POO (Programação Orientada a Objetos) Histórico Gerações de Linguagens de Programação Primeira Geração: Linguagem de máquina Segunda Geração: Linguagem de montagem

Leia mais

Orientação a Objetos - Herança

Orientação a Objetos - Herança Orientação a Objetos - Herança 1 Repetindo Código p Todo banco tem funcionário. A classe funcionario ficaria da seguinte forma; class Funcionario { String nome; String cpf; double salario; // métodos devem

Leia mais

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

Introdução à Orientação a Objetos em Java Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB Centro de Informática, UFPE Programação estruturada

Leia mais

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos e Ligação Dinâmica Programação Orientada a Objetos e Polimorfismo A é a contribuição original do paradigma de programação orientado a objetos Fundamentos chave do paradigma OO: Abstração de Dados A herança

Leia mais

COMPORTAMENTOS - Observações

COMPORTAMENTOS - Observações COMPORTAMENTOS - Observações O próprio objeto realiza operações de consulta ou alteração dos valores dos seus atributos Essas operações são definidas em seus métodos Os métodos também são utilizados para

Leia mais

Orientação a Objetos e Java

Orientação a Objetos e Java Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características

Leia mais

Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli

Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli Vetores De modo geral, em linguagem de programação, vetores ou arrays são estruturas de dados que permitem que uma mesma variável possa armazenar mais de um valor; Em Java, vetores são coleções de dados,

Leia mais

Linguagem e Técnicas de Programação

Linguagem e Técnicas de Programação Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,

Leia mais

OO - Orientação a Objetos

OO - Orientação a Objetos OO - Orientação a Objetos 1 Motivação p Orientação a objetos é uma maneira de programar que ajuda na organização e resolve muitos problemas enfrentados pela programação procedural; p Imaginem em um grande

Leia mais

Tutorial C# - Nova temporada

Tutorial C# - Nova temporada Tutorial C# - Nova temporada Date : 23 de Fevereiro de 2009 Olá a todos, este é o meu primeiro post de muitos (espero eu) em que vos vou falar de programação em C#. Porquê C#? Porque é sem duvida a mais

Leia mais

Laboratório de programação II

Laboratório de programação II Laboratório de programação II Paradigma de orientação a Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Contextualização Paradigma de orientação a Contextualização A construção

Leia mais

Encapsulamento e Modularização

Encapsulamento e Modularização Encapsulamento e Modularização Departamento de Computação Universidade Federal de Sergipe Encapsulamento Modularização Tipos Abstratos de Dados (TADs) Objetos Classes Conteúdo Encapsulamento Programação

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Modificadores de Acesso: public e private Prof. Tulio Alberton Ribeiro Instituto Federal de Santa Catarina IFSC campus São José tulio.alberton@ifsc.edu.br 31 de julho de

Leia mais

Java para Desktop. Programação Orientada à Objetos 2 JSE

Java para Desktop. Programação Orientada à Objetos 2 JSE Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona

Leia mais

Herança Tiago Eugenio de Melo

Herança Tiago Eugenio de Melo Herança Tiago Eugenio de Melo tiago@comunidadesol.org Herança Conceito: Herança é a capacidade de especializar tipos de objetos (classes), de forma que os tipos especializados contenham, além de características

Leia mais

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

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos Profa. Juliana Santiago Teixeira Disciplina: Programação Orientada a Objetos I Tema da aula Introdução ao paradigma de programação: Orientado a Objetos Paradigma Paradigma é a filosofia adotada na construção

Leia mais

Ficha Prática 10. António Nestor Ribeiro, Paulo Azevedo, Mário Martins PPIV (LESI) 2005/06

Ficha Prática 10. António Nestor Ribeiro, Paulo Azevedo, Mário Martins PPIV (LESI) 2005/06 Ficha Prática 10 António Nestor Ribeiro, Paulo Azevedo, Mário Martins {anr,pja,fmm@di.uminho.pt PPIV (LESI) 2005/06 Objectivos 1. Interfaces: declaração e utilização. 2. Interfaces como tipos de dados

Leia mais

Linguagens de Programação Princípios e Paradigmas

Linguagens de Programação Princípios e Paradigmas Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Linguagens e Ambientes de Programação 2002-2003 Linguagens de Programação Princípios e Paradigmas Gladys Castillo

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Pacotes e Encapsulamento Msc. Paulo de Tarso F. Júnior 1 Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes e interfaces

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Breakout Componentes do Breakout Bola Raquete Tijolos Paredes Score Nem todos vão precisar de classes próprias

Leia mais

POO e C++: Herança e Polimorfismo

POO e C++: Herança e Polimorfismo POO e C++: Herança e Polimorfismo Márcio Santi Luiz Fernando Martha Conceito de Herança em POO Recurso que torna o conceito de classe mais poderoso; Permite que se construa e estenda continuamente classes

Leia mais

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

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc. Orientação a Objetos Revisão Conceitos CLASSE CLASSIFICAÇÃO GENERALIZAÇÃO ESPECIALIZAÇÃO HERANÇA INTERFACES POLIMORFISMO SOBRECARGA ENCAPSULAMENTO ABSTRAÇÃO MODULARIZAÇÃO 9 CLASSE Classe é um agrupamento

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos luno: ata: Professor: Leonardo abral da Rocha Soares 1. Torna o atributo visível a todas as classes do pacote onde foi declarado: a) public b) private c) protected d) package

Leia mais

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

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013 Introdução à orientação a objetos João Tito Almeida Vianna 18/05/2013 Roteiro Aula 1 Introdução: Programação estruturada x Orientação a objetos Orientação a objetos Classe e objeto Encapsulamento Herança

Leia mais

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Professora Sheila Cáceres Sobrecarga (overloading) Na mesma classe podemos definir vários métodos com o mesmo nome Sobrecarga O tipo

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos

Leia mais

Programação com Objectos 1º Teste 2013/2014 1º Semestre 15 de Novembro de 2013, 18:00 (90 minutos)

Programação com Objectos 1º Teste 2013/2014 1º Semestre 15 de Novembro de 2013, 18:00 (90 minutos) Programação com Objectos 1º Teste 2013/2014 1º Semestre 201311151800 1/7 Programação com Objectos 1º Teste 2013/2014 1º Semestre 15 de Novembro de 2013, 18:00 (90 minutos) Nome: Primeira Parte (7 valores)

Leia mais

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental Orientação a Objetos (OO) LPG II - Java Orientação a Objetos (OO) Roberto Vedoato vedoato@joinville.udesc.br Programação Procedimental x Orientada a Objetos Objetivos e Benefícios da Orientação a Objetos

Leia mais

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração Java First-Tier: Aplicações Orientação a Objetos em Java (II) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Sobrecarga Um recurso usual em programação OO é o uso de sobrecarga

Leia mais

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

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

Leia mais

A programação orientada a objetos tenta simular estes aspectos, trazendo para o computador a realidade do dia-a-dia.

A programação orientada a objetos tenta simular estes aspectos, trazendo para o computador a realidade do dia-a-dia. Introdução A orientação a objetos é uma maneira de programar que trata de modelar os processos de programação de uma maneira próxima à linguagem humana: tratando componentes de um programa como um objeto

Leia mais

Programação Orientada a Objetos Flávio de Oliveira Silva 144

Programação Orientada a Objetos Flávio de Oliveira Silva 144 HERANÇA Herança é a capacidade de uma subclasse de ter acesso as propriedades da superclasse(também chamada classe base) relacionada a esta subclasse. Dessa forma os atributos e métodos de uma classe são

Leia mais

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de Orientação a Objetos (OO) Roberto Vedoato vedoato@joinville.udesc.br Programação Procedimental x Orientada a Objetos Objetivos e Benefícios

Leia mais

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

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática 6 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... Diz-se que o nome de um método foi sobrecarregado ( overloaded

Leia mais

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces 0 Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces Classes Abstratas À medida que você sobe na hierarquia de herança,

Leia mais

4 Conceito de Herança

4 Conceito de Herança 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos. 2. Classes e Objetos Uma classe é um modelo que define os atributos e métodos comuns a um conjunto de objetos de forma encapsulada. Atributos são informações ou dados que descrevem, categorizam ou quantificam

Leia mais

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento.

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento. Introdução Atributos, métodos e encapsulamento joao@ecomp.uefs.br Atributos Ipos de acesso: private, public, protected e default Encapsulamento Métodos Construtores Criando objetos Departamento de Ciências

Leia mais

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 Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores Prof.: Bruno E. G. Gomes IFRN 1 Introdução Na aula de hoje: Declaração de classes Métodos Construtores Exercícios de criação

Leia mais

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;

Leia mais

LEIC-A / MEIC-A 2007/2008 (1º

LEIC-A / MEIC-A 2007/2008 (1º 1/11 LEIC-A / MEIC-A 2007/2008 (1º Semestre) Teste (versão A) 08 de Janeiro de 2008, 09:00 (120 minutos) Nome: Primeira Parte (5 valores) PERGUNTA RESPOSTA 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 Segunda

Leia mais

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

TÉCNICAS DE ORIENTAÇÃO A OBJETOS TÉCNICAS DE ORIENTAÇÃO A OBJETOS APLICAÇÃO EM: C# E JAVA Sumário INTRODUÇÃO... 4 PARADIGMAS DE PROGRAMAÇÃO... 5 PROGRAMAÇÃO PROCEDURAL... 5 PROGRAMAÇÃO ESTRUTURADA... 5 PROGRAMAÇÃO ORIENTADA A OBJETOS...

Leia mais

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior Programação Orientada a Objetos Prof. MsC Sílvio Bacalá Júnior Princípios básicos de OO Abstração Encapsulamento Modularidade Herança 2013 POO - Bacalá 2 Abstração Concentração nas características essenciais,

Leia mais

Programação Orientada a Objetos - 3º semestre AULA 04 Prof. André Moraes

Programação Orientada a Objetos - 3º semestre AULA 04 Prof. André Moraes Pág 25 Programação Orientada a Objetos - 3º semestre AULA 04 Prof. André Moraes 6 COMPORTAMENTO DOS OBJETOS Sabe-se que os objetos possuem um estado e comportamento, representados pelas variáveis de instância

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Introdução Alguns conceitos importantes Orientação a Objetos Alguns conceitos importantes Programação Estruturada X Programação OO Classes Objetos Construtores e Destrutores

Leia mais

GRASP. Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé)

GRASP. Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé) GRASP Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Introdução a padrões O que são? Por que utilizá-los? Padrões GRASP O que são? Quais serão apresentados na disciplina?

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Classes, Atributos e Métodos Msc. Paulo de Tarso F. Júnior 1 Introdução Programas eram lineares e com poucos módulos: PE Programação Estruturada Aumento da complexidade

Leia mais

Programação em Linguagem C++

Programação em Linguagem C++ Programação em Linguagem C++ Igor Kondrasovas Especialista em Computação Aplicada UDESC Sócio e Desenvolvedor na Inovativa Tecnologia igor@inovativatec.com www.inovativatec.com Agenda Herança e Polimorfismo

Leia mais

Programação por Objectos Introdução. Introdução 1/18

Programação por Objectos Introdução. Introdução 1/18 Programação por Objectos Introdução LEEC@IST Introdução 1/18 História (1) [60s] Simula-67, Dahl e Nygaard da Univ. de Oslo Primeira linguagem com conceitos OO. [70s] Smalltalk, da Xerox Primeira implementação

Leia mais

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos Programação Orientada a Objetos: Herança Alexandre César Muniz de Oliveira Análise e Projeto Orientados a Objetos A análise orientada a objetos Determina o que o sistema deve fazer: Quais os atores envolvidos?

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação Para aprender uma linguagem de programação podemos começar por conhecer os vocábulos ou símbolos que formam o seu léxico e depois aprender como esses vocábulos integram as instruções (frases) que compõe

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Herança Visibilidade de atributos e métodos Extensão e sobreposição Uso de super Referências para objetos Polimorfismo Conceitos

Leia mais

ESCOLA SUPERIOR TÉCNICA PLANO ANALÍTICO LABORATÓRIO DE INFORMÁTICA III( JAVA) SEMESTRE Nº DE CRÉDITOS

ESCOLA SUPERIOR TÉCNICA PLANO ANALÍTICO LABORATÓRIO DE INFORMÁTICA III( JAVA) SEMESTRE Nº DE CRÉDITOS ESCOLA SUPERIOR TÉCNICA PLANO ANALÍTICO LABORATÓRIO DE INFORMÁTICA III( JAVA) NÍVEL REGIME ANO ANO ACADÉMICO SEMESTRE Nº DE CRÉDITOS Nº DE HORAS/SEMANA TOTAL DE HORAS SEMESTRAIS DE CONTACTO DOCENTE 1 Laboral

Leia mais

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

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática 1 - Introdução 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: - cada vez mais próximas da percepção humana - e que permitam lidar

Leia mais

Projeto de Linguagem. Linguagens de Programação

Projeto de Linguagem. Linguagens de Programação Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem

Leia mais

Orientação a objetos Disciplina: Linguagens de Programação. Prof. Alexandre Cassimiro Andreani

Orientação a objetos Disciplina: Linguagens de Programação. Prof. Alexandre Cassimiro Andreani Orientação a objetos Disciplina: Linguagens de Programação Prof. Alexandre Cassimiro Andreani Sumário 1 Objetivo...3 2 Origem da programação orientada a objetos...4 2.1 Exercícios...4 3 Classes e Objetos...6

Leia mais

Unidade 3: Classes em Java Para Programadores C Classes, Objetos e Tratamento de Erros Prof. Daniel Caetano

Unidade 3: Classes em Java Para Programadores C Classes, Objetos e Tratamento de Erros Prof. Daniel Caetano Programação Servidor em Sistemas Web 1 Unidade 3: Classes em Java Para Programadores C Classes, Objetos e Tratamento de Erros Prof. Daniel Caetano Objetivo: Apresentar resumidamente os conceitos de classes,

Leia mais

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo

Leia mais

Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP

Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP Templates BCC 221 - Programação Orientada a Objectos(POO) Guillermo Cámara-Chávez Departamento de Computação - UFOP Introdução Os templates ou gabaritos fornecem a base para existência da programação genérica

Leia mais

Declaração de Construtores em Java

Declaração de Construtores em Java Programando com Java Artigo http://mballem.wordpress.com/ Declaração de Construtores em Java Para que serve e como usar um Construtor em Java Autor Marcio Ballem: é formado em Sistemas de Informação e

Leia mais

Programação Orientada a Objetos em C++: introdução à herança

Programação Orientada a Objetos em C++: introdução à herança Programação Orientada a Objetos em C++: introdução à herança Disciplina de Programação Científica II Aula 15 de 18 21/06/2013 Professor Giovani Gracioli giovanig@gmail.com Objetivos Os objetivos dessa

Leia mais

NOVIDADES DO JAVA PARA PROGRAMADORES C

NOVIDADES DO JAVA PARA PROGRAMADORES C PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2011-2 Visão Geral 1 2 4 5 Classes Objetos Herança Tratamento de Erros Material de Estudo Material Notas

Leia mais

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

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos. AULA 02 OBJETIVO: Características da Linguagem Orientada a Objetos. HABILIDADES TRABALHADAS: Comparação das características das linguagens orientadas a objetos frente às linguagens estruturadas. Conhecimentos

Leia mais

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos) Mecanismos de controlo de acesso Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a cada classe e cada membro da classe (dados e métodos) Modificadores de acesso: public protected private

Leia mais

Programação Java. Linguagem de Programação Java

Programação Java. Linguagem de Programação Java Programação Java Linguagem de Programação Java Linguagem de Programação Java Sumário Classes e Objetos Atributos e Métodos Construtor e Destrutor Ricardo Sant'Ana Programação Java Slide 2 Classes e Objetos

Leia mais

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos Introdução Programação Orientada a Objetos (POO) João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Avaliações Continuada: Resolução de Atividades Práticas em Sala; Resolução de Lista de Exercícios; Provas

Leia mais

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 9 Tratamento de Exceções Assertivas Programa Capítulo

Leia mais

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2006/2007

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2006/2007 ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA INTRODUÇÃO À PROGRAMAÇÃO (ENG. INFORMÁTICA) COMPUTADORES E PROGRAMAÇÃO I (ENG. ELECTROTÉCNICA) 2006/2007 TRABALHO PRÁTICO Nº

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DLSC/CT/UFSM Sumário Herança Visibilidade de atributos e métodos Extensão e sobreposição Uso de super Referências para objetos Polimorfismo Conceitos

Leia mais

Classes e Objetos. Prof. Leonardo Barreto Campos 1

Classes e Objetos. Prof. Leonardo Barreto Campos 1 Classes e Objetos Prof. Leonardo Barreto Campos 1 Sumário Introdução; Escopo de Classe e Acesso a Membros de Classes; Exercício; Os Métodos get e set; Separação de Interface e Implementação; Construtores

Leia mais

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Programação Estruturada e Orientada a Objetos. Objetos e Métodos Programação Estruturada e Orientada a Objetos Objetos e Métodos 2013 O que veremos hoje? Objetos e Métodos Transparências baseadas no material do Prof. Jailton Carlos Objetivos Aprender a criar construtores;

Leia mais

Introdução à Programação Orientada a Objetos em C++

Introdução à Programação Orientada a Objetos em C++ Introdução à Programação Orientada a Objetos em C++ Disciplina de Programação Científica II Aula 12 de 18 24/05/2013 Professor Giovani Gracioli giovanig@gmail.com Objetivos Os objetivos dessa aula são:

Leia mais

AULA 6 - ARRAYS. Array de 10 elementos

AULA 6 - ARRAYS. Array de 10 elementos 1 AULA 6 - ARRAYS Arrays são objetos que armazenam diversas variáveis do mesmo tipo. Eles podem conter variáveis de referência primitivas ou de objeto, mas o array propriamente dito sempre será um objeto

Leia mais