• Nenhum resultado encontrado

Programação Orientada a Objetos OOP. IFES Campus Vitória Engenharia Elétrica Professor: Danilo A. Silva

N/A
N/A
Protected

Academic year: 2021

Share "Programação Orientada a Objetos OOP. IFES Campus Vitória Engenharia Elétrica Professor: Danilo A. Silva"

Copied!
26
0
0

Texto

(1)

Programação Orientada a Objetos

OOP

IFES – Campus Vitória

Engenharia Elétrica

2015-2

(2)

Sobre a disciplina

• Carga horária : 60 horas (30 teóricas e 30 práticas)

• Material do curso estará disponibilizado em

ftp://ftp.ifes.edu.br/Cursos/EngenhariaEletrica/Danilo/ELE-OOP/

• Livro guia: Head First C#, 3rd Edition

– Disponível em http://it-ebooks.info/book/2885/

• Livros de suporte:

– C# in Depth, 3rd Edition (http://it-ebooks.info/book/3794/)

– Microsoft Visual C# 2013 Step by Step (http://it-ebooks.info/book/3010/)

• Também disponível em português : I.S.B.N. 9788582602096

– C# in Depth, 3rd Edition (http://it-ebooks.info/book/3010/)

• E-mail:

danilo@ifes.edu.br

(3)

Conteúdo da disciplina

• Introdução a programação orientada a objetos (OOP)

• Introdução a linguagem de programação C# (C-Sharp)

• Introdução ao ambiente de desenvolvimento integrado

do Microsoft Visual Studio 2015

• Elementos básicos da linguagem C#

• Tipos de dados, variáveis, comando de atribuição, conversão

de tipos, expressões, operadores aritméticos, lógicos e de

bit-a-bit (bitwise)

• Ponto de entrada de um programa

• Comandos condicionais

(4)

Conteúdo da disciplina

• Programação orientada a objetos em C# (básica)

– Namespaces – Classes

– Objetos (instâncias, variáveis de referência e garbage-collector) – Campos

– Métodos – Propriedades

(5)

Conteúdo da disciplina

• Programação orientada a objetos em C# (intermediária)

– Encapsulamento – Níveis de proteção

– Construtores (constructors)

– Herança, subclasses e superclasses

– Sobrescrita de métodos (method override) – Interfaces

 Herança de interfaces

 Verificação de pertinência  Upcasting e downcasting – Modificadores de acesso

– Classes abstratas e métodos abstratos – Poliformismo

(6)

Conteúdo da disciplina

• Programação orientada a objetos em C# (intermediária)

– Coleções genéricas

 Enumerações (enums)

 Coleções genéricas do tipo List

 Manipulação de listas, loops foreach, comparação e ordenação  Overload de métodos

 Interface IEnumerable

 Coleções do tipo dicionário (Dictionary)  Coleções do tipo Stack e Queue

– Streaming (classe Stream e subclasses)

 Entrada/Saída em arquivos (classes StreamWriter e StreamReader)  Manipulação de arquivos e diretórios

 Uso do comando using  Serialização de objetos

(7)

Conteúdo da disciplina

• Programação orientada a objetos em C# (avançada)

– Construção aplicativos para Windows 8.1 (Windows Store Apps)  Uso do XAML (Extensible Application Markup Language)  Data binding

 Static resources  Data templates

 Operador Await e modificador Async  Classe FileIO

 Data contract

– Tratamento de exceções (erros) – LINQ (Language Integrated Query) – Programação orientada a eventos

(8)

Orientação a objetos - História

• Tem sua origem nos anos 60 na Noruega, com Kristen Nygaard e Ole-Johan Dahl, no Centro Norueguês de Computação. Através da linguagem Simula 67, foram introduzidos os conceitos de classe e herança

• O termo Programação Orientada a Objetos foi criado por Alan Kay, autor da linguagem de programação Smalltalk, nos laboratórios da Xerox

• Alan Kay pensou em como construir um sistema de software a partir de agentes autônomos que interagissem entre si, estabelecendo os seguintes princípios da orientação a objetos:

– Qualquer coisa é um objeto.

– Objetos realizam tarefas através da requisição de serviços. – Cada objeto pertence a uma determinada classe.

– Uma classe agrupa objetos similares.

– Um classe possui comportamentos associados ao objeto. – Classes são organizadas em hierarquias.

