Programação orientada a objetos
FUNDAMENTAÇÃO
DE PROGRAMAÇÃO
Linguagem de Programação
• Objetivo: Demonstrar os conceitos iniciais
de programação orientada a objeto,
classe, herança e objeto com seus
respectivos atributos e métodos a partir do
ambiente Visual Studio, utilizando a
Programação orientada a objetos
• Fundamentação:
• Normalmente este paralelo(comparação) de ideias é suficiente para que um novato no
paradigma da programação orientada a objetos
tenha noção de programação estruturada e venha a entender os detalhes iniciais da orientação a
objetos. Assim, cria-se uma base para que os demais conceitos sejam então apresentados e entendidos ao seu tempo.
Programação orientada a objetos
• Comparação:
Programação Estruturada Programação Orientada a Objetos Nesse tipo de programação, quando há necessidade de trabalhar com dados heterogêneos usa‐se a estrutura de dados denominada registro. Nesse tipo de programação, quando há necessidade de trabalhar com dados heterogêneos, usa‐se a estrutura de dados denominada classe. Numa estrutura de registro é possível definir as variáveis (chamadas campos) que será os pontos de armazenamento dos dados. Numa estrutura de classe é possível definir as variáveis (chamadas de atributos) que serão os pontos de armazenamento de dados. Um registro permite apenas campos e toda a operação de consistência relacionada aos dados dos campos é tratada externamente. Uma classe permite atributos e toda a operação de consistência relacionada aos dados dos atributos pode ser realizada pelos métodos e assim ser tratada internamente. Sub‐rotinas são formadas por elementos descritos como funções, módulos, procedimentos, entre outras definições. Sub‐rotinas são formadas por elementos denominados métodos. A consistência de dados dos campos de um registro é operacionalizada por meio de sub‐rotinas que estão no código principal do programa. A consistência de dados dos atributos de uma classe é operacionalizada por meio de métodos (procedimentos ou funções) que podem estar no código da própria classe, ou no código do programa principal. Passagem de parâmetro entre sub‐rotinas ou mesmo como o programa principal. Passagem de mensagem entre métodos ou mesmo como o programa principal. Definição estática de variáveis. Definição de objetos via instância.Programação orientada a objetos
• Definição Operacional de uma classe:
• Uma classe é um tipo de dado definido pelo programador.
• Em uma classe é possível ainda ter associadas diversas sub-rotinas, que são os seus métodos, além dos campos que passam a ser seus
Exemplo:
Copiar o projeto CalculoMedia na
pasta compartilhada Programação
Orientada a objetos para o seu
respectivo computador e abrir no
Visual Studio 2013.
Programação orientada a objetos
• Definição Operacional de uma classe:
• No momento se tem uma classe denominada CadAluno, a qual possui como atributos
publicos NOME e NOTA.
• O método(ação) da classe CadAluno e o
CalcMedia() que realiza o calculo da media de 4 notas.
Programação orientada a objetos
• Definição Operacional de uma classe:
• Criando uma classe:
• Para que uma classe seja definida no ambiente
Visual C# acesse o comando no menu Project/Add Class, vai ser aberto uma caixa de dialogo Add New Item, onde você deve informar o nome da classe e clicar no botão adicionar, conforme figura a seguir.
Programação orientada a objetos
• Definição Operacional de uma classe:
Programação orientada a objetos
• Definição Operacional de uma classe:
• Para usar uma classe, é necessário instanciar um objeto, em que se especificam os acessos às
suas propriedades(atributos e métodos).
• Assim sendo, está definido a linha de código:
CadAluno ALUNO = new CadAluno();
• Encontra-se entre chaves da classe Program dentro do método Main(), na guia Program.cs, como indica o projeto CalculoMedia.
Programação orientada a objetos
• Definição Operacional de uma classe:
• A instrução CadAluno ALUNO = new
CadAluno(); permite criar um objeto de nome ALUNO a partir da instância de uma classe
denominada CadAluno. Desta forma, o objeto
ALUNO passa a ter acesso aos recursos
existentes na classe CadAluno que neste caso são as propriedades NOME e NOTA.
Programação orientada a objetos
• Definição Operacional de uma classe:
Programação orientada a objetos
Programação orientada a objetos
• Definição Operacional de uma classe:
• A referência a ser feita para acessar os objetos de uma determinada classe é idêntica à forma utilizada para acessar os campos das variáveis compostas, neste caso o objeto. Deve-se utilizar o símbolo de ponto como separador do nome da variável instanciada e o campo definido na classe de objetos e quando em uso, das
propriedades. Note em seguida a utilização do objeto ALUNO e a indicação das propriedades
NOME, NOTA[1], NOTA[2]. NOTA[3] e NOTA[4].
Programação orientada a objetos
• Definição Operacional de uma classe:
• Exemplo:
ALUNO.NOME = “Antonio Carlos da Silva”; ALUNO.NOTA[0] = 9.5;
ALUNO.NOTA[1] = 9.5; ALUNO.NOTA[2] = 9.5; ALUNO.NOTA[3] = 9.5;
Programação orientada a objetos
Programação orientada a objetos
• Criação do Método de uma Classe:
– Uma classe, como já exposto, é o conjunto de propriedades e também de métodos a serem definidos (instanciados) a um objeto. Em
particular, os métodos são elementos
operacionais que dão funcionalidade ao objeto. – Para exemplificar este conceito, temos a função
que retorna o valor da média das notas
bimestrais. A função desenvolvida e um método da classe CadAluno. Veja o trecho de código a seguir indicado:
Programação orientada a objetos
Programação orientada a objetos
• Criação do Método de uma Classe:
– No trecho de código anterior, além do método
CalcMedia, estão as variáveis locais SOMA e MEDIA, ambas do tipo float, usadas para
somar e guardar o valor da média calculada pelo método CalcMedia.
– Para usar esse recurso, é necessário no código do programa da guia Program.cs a linha
indicada em negrito a seguir: – ALUNO.CalCMedia();
Programação orientada a objetos
Programação orientada a objetos
• Visualização dos dados:
– A partir deste trecho do código que será feito a saída dos dados:
Programação orientada a objetos
• Conclusão de classe e objeto no exemplo:
– Neste exemplo foi aplicada a programação
orientada a objeto, pois foi definida uma classe, neste caso CadAluno, e foi instanciado a partir dela um objeto, neste caso, ALUNO contendo as propriedades NOMES, NOTAS e o método
Programação orientada a objetos
• Aplicação de Herança:
• O conceito de herança está relacionado ao fato de uma classe herdar de outra classe suas
características. Assim sendo, uma classe-filho
(subclasse) herda da classe-pai(superclasse)
todos os atributos e métodos que sejam a ele públicos. Este conceito, se bem aplicado, pode proporcionar um tempo de ganho no
desenvolvimento de novos sistemas de forma maior, pois não é necessário "reinventar a roda".
Programação orientada a objetos
• Aplicação de Herança:
• O conceito de herança está relacionado ao fato de uma classe herdar de outra classe suas
características. Assim sendo, uma classe-filho
(subclasse) herda da classe-pai(superclasse)
todos os atributos e métodos que sejam a ele públicos. Este conceito, se bem aplicado, pode proporcionar um tempo de ganho no
desenvolvimento de novos sistemas de forma maior, pois não é necessário "reinventar a roda".
Programação orientada a objetos
• Aplicação de Herança:
• Como exemplo de herança considere uma
classe denominada SalaAula(que será a classe-pai) com a propriedade(atributo) SALA, e a
classe CadAluno já existente que será a classe filha, a qual herdará da classe-pai a propriedade SALA. Assim sendo, considere o trecho do
programa na guia CadAluno.cs acima da classe CadAluno e observe detalhadamente os trechos em negrito no código seguinte:
Programação orientada a objetos
• Aplicação de Herança:
class SalaAula {
public string SALA; }
class CadAluno : SalaAula {
public string NOME;
public float[] NOTA = new float[4]; public float CalcMedia()
{
byte I;
float SOMA, MEDIA; SOMA = 0;
for (I = 0; I <= 3; I++)
SOMA = SOMA + NOTA[I]; MEDIA = SOMA / 4;
return MEDIA; }
Programação orientada a objetos
• Aplicação de Herança:
• Para especificar a herança, usa-se o símbolo de dois pontos (:) que deve ser posicionado à frente do nome da classe que herdará todas as
propriedades e métodos definidos. Desta forma a classe CadAluno passa a ter acesso à
propriedade SALA da classe SalaAula como se a propriedade SALA fosse da própria classe
Programação orientada a objetos
Exercícios
Exercícios
Programar no C# as classes conforme o
diagrama de classe dos animais, utilizando os conceitos de programação orientada a objetos com herança.
Utilizar um menu no método Main() para poder escolher criar os objetos das classes do
diagrama: Ave, Cães, Gatos e Repteis. E
depois apresentar opções para preencher os atributos e logo após apresentar estes
atributos. Desafio para quem terminar os
atributos e inserir os métodos e demonstrar.