Programação C# + ASP.NET

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

Download "Programação C# + ASP.NET"

Transcrição

1 Programação C# + ASP.NET Prof. MSc. Daniel Menin Tortelli danielmenintortelli@gmail.com Site: 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 1

2 Tratamento de Exceções 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 2

3 Tratamento de Exceções As exceções são ações que causam anomalias nas aplicações. Podem ser tratadas de diversas formas. Quando uma exceção ocorre, um objeto herdado de System.Exception, é criado para representá-la. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 3

4 Tratamento de Exceções Os comandos em C# para utilização do tratamento de exceções estruturados são: try bloco de proteção do código. catch - filtra e trata a exceção. finally - sempre executado após o disparo da exceção ou não. throw - dispara uma exceção. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 4

5 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 5

6 try catch Tratamento de Exceções Uma ou mais instruções catch são colocadas logo abaixo do bloco try para interceptar uma exceção. Dentro do bloco catch é encontrado o código de tratamento da exceção. O tratamento da exceção trabalha de forma hierárquica, ou seja: quando uma exceção é disparada, cada catch é verificado de acordo com a exceção e, se a exceção ou derivada dela é encontrada, o bloco será executado e os outros desprezados. O catch também pode ser encontrado na sua forma isolada, tratando qualquer exceção não detalhada. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 6

7 try finally Tratamento de Exceções A instrução finally garante a execução de seu bloco, independente da exceção ocorrer no bloco try. Tradicionalmente, o bloco finally é utilizado para liberação de recursos consumidos, por exemplo, fechar um arquivo ou uma conexão. Os comandos try, catch e finally podem ser utilizados em conjunto. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 7

8 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 8

9 Estrutura de dados (Structs) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 9

10 Introdução Uma struct é uma estrutura de dados normalmente usada para encapsular pequenos grupos de variáveis relacionadas, como as coordenadas de um retângulo, as características de um item em um inventário, os dados pessoais de um cliente, etc. O exemplo a seguir mostra uma declaração simples de estrutura: 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 10

11 Introdução 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 11

12 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 12

13 Características de Structs Structs são definidas usando o comando struct. Os atributos/variáveis de uma struct podem ser do tipo private ou public. O tipo protected não é usado. Se os atributos/variáveis de uma struct forem do tipo private (ou seja: não podem ser acessados diretamente fora da struct), é necessário criar métodos para atribuição (set) e retorno (get) de seus valores. Se os atributos/variáveis de uma struct forem do tipo public, seus atributos/variáveis podem ser acessados diretamente fora da struct. Structs podem conter métodos/funções para realizar tarefas específicas. Diferente de classes, as structs não podem herdar ou servir de base para outra struct. Métodos em structs não podem ser especificados como abstract, protected ou virtual. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 13

14 Características de Structs Quando se cria um objeto baseado em uma struct usando o comando new, um construtor padrão é chamado. Uma struct não possui um método destrutor. Uma struct pode ou não ser criado com o comando new. É possível criar um Construtor para uma struct para inicializar todos os seus atributos/variáveis. Obs.: TODOS os atributos devem estar listados como parâmetro para o construtor. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 14

15 Classes 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 15

16 Introdução Em Linguagens de Programação Estruturadas (como C), a programação tende a ser orientada a ações. Linguagens de Programação como C++, C# e JAVA utilizam o conceito de objetos. Ou seja, são orientadas a objetos. Em C, as unidades de programação são denominadas funções (ou métodos). Em C#, as unidades de programação são denominadas Classes. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 16

17 Introdução Programadores C# se concentram na criação de Classes, que são denominadas de tipos definidos pelo usuário. Da mesma forma que um programador pode instanciar uma variável do tipo int, ele também pode criar uma instância de sua própria classe. Essa instância da classe é chamada de objeto. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 17

18 Introdução Os objetos de uma classe são instanciados (criados) a partir da definição de uma classe específica. Essa classe possui funções/métodos e variáveis/atributos dentro de seu próprio escopo. Cada objeto possui dados e métodos que são utilizados para manipular e acessar esses dados. A classe define quais dados e funcionalidades cada objeto em particular (denominado instância) da classe pode conter. Em uma aplicação, podemos criar várias instâncias da mesma classe, que compartilham todos os seus recursos e funcionalidades. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 18

19 Criando uma Classe em C# /10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 19

20 Criando uma Classe em C# /10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 20 6

21 Criando a Classe CContaCorrente 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 21

22 Criando a Classe CContaCorrente 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 22

23 Instanciando objetos da classe CContaCorrente 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 23