(9)

Orientação a objetos - Conceitos

• Orientação a objetos : modelo de análise, projeto e

programação baseado na composição e interação entre diversas

unidades de software chamadas de objetos

• Objetiva reduzir "gap semântico“, ou aproximar o mundo real

do mundo virtual

• Implementa um conjunto de classes que definem os objetos

presentes no sistema de software

• Cada classe determina o comportamento (definido nos

métodos) e estados possíveis (atributos) de seus objetos, assim

como o relacionamento com outros objetos

• Linguagens: C++, C♯, VB.NET, Java, Object Pascal, Objective-C,

Python, SuperCollider, Ruby e Smalltalk

(10)

Orientação a objetos - Conceitos

Tentar simular o mundo real dentro do computador,

através de objetos.

Cabe ao programador moldar o mundo dos objetos, e

explicar para estes objetos como eles devem interagir

entre si

Os objetos "conversam" uns com os outros através do

envio de mensagens

Uma mensagem é um pequeno texto que os objetos

conseguem entender

Junto com algumas dessas mensagens ainda é possível

passar algumas informações para o objeto (parâmetros)

(11)

Orientação a objetos - Conceitos

Classe é uma abstração que define um tipo de objeto e o

que objetos deste determinado tipo tem dentro deles

(seus atributos) e também define que tipo de ações esse

tipo de objeto é capaz de realizar (métodos).

Ex: Classe Cachorro

Propriedades: Nome (string), Raça (string), Altura (float), Peso

(float), idade (int), Comprimento (float), etc.

Métodos: Latir, Pular, Comer, Dormir, Brincar, Falar, etc.

(12)

Orientação a objetos - Conceitos

Classes podem ser derivadas de outras classes,

formando uma hierarquia, de classes e subclasses

Ex: Classe Animal

Subclasses de Animal: Mamífero, Peixe, Réptil,

Inseto, Pássaro, etc.

 Subclasses de Mamífero: Homem, Rato, Baleia,

Cachorro, etc.

 Subclasses de Réptil: Jacaré, Crocodilo, etc.

Fonte: http://www.hardware.com.br/artigos/programacao-orientada-objetos/

(13)

Orientação a objetos - Conceitos

Objetos são instâncias de Classes

Ex: Classe Cachorro

Objetos: Rex, Grifo, Frodo, Pingo, etc.

(14)

Orientação a objetos - Conceitos

Métodos são as ações que uma Classe pode realizar.

Quando um objeto receber uma mensagem de algum

outro objeto contendo o nome de um método, a

ação correspondente a este método será executada.

Exemplo: Um objeto da classe Dono envia uma

mensagem para um objeto do tipo Cachorro falando

"sente", o cachorro irá interpretar esta mensagem e

executar todas as instruções que foram especificadas

na classe Cachorro dentro do método sente.

(15)

Orientação a objetos - Conceitos

Atributos são variáveis que estarão dentro de

cada um dos Objetos de uma Classe, e podem

ser de qualquer tipo.

Exemplo : A classe Cachorro poderá ter o

atributo nome que será do tipo String.

Assim, cada Objeto desta classe terá uma

variável própria chamada nome, que poderá ter

um valor qualquer (Rex, Frodo, Pingo, ...).

(16)

Orientação a objetos - Conceitos

Construtor : serve para inicializar os atributos e é

executado automaticamente sempre que você cria um

novo objeto.

Exemplo:

Pessoa joao = new Pessoa( "João", 13 );

O código acima gera um novo objeto referenciado pela

variável joao que é do tipo Pessoa e contem os valores

"João" como nome e 13 como idade

(17)

Orientação a objetos - Conceitos

Herança: Habilidade que uma classe possui de

estender todas as características de outra e

adicionar algumas coisas a mais

 Uma classe pode sempre ter vários filhos, mas

normalmente as linguagens de programação orientadas

a objetos exigem que cada classe filha tenha apenas uma

classe pai

Exemplo: a classe SerHumano é uma especialização (ou

subclasse) da classe Animal (também chamada de

superclasse)

(18)

Orientação a objetos - Conceitos

Classe abstrata é uma classe que representa uma

coleção de características presentes em vários tipos

de objetos, mas que não existe e não pode existir

isoladamente.

Exemplo: Não faz sentido criar objeto da classe Animal