24 Variáveis de Instância e Métodos Set e Get Uma classe consiste em um ou mais métodos/funções que manipulam os atributos que pertencem a um objeto particular da classe. Os atributos são representados como variáveis em uma declaração de classe. Essas variáveis são declaradas dentro de uma declaração de classe, mas fora dos blocos das declarações dos métodos da classe. Quando cada objeto de uma classe mantém sua própria cópia de um atributo, a variável que representa o atributo também é conhecido como uma variável de instância. Ou seja, cada objeto (instância) da classe tem uma instância separada da variável na memória. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 24

25 Variáveis de Instância e Métodos Set e Get As classes costumam fornecer métodos public para permitir a clientes da classe configurar (set, isto é, atribuir valores) ou obter (get, isto é, obter valores de) variáveis de instância declarados como private no corpo da classe. Os métodos set também são comumente chamados de métodos modificadores (porque geralmente alteram um valor). Um método público set pode e deve avaliar cuidadosamente as tentativas de modificar o valor da variável a fim de assegurar que o novo valor é apropriado para esse item de dados. Os métodos get também são comumente chamados de métodos de acesso ou métodos de consulta. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 25

26 Variáveis de Instância e Métodos Set e Get Os métodos get também são comumente chamados de métodos de acesso ou métodos de consulta. Um método get poderia controlar o formato dos dados que ele retorna e, assim, proteger o código do cliente na representação dos dados. Se necessário, forneça métodos public para alterar (set) e recuperar (get) os valores de variáveis de instância private. Essa arquitetura ajuda a ocultar a implementação de uma classe dos seus clientes, o que aprimora a modificabilidade do programa. Nem sempre é necessário fornecer métodos set e get para cada campo private. Essas capacidades devem ser fornecidas somente quando fizerem sentido. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 26

27 Modificadores de Acesso Public e Private A maioria das declarações de variáveis de instância é precedida pela palavra-chave private Assim como public, a palavra-chave private é um modificador de acesso. As variáveis ou métodos declarados com o modificador de acesso private só são acessíveis a métodos da classe em que são declarados. Declarar variáveis da classe com modificador de acesso private é conhecido como ocultamento de dados. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 27

28 Criando a Classe CAlunos 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 28

29 Criando a Classe CAlunos 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 29

30 Instanciando objetos da classe CAlunos (Exemplo 1) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 30

31 Instanciando objetos da classe CAlunos (Exemplo 1) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 31

32 Instanciando objetos da classe CAlunos (Exemplo 2) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 32

33 Instanciando objetos da classe CAlunos (Exemplo 2) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 33

34 Membros da classe definidos como static Cada objeto tem sua própria cópia de todas as variáveis de instância da classe. Em alguns casos, apenas uma cópia de uma variável particular dever ser compartilhada por todos os objetos de uma classe. Uma variável de classe definida com static faz com que todos os objetos criados/instanciados baseados na classe, compartilhem os mesmos dados desta variável. Utilize uma variável static quando todos os objetos de uma classe precisarem utilizar a mesma cópia da variável. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 34

35 Membros da classe definidos como static 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 35

36 Membros da classe definidos como static 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 36

37 Membros da classe definidos como static 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 37

38 Membros da classe definidos como static 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 38

39 Membros da classe definidos como static 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 39

40 Membros da classe definidos como static 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 40

41 Exercício 1 Desenvolva um programa onde seja implementada uma classe CProduto contendo os atributos: código (int), nome (String) e preço do produto em R$ (double). Crie métodos para ler e escrever nos atributos acima. Na função principal, leia 5 produtos e imprima o mais caro e o mais barato. Os 5 produtos devem estar armazenados em um array de objetos da classe CProduto. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 41

42 Exercício Criar uma classe CCirculo tal que representa as características geométricas de uma figura e possui os seguintes campos/atributos: private double raio valor do raio. private double circ valor da circunferência dada em função do raio r por: C = 2 π r private double area valor da área dada em função do raio r por: A = π r 2 A) Criar um construtor CCirculo(double r) que preenche os campos raio, circ e area de um objeto do tipo area. B) Criar um método público void ExibeAtributosCirculo() que mostra os valores dos atributos de um objeto Circulo. C) Criar métodos públicos set e get para cada um dos atributos da classe Circulo. D) Criar os métodos privados void ModificaCirculo() e void ModificaArea() que realizam os cálculos e as modificações dos valores contidos nos campos circ e area toda vez que o método setraio é utilizado para modificar o valor contido em no campo raio. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 42

43 Exercício 2 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 43

44 Exercício 2 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 44

45 Exercício 3 Escreva uma classe que represente um país. Um país tem como atributos o seu nome, o nome da capital, sua dimensão em Km2 e uma lista de países com os quais ele faz fronteira. Represente a classe e forneça os seguintes construtores e método: a) Construtor que inicialize o nome, capital e a dimensão do país; b) Métodos de acesso (set/get) para as propriedades indicadas no item (a); c) Um método que permita verificar se dois países são iguais. Dois países são iguais se tiverem o mesmo nome e a mesma capital. d) Um método que define quais outros países fazem fronteira (note que um país não pode fazer fronteira com ele mesmo); e) Um método que retorne a lista de países que fazem fronteira; f) Um método que receba um outro país como parâmetro e retorne uma lista de vizinhos comuns aos dois países. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 45

46 Exercício 4 Crie uma classe para representar datas. 1. Represente uma data usando três atributos: o dia, o mês, e o ano. 2. Sua classe deve ter um construtor que inicializa os três atributos e verifica a validade dos valores fornecidos. 3. Forneça um construtor sem parâmetros que inicializa a data com a data atual fornecida pelo sistema operacional. 4. Forneça um métodos (set/get) para cada atributo. 5. Forneça o método para retornar uma representação da data como string. Considere que a data deve ser formatada mostrando o dia, o mês e o ano separados por barra (/). 6. Forneça uma operação para avançar uma data para o dia seguinte. 7. Escreva um aplicativo de teste que demonstra as capacidades da classe. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 46

47 Exercício 5 A fim de representar empregados em uma firma, crie uma classe chamada Empregado que inclui as três informações a seguir como atributos: um primeiro nome, um sobrenome, e um salário mensal. Sua classe deve ter um construtor que inicializa os três atributos. Forneça um método set e get para cada atributo. Se o salário mensal não for positivo, configure-o como 0.0f. Escreva um aplicativo de teste que demonstra as capacidades da classe. Crie duas instâncias da classe e exiba o salário anual de cada instância. Então dê a cada empregado um aumento de 10% e exiba novamente o salário anual de cada empregado. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 47

48 Exercício 6 Classe Bomba de Combustível: Faça um programa completo utilizando classes e métodos que: a. Possua uma classe chamada CBombaCombustível, com no mínimo esses atributos: string stipocombustivel. float fvalorlitro float fquantidadecombustivel b.possua no mínimo esses métodos: 1. AbastecerPorValor( ) método onde é informado o valor a ser abastecido e mostra a quantidade de litros que foi colocada no veículo. 2. AbastecerPorLitro( ) método onde é informado a quantidade em litros de combustível e mostra o valor a ser pago pelo cliente. 3. AlterarValor( ) altera o valor do litro do combustível. 4. AlterarCombustivel( ) altera o tipo do combustível. 5. AlterarQuantidadeCombustivel( ) altera a quantidade de combustível restante na bomba. OBS: Sempre que acontecer um abastecimento é necessário atualizar a quantidade de combustível total na bomba. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 48

49 Exercício 7 Classe Carro: Implemente uma classe chamada CCarro com as seguintes propriedades: a. Um veículo tem um certo consumo de combustível (medidos em km / litro) e uma certa quantidade de combustível no tanque. b. O consumo é especificado no construtor e o nível de combustível inicial é 0. c. Forneça um método andar( ) que simule o ato de dirigir o veículo por uma certa distância, reduzindo o nível de combustível no tanque de gasolina. d. Forneça um método obtergasolina( ), que retorna o nível atual de combustível. e. Forneça um método adicionargasolina( ), para abastecer o tanque. Exemplo de uso: 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 49

50 Herança

51 Herança A programação orientada a objetos é baseada em 3 princípios: A habilidade de controle de acesso (encapsulamento membros public, private e protected); A habilidade de herdar atributos e métodos de outras classes (Herança); A habilidade de responder apropriadamente (Polimorfismo). A Herança é a palavra-chave no mundo da Orientação a Objetos. Usa-se Herança como uma ferramenta para evitar a repetição quando na definição de classes diferentes que possuem um número de características em comum e são claramente relacionadas umas com as outras. São classes diferentes do mesmo tipo, cada uma com suas características distintas, mas com outras em comum. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 51

52 Herança Imaginem uma classe chamada Humano. Todos nós herdamos alguns atributos da superclasse Humano, tais como: a habilidade de conversar, dependências por ar, comida. A classe Humano, por sua vez, herda suas dependências por ar, água, são vertebrados, possuem glâmdulas mamárias, possuem pêlos... da classe Mamífero. A classe Mamífero herda dependências da classe Animal. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 52