(abstrata) mas das subclasses (concretas) que a estendem,

como Cachorro, Gato, Papagaio, etc.

Uma classe abstrata sozinha é completamente inútil, já que

não podemos instanciar um objeto desta classe!

(19)

Orientação a objetos - Conceitos

Poliformismo: um mesmo tipo de objeto, sob certas

condições, pode realizar ações diferentes ao

receber uma mesma mensagem

Exemplo:

UML

(20)

Orientação a objetos - Conceitos

Poliformismo (cont.)

Classe Animal {

método fale() { imprimaNaTela(" Eu sou mudo! "); }

}

...

Classe Gato {

Método fale() { imprimaNaTela(" Miaaaaaauuuuuu! "); }

}

...

Classe Cachorro {

Método fale() { imprimaNaTela(" Au au au! "); }

}

(21)

Orientação a objetos - Conceitos

Poliformismo (cont.)

// Criamos um array com 100 posições que armazena

objetos do tipo Animal

Animal[] listaDeAnimais = new Animal[100];.

// Criamos um novo objeto do tipo Cachorro com o

nome Frodo e armazenamos no array

listaDeAnimais[0] = new Cachorro("Frodo");

// Criamos um novo objeto do tipo Gato com o nome

Alan e armazenamos no array

listaDeAnimais[1] = new Gato("Alan");

(22)

Orientação a objetos - Conceitos

Poliformismo (cont.)

// Cada elemento do Array irá“falar” de modo

// diferente dependendo de ser Gato, Cachorro,

etc.

int cont;

para cont de 0 a 99 faça {

listaDeAnimais[cont].fale();

}

(23)

Orientação a objetos - Conceitos

Outros conceitos importantes serão aprendidos ao

longo do curso:

 Encapsulamento

 Interfaces

(24)

Linguagem C#

Características

Membro das linguagens da

plataforma .NET

Simples, robusta e escalável

Fortemente tipada

Independente de hardware

Criada pelo dinamarquês Anders

Hejlsberg, criador to Turbo Pascal e

do Borland Delphi (object Pascal)

Padronizada pela ECMA-334 e ISO

(ISO/IEC 23270)

Fonte : https://pt.wikipedia.org/wiki/C_Sharp

(25)

Para aula

• Criar conta na Microsoft, no domínio

outlook.com, live.com ou hotmail.com

• Entrar no Visual Studio 2015 e validar sua

conta na Microsoft para registrar-se como

desenvolvedor de software

• Baixar livro guia Heads First C# (

http://it-ebooks.info/book/2885/

)

• Iniciar aplicação de exemplo do capítulo 1 do

livro-guia (Save the Humans)

(26)

Para casa

• Assistir Treinamento da Microsoft em Visual

C# do channel9, da parte 1 a 6:

https://channel9.msdn.com/Shows/Treiname

nto-da-Linguagem-Visual-CS

• Instalar o Visual Studio 2015 Community em

www.visualstudio.com

• Terminar aplicação de exemplo do capítulo 1

do livro-guia (Save the Humans)

Referências

Documentos relacionados

De fato, a aplicação das propriedades da regra variável aos estudos lingüísticos além da fonologia não constitui assunto tranqüilo, seja porque a variável passa a ser

• O Java ME fornece um ambiente para aplicativos em execução em uma grande variedade de dispositivos móveis e integrados, como:. – Telefones celulares

– Tipo de dados que o objeto armazena, ou seja, os estados possíveis que ele pode assumir (atributos) – Tipos de operações que podem ser executadas pelo. objeto, ou seja, o

para o usuário digitar um nome; pega o valor digitado e altera na variável nome do objeto da Conta Bancária, através do método Alterar Nome.. Realiza saque/depósito, e depois

– Crie um construtor parametrizado inicializando todas as variáveis com os valores recebidos dos parâmetros. – Crie um construtor default (Inicializando as variáveis da

• Diferentes componentes de um sistema não devem revelar detalhes internos de suas..

Há críticas quanto ao uso de um valor fixo de degradabilidade da PB para os alimentos, pois, em função do tempo de retenção dela no rúmen, a degradabilidade pode

A...(razão social), por seu(s) representante(s) legal(is), interessada em participar do PREGÃO Nº:00006/2016 - FSP, da:Faculdade de Saúde Pública, declara, sob as penas da lei,