53 Herança Herança é uma forma de reutilização de software na qual uma nova classe é criada, absorvendo membros da classe existente e, adicionando ou modificando novas capacidades. Ao criar uma classe, em vez de criar membros completamente novos, o programador pode designar que a nova classe deverá herdar membros de uma classe existente. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 53

54 Herança Esta classe existente é chamada de superclasse (classe mãe/base). A nova classe que herda membros da superclasse é chamada de subclasse (classe filha/derivada). Cada subclasse pode tornar-se a superclasse para futuras subclasses. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 54

55 Herança Uma subclasse normalmente adiciona seus próprios métodos e variáveis. Portanto, uma subclasse é mais específica que sua superclasse e representa um grupo mais especializado de objetos. Em geral, uma subclasse exibe os comportamentos de sua superclasse e comportamentos adicionais que são específicos à subclasse. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 55

56 Herança CPessoal CAluno CFuncionario 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 56

57 Classe CPessoal 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 57

58 Classe CPessoal 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 58

59 Classe CPessoal 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 59

60 Classe CAluno 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 60

61 Classe CAluno 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 61

62 Classe CAluno 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 62

63 Classe CAluno 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 63

64 Classe CAluno 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 64

65 Classe CFuncionario 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 65

66 Classe CFuncionario 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 66

67 Classe CFuncionario 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 67

68 Main 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 68

69 Exercício 8 A empresa XPTO necessita desenvolver um sistema para catalogar itens colecionáveis (livros, CDs, DVDs e revistas). O objetivo deste sistema é manter os itens colecionáveis, organizados por tipo. O sistema deve permitir cadastrar os dados comuns e os específicos de cada tipo de item. Os dados comuns são: identificação única, nome, data de aquisição, lista de autores. Para os livros é importante manter também, o nome da editora e o ano de publicação. Já para os CDs, é interessante manter o gênero musical e a identificação das faixas de áudio (nomes das músicas). Para os DVDs é importante armazenar o tipo (musical, filme ou dados), e uma descrição geral sobre o item ou os extras, por exemplo. Por fim, das revistas é interessante manter o ano de publicação, o volume, a editora e os principais assuntos tratados. Desenvolva um sistema que inclua e exclua os itens colecionáveis em uma Lista de Itens Colecionáveis. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 69

70 Membros protected Os membros public de uma classe são acessíveis onde quer que o programa tenha uma referência a um objeto dessa classe ou uma de suas subclasses. Os membros private de uma classe só são acessíveis dentro da própria classe que os declara. Ou seja, não são acessíveis fora do escopo da classe e nem nas subclasses. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 70

71 Membros protected Os membros declarados como protected oferecem um nível intermediário de acesso entre public e private. Os membros protected de uma superclasse podem ser acessados por membros dessa superclasse e por membros de suas subclasses. Todos os membros de superclasse public e protected retêm seu modificador de acesso original quando se tornam membros da subclasse (isto é, membros public na superclasse tornam-se public também na subclasse. Idem para membros protected.) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 71

72 Observação: Membros protected Os métodos de uma subclasse não acessam membros private diretamente de sua superclasse. Uma subclasse pode alterar o estado de variáveis de instância private da superclasse somente por meio de métodos public ou protected fornecidos na superclasse e herdados pela subclasse. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 72

73 Sobrecarga de Métodos

74 Sobrecarga de Métodos Quando em uma classe temos vários métodos com o mesmo nome, mas estes métodos contem parâmetros diferentes, chamamos isto de sobrecarga de métodos. Isto quer dizer que um único método pode ter mais de uma funcionalidade. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 74

75 Sobrecarga de Métodos Quando se usa a sobrecarga de métodos alguns cuidados dever ser tomados. Veja alguns deles: Todos os métodos sobrecarregados devem ter o mesmo nome. Os métodos dever ser diferentes entre si em pelo menos um dos seguintes aspectos: Numero de parâmetros; Ordem de parâmetros; Tipos de dados dos parâmetros; O tipo de retorno (válido somente em conversões de operadores)*. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 75

76 Métodos Virtuais e Polimorfismo

77 Métodos Virtuais e Polimorfismo Métodos Virtuais habilitam a chamada de diferentes versões do mesmo método, baseado no tipo do objeto, determinado dinamicamente em tempo de execução. Este fenômeno é uma das formas de implementar o polimorfismo, que literalmente significa muitas formas. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 77

78 Regras para Métodos Virtuais e Polimorfismo Existem algumas regras importantes que devem ser seguidas quando se está declarando métodos polimórficos, usando as palavras-chave virtual e override. Não é permitido declarar um método private quando se está usando as palavras-chave virtual ou override. As duas assinaturas dos métodos devem ser idênticas, ou seja, devem ter o mesmo nome de método, a mesma quantidade de parâmetros e o mesmo tipo de retorno. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 78

79 Regras para Métodos Virtuais e Polimorfismo Os dois métodos deve possuir o mesmo nível de acesso. Por exemplo, se um dos dois métodos é public, o outro também dever ser public. (Métodos podem ser declarados também como protected). Só é possível sobrescrever (override) um método declarado com a palavra-chave virtual na superclasse. Se a subclasse não declara o método usando a palavra-chave override, o método virtual da superclasse não será sobrescrito. Um método override é implicitamente virtual. Ele pode ser reescrito em uma outra classe derivada. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 79

80 Métodos Virtuais e Polimorfismo Métodos virtuais podem ser declarados na superclasse e reescritos na subclasse, ocultando a implementação definida na superclasse. A nova implementação do método na subclasse pode chamar a implementação original do método na superclasse usando a palavra-chave base. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 80

81 Classe Base CVeiculo 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 81

82 Classe Derivada CAutomovel 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 82

83 Classe Derivada CAeronave 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 83

84 Main 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 84

85 Classes Abstratas

86 Classes Abstratas As classes abstratas são classes que não podem ser instanciadas pela aplicação. Ou seja, não é possível criar um objetos de uma classe abstrata. São úteis para serem usadas como classes base em uma hierarquia de herança. A principal finalidade de uma classe abstrata é ser uma classe base na qual outras classes poderão herdar seus atributos e métodos. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 86

87 Classes Abstratas Classes Abstratas podem constituir vários níveis de hierarquia de herança. Por exemplo: a hierarquia de Shape (figura abaixo) começa com uma classe abstrata: Shape. No nível seguinte, existem duas classes abstratas: TwoDimensionalShape e ThreeDimensionalShape. No nível seguinte, estão as classes derivadas que são possíveis de serem instanciadas pela aplicação para criar objetos: (Circle, Square, Triangle, Sphere, Cube, Tetrahedron. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 87

88 Classes Abstratas A Classe Abstrata é declarada adicionando a palavra-chave abstract antes da declaração da classe base. Uma Classe Abstrata pode ou não conter métodos abstratos: Os métodos abstratos são implicitamente métodos virtuais e não devem ser implementados na classe base. Entretanto, TODOS os métodos abstratos devem ser implementados nas classes derivadas. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 88

89 Classes Abstratas 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 89

90 Classes Abstratas 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 90

91 Classes Abstratas 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 91

92 Palavras-Chave Abstract: Indica uma classe, método ou propriedade que não admite instâncias diretamente. Override: Indica uma redefinição numa classe derivada. Virtual: Indica um elemento da classe base que pode ser redefinido. This: Indica um elemento da própria classe. Base: Indica um elemento da classe base. Sealed: Indica uma classe que não permite derivação. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 92

93 Recursividade

94 Recursividade A recursividade é a definição de uma subrotina (função ou método) que pode invocar a si mesma. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 94

95 Recursividade (Soma dos dígitos de um número) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 95

96 Recursividade (Converter Decimal para Binário) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 96

97 Recursividade (Série de Fibonacci) A Sequência de Fibonacci consiste em uma sucessão de números, tais que, definindo os dois primeiros números da sequência como 0 e 1, os números seguintes serão obtidos por meio da soma dos seus dois antecessores. Portanto, os números são: 0,1,1,2,3,5,8,13,21,34,55,89,144,233,... 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 97

98 Recursividade (Série de Fibonacci) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 98

99 Recursividade (Torre de Hanoi) Torre de Hanói é um "quebra-cabeça" que consiste em uma base contendo três pinos, em um dos quais são dispostos alguns discos uns sobre os outros, em ordem crescente de diâmetro, de cima para baixo. O problema consiste em passar todos os discos de um pino para outro qualquer, usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique em cima de outro menor em nenhuma situação. O número de discos pode variar sendo que o mais simples contém apenas três. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 99

100 Recursividade (Torre de Hanoi) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 100

101 Recursividade (Fatorial) Na matemática, o fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n. 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 101

102 Recursividade (Fatorial) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 102

103 Recursividade (Fatorial) 16/10/2017 Programação C# ASP.NET - Prof. MSc. Daniel Menin Tortelli 103

Programação C# + ASP.NET

Programação C# + ASP.NET Programação C# + ASP.NET Prof. MSc. Daniel Menin Tortelli e-mail: danielmenintortelli@gmail.com Site: http://sites.google.com/site/danielmenintortelli/home 09/11/2015 Programação C# ASP.NET - Prof. MSc.

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Herança Herança Criação de uma nova classe de uma

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

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Herança Aula de Hoje Problema Considere uma empresa que tenha tipos de empregados no aplicativo de folha de pagamento Um empregado tem nome,

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

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes - Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes

Leia mais

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

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

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

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

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Herança É um princípio da Programação Orientada a Objetos que permite que as classes compartilhem atributos e métodos

Leia mais

Programação Orienta a Objetos

Programação Orienta a Objetos Programação Orienta a Objetos Linguagem de Programação 1 Os atores principais do paradigma de projetos orientados a objetos são chamados de objetos. Um objeto se origina de uma classe, que é uma especificação

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

Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno

Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Visibilidade de membros Membro da classe derivada pode usar os membros públicos ( public ) e protegidos ( protected ) da sua classe base (como

Leia mais

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama] [Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama] Objetivos Revisar conceitos de Orientação a Objetos Classes Objetos Encapsulamento Herança Sobrescrita de métodos Sobrecarga de métodos

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

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Herança 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 11 de setembro

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

Programação Orientada a Objetos para Redes de Computadores. Polimorfismo com Hierarquias de Herança. Exemplo: Hierarquia Animal

Programação Orientada a Objetos para Redes de Computadores. Polimorfismo com Hierarquias de Herança. Exemplo: Hierarquia Animal Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Polimorfismo Polimorfismo com Hierarquias de Herança

Leia mais

Programação Orientada a Objetos JAVA - NETBEANS

Programação Orientada a Objetos JAVA - NETBEANS Programação Orientada a Objetos JAVA - NETBEANS Agenda Programação Orientada a Objeto (POO) Conceitos sobre POO Pilares da POO Objeto Classe Construtores Troca de Mensagens Pilares da POO Encapsulamento

Leia mais

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

Linguagem de Programação I Apresentação da Disciplina Linguagem de Programação I Apresentação da Disciplina Apresentação da Disciplina Conteúdo: 1) Orientação a Objetos - Características da OO - Reutilização de código 2) Introdução à Linguagem Java - Histórico

Leia mais

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes - Programação Java - Herança e Polimorfismo - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes relacionadas entre

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

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for

Leia mais

Aprendendo. Java 2. Rodrigo Mello Ramon Chiara Renato Villela. Novatec Editora Ltda.

Aprendendo. Java 2. Rodrigo Mello Ramon Chiara Renato Villela. Novatec Editora Ltda. Aprendendo Java 2 Rodrigo Mello Ramon Chiara Renato Villela Novatec Editora Ltda. www.novateceditora.com.br 1 Programação Orientada a Objetos O que é Programação Orientada a Objetos? É um paradigma de

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

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

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

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

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

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno. Interfaces Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Interfaces É utilizada para agrupar conceitos em

Leia mais

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

Curso Profissional de Gestão e Programação de Sistemas Informáticos Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Classes em C++ Módulos 10 e 11 POO A professora: Sandra Soares Classes em C++ Uma class

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

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

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

Orientação a Objetos AULA 06

Orientação a Objetos AULA 06 Orientação a Objetos AULA 06 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Herança ü Sobrescrita e reescrita de métodos ü Sobrecarga ü Efeitos de Herança ü Polimorfismo 2 Um dos principais recursos

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

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: 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

Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 12 Out/2016.

Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 12 Out/2016. Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 12 Out/2016 3.18. Arranjos/Array - Unidimensional Declaração de arranjos: = ;

Leia mais

O PARADIGMA ORIENTADO POR OBJETOS

O PARADIGMA ORIENTADO POR OBJETOS O PARADIGMA ORIENTADO POR OBJETOS A idéia básica do paradigma orientado a objetos é imaginar que programas simulam o mundo real: um mundo povoado de objetos. Dessa maneira, linguagens baseadas nos conceitos

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

UNIFEI Disciplina Professor

UNIFEI Disciplina Professor UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO02 Enganharia de Software II Enzo Seraphim Nota de aula de Java Encapsulamento

Leia mais

Técnicas de Programação:

Técnicas de Programação: Técnicas de Programação: Programação Orientada a Objeto PROF. PROTÁSIO DEE-UFPB Classes e Objetos Classe É uma estrutura de dados que pode conter: Objeto Dados, e Funções. É uma instância de uma classe.

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

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Pa

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,Pa Palavra reservada this Em Java podemos ter um parâmetro de um método e um atributo de uma classe com o mesmo nome. Caso façamos uma referência a esta variável, pelo princípio da localidade estaremos referenciando

Leia mais

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado

Leia mais

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel) Herança capacidade de uma classe (subclasse) herdar, adquirir atributos e funcionalidades de outra classe (superclasse), podendo juntar algumas especificidades e/ou alterar outras. Existe uma relação tipo

Leia mais

Tratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo

Tratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo Tratamento de Exceções LPG II Java Tratamento de Exceções Introdução Princípios do tratamento de exceções em Java Cláusula try Cláusula catch Cláusula finally Hierarquia de exceções em Java Considerações

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

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

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

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Polimorfismo Polimorfismo com Hierarquias Polimorfismo

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

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

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

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira Engenharia de Software Aula 10 Representação dos Conceitos de Orientação a Objetos Prof. Me. Rogério Ferreira 2 Roteiro Representação dos Conceitos OO Mensagens Navegabilidade Pacotes Encapsulamento Herança

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

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Herança e Polimorfismo Prof. Francisco de Assis S. Santos, Dr. São José, 2015. Herança em POO O conceito de herança torna mais rápido o desenvolvimento de softwares complexos

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

Conceitos Básicos da Programação OO

Conceitos Básicos da Programação OO Conceitos Básicos da Programação OO Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Objetivos Aprender os

Leia mais

Curso: Técnico em Informática Integrado Disciplina: POO Carga horária: 60h Período: 2º Ano Professor: Edmilson Barbalho Campos Neto LISTA 02.

Curso: Técnico em Informática Integrado Disciplina: POO Carga horária: 60h Período: 2º Ano Professor: Edmilson Barbalho Campos Neto LISTA 02. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Campus João Câmara Avenida Antônio Severiano da Câmara / BR 406, Km 101, s/n Zona Rural. Bairro Amarelão João Câmara/RN - CEP:

Leia mais

Linguagem de programação métodos/funções

Linguagem de programação métodos/funções Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação métodos/funções Professor: Saulo Henrique Cabral Silva MÉTODOS / MODULARIZANDO Modularizando... 2 Métodos Funções Sub-rotinas

Leia mais

Programação Java (nível intermediário) 4. Polimorfismo

Programação Java (nível intermediário) 4. Polimorfismo Programação Java (nível intermediário) 4 Polimorfismo Introdução Uma linguagem orientada a objetos nos permite definir novos tipos para variáveis Nós definimos um novo tipo através de uma classe Este tipo

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

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

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 C# + ASP.NET

Programação C# + ASP.NET Programação C# + ASP.NET Prof. MSc. Daniel Menin Tortelli e-mail: danielmenintortelli@gmail.com Site: http://sites.google.com/site/danielmenintortelli/home 19/08/2014 Programação C# ASP.NET - Prof. MSc.

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Programação Orientada a Objetos Módulos 9/10/11 POO 2016/2017 História A OO surgiu no

Leia mais

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Unidade IV Unidade IV Herança e Composição: Herança simples. Composição.

Leia mais

Python Orientação a Objetos. Introdução à Programação SI2

Python Orientação a Objetos. Introdução à Programação SI2 Python Orientação a Objetos Introdução à Programação SI2 Herança Pessoa Aluno Professor Herança Animal Mamifero Ave Cachorro Gato Gavião Galinha Herança Uma classe pode herdar a definição de outra classe:

Leia mais

Sobrecarga, Sobreposição e Polimorfismo

Sobrecarga, Sobreposição e Polimorfismo Sobrecarga, Sobreposição e Polimorfismo José Gustavo de Souza Paiva Sobrecarga de Métodos Numa mesma classe, dois ou mais métodos podem ter o mesmo nome Desde que tenham tipos, quantidade e/ou ordem de

Leia mais

Orientação a objetos. Objetos ou Instâncias I

Orientação a objetos. Objetos ou Instâncias I Orientação a objetos Objetos ou Instâncias Métodos ou Mensagens Encapsulamento Classes Variáveis da Classe X Variáveis da Instância Métodos da Classe X Métodos da Instância Relacionamentos Identificando

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Herança Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Herança 1 Reutilização / Reuso São palavras-chave no conceito de herança; Reutilizar um código que já tenha sido escrito, e que já esteja

Leia mais

Linguagem de Programação. Diagrama de classes

Linguagem de Programação. Diagrama de classes Linguagem de Programação Diagrama de classes Joyce França Professora de Ciência da Computação - IFNMG 2 Agenda Diagrama de classes Herança Associação Agregação Exercícios 3 Diagrama de classes Mostra um

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

Capítulo 2. Orientação a Objetos

Capítulo 2. Orientação a Objetos Capítulo 2 Orientação a Objetos Princípios da Orientação a Objetos Os princípios da orientação a objetos afetam todo o processo de desenvolvimento de software: Seres humanos pensam em termos de substantivos

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

Parte IV. Linguagens de Programação. Relembrando da Última Aula... Empacotador de Préprocessadores. Primeiro Exemplo Usando Classes em C++

Parte IV. Linguagens de Programação. Relembrando da Última Aula... Empacotador de Préprocessadores. Primeiro Exemplo Usando Classes em C++ Linguagens de Programação Parte IV Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Introdução à Programação (Continuação) Relembrando da Última Aula... Ponteiros e strings Mais exemplos

Leia mais

Herança e Propriedades

Herança e Propriedades Herança e Propriedades 2013 O que veremos hoje? Herança e Propriedades Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Herança em POO Herança Herança

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Herança e Polimorfismo Msc. Paulo de Tarso F. Júnior 1 Projeto Orientado a Objetos O que desejam? Produção de projetos conceitualmente simples o bastantes para serem entendidos

Leia mais

Laboratório de Programação. Aula 2 Java 5COP088. Aula 2 Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Laboratório de Programação. Aula 2 Java 5COP088. Aula 2 Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr 5COP088 Laboratório de Programação Aula 2 Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Aula 2 Orientação a Objetos 1) Discussão 2) Encapsulamento 3) Herança 4) Polimorfismo 5) Sobrescrita

Leia mais

Tratamento de Exceções. Java Avançado. Tratamento de Exceções. Conceito de Exceções. Exemplo

Tratamento de Exceções. Java Avançado. Tratamento de Exceções. Conceito de Exceções. Exemplo Tratamento de Exceções Java Avançado Tratamento de Exceções Roberto Vedoato vedoato@joinville.udesc.br Introdução Princípios do tratamento de exceções em Java Cláusula try Cláusula catch Cláusula finally

Leia mais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

LP II / 1ª Lista de Exercícios

LP II / 1ª Lista de Exercícios LP II - 2013.2 / 1ª Lista de Exercícios Em todos os exercícios a aluno deve atender aos requisitos enunciados. Métodos e variáveis auxiliares podem ser criadas e usadas, desde que pertinentes. O aluno

Leia mais

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br Curso teórico: Orientação a Objetos Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br Objetivos Conhecer os conceitos fundamentais de orientação a objetos; Aprender a criar e utilizar

Leia mais

Programação Orientada a Objetos SANTOS, Rafael

Programação Orientada a Objetos SANTOS, Rafael Programação Orientada a Objetos SANTOS, Rafael Neste capítulo e nos seguintes serão usados intensamente os conceitos básicos de OO e da linguagem estudados até agora, com ênfase para os de número 1, 2

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Faculdade de Computação Aula Revisão Marcelo Zanchetta do Nascimento Material elaborado pela Profa. Ana Carolina Lorena - UNIFESP Desenvolvimento de Software ANÁLISE IMPLEMENTAÇÃO

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

Parte IV. Linguagens de Programação. Relembrando da Última Aula... Exemplos de Polimorfismo. Exemplo: Hierarquia Animal

Parte IV. Linguagens de Programação. Relembrando da Última Aula... Exemplos de Polimorfismo. Exemplo: Hierarquia Animal Linguagens de Programação Parte IV Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Introdução à Programação (Continuação) Relembrando da Última Aula... Herança Mais exemplos de programação

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada

Leia mais

Agenda. O que é um array. Declaração de um array. Instanciação de um array. Acessando os elementos de um array. O tamanho de um array (length)

Agenda. O que é um array. Declaração de um array. Instanciação de um array. Acessando os elementos de um array. O tamanho de um array (length) Arrays em Java 1 Agenda O que é um array Declaração de um array Instanciação de um array Acessando os elementos de um array O tamanho de um array (length) Arrays multi-dimensionais 2 O que é um Array?

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

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

Array em Java. Figura 1 - Exemplo de um array de inteiros

Array em Java. Figura 1 - Exemplo de um array de inteiros Array em Java 1. Objetivos Nesta lição, abordaremos Array em Java. Primeiro, definiremos o que é array e, então, discutiremos como declará-los e usá-los. Ao final desta lição, o estudante será capaz de:

Leia mais

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga Algoritmos e Programação II Aula 3 Sobrecarga *Adaptado do material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, com nomes

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Polimorfismo Mais exemplos

Leia mais

Fundamentos de Orientação à objetos

Fundamentos de Orientação à objetos Fundamentos de Orientação à objetos Prof. Gustavo Willam Pereira ENG10082 Programação II Créditos: Prof. Clayton Vieira Fraga Filho Objeto Um objeto, como um substantivo, pode ser uma pessoa, local ou

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