Você está na página 1de 39

Complexo Escolar Privado Tchinhungo

Técnicas de Linguagens de Programação


11ª Classe

As Características de Fundamentos
da Programação Orientada a Objetos

Prof: Eng. Américo Euxilio Batalha Kuombola


Luanda - 2023
Introdução
C# (CSharp) é uma linguagem de programação orientada a objetos
criada pela Microsoft, faz parte da sua plataforma.Net. A
companhia baseou C# na linguagem C++ e Java.
História A linguagem C# foi criada junto com a arquitetura .NET.
Embora existam várias outras linguagens que suportam essa
tecnologia (como VB.NET, C++, C#), C# é considerada a
linguagem símbolo do .NET pelas seguintes razões:
• Foi criada praticamente do zero para funcionar na nova
plataforma, sem preocupações de compatibilidade com código
de legado.
• O compilador C# foi o primeiro a ser desenvolvido. * A maior
parte das classes do .NET Framework foram desenvolvidas em
C#.
AS CARACTERÍSTICAS DE FUNDAMENTOS
DA PROGRAMAÇÃO ORIENTADA AOS OBJETOS
‘POO’
As características de Fundamentos da
programação orientada a objetos
As características de Fundamentos da
programação orientada a objetos
As características de Fundamentos da
programação orientada a objetos
Classe
 Uma classe funciona como uma “receita” para criar objetos. Inclusive,
vários objetos podem ser criados a partir de uma única classe. Assim
como várias casas ou prédios poderiam ser construí dos a partir de
uma única planta; ou vários bolos poderiam ser preparados a partir
de uma única receita; ou vários carros poderiam ser construídos a
partir de um único projeto.
Classe
O modificador de visibilidade
Pode estar presente tanto para atributos como para métodos. Em
princípio, três categorias de visibilidade podem ser definidas:
 público, denotado em UML pelo símbolo +: nesse caso, o
atributo ou método de um objeto dessa classe pode ser acessado
por qualquer outro objeto (visibilidade externa total);
 privativo, denotado em UML pelo símbolo -: nesse caso, o
atributo ou método de um objeto dessa classe não pode ser
acessado por nenhum outro objeto (nenhuma visibilidade
externa);
 protegido, denotado em UML pelo símbolo #: nesse caso, o
atributo ou método de um objeto dessa classe poderá ser acessado
apenas por objetos de classes que sejam derivadas dessa através do
mecanismo de herança
Classe
Classe
A classe C# Conta é declarada utilizando a palavra reservada class. No corpo dessa
classe, são declaradas três variáveis que são os atributos que os objetos possuirão.
Como a linguagem C# é estaticamente tipada, os tipos dos atributos são definidos
no código.

Os atributos saldo e limite são do tipo double, que permite armazenar números com
casas decimais, e o atributo numero é do tipo int, que permite armazenar números
inteiros. O modificador public é adicionado em cada atributo para que eles possam
ser acessados a partir de qualquer ponto do código.
Discutiremos sobre esse e outros modificadores de visibilidade em capítulos
posteriores.
As características de Fundamentos da
programação orientada a objetos
Métodos
No banco, é possível realizar diversas operações em uma
conta: depósito, saque, transferência, consultas e etc. Essas
operações podem modificar ou apenas acessar os valores
dos atributos dos objetos

Os métodos definem as funcionalidades da classe, ou seja,


o que será possível fazer com objetos dessa classe. Cada
método é especificado por uma assinatura, composta por
um identificador para o método (o nome do método), o
tipo para o valor de retorno e sua lista de argumentos,
sendo cada argumento identificado por seu tipo e nome.
Métodos
Métodos

public static string Adicionar_Curso()


{
string res = string.Empty;
Console.WriteLine("Adicionar_Curso METODO");
Console.WriteLine(100*999);
return res;
}
Tipos de Dados em C#
C# (SHARP)
C# (SHARP)
C# (SHARP)
Exercício em C# (SHARP)

1. Criar um programa que calcule a media final de duas provas feitas por Aluno, o
Programa deve:
*Imprimir Nome do Aluno
* A Disciplina
*A primeira prova
*A Segunda Prova
*A Media Final
--------------------------------------------------------
Exercício em C# (SHARP)

2. Criar um programa para saber a idade de Uma Pessoa, o programa deve Solicitar o
Ano de Nascimento e o Nome da Pessoa.
-------------------------------------------------------

3.Criar um Programa que leia o Nome , Apelido e Imprime Primeiro o Apelido


Acompanhado de uma Virgula Seguida o Nome
-------------------------------------------------------

4. Criar um Programa que Leia um número e exiba o seu sucessor


-------------------------------------------------------

5. Criar um Programa que Leia um número e exiba o seu antecessor


As características de Fundamentos da
programação orientada a objetos
Destrutores
Um destrutor é utilizado para destruir instâncias de uma classe e possui as seguintes
propriedades:
• Não pode ser defiido em structs, somente em classes.
• Uma classe pode ter somente um destrutor.
• Destrutores não podem ser herdados nem sobrecarregados.
• São invocados automaticamente.
• Não possuem modifiadores ou parâmetros.
• Um destrutor é declarado com o mesmo nome da classe, mas precedido do caractere ~.

Exemplo:
public class Livro {
~Livro() {
// Recursos para liberar aqui;
}
}
Destrutores
O exemplo a seguir demonstra o funcionamento de um destrutor. A classe Autor implementa, por
meio de herança, a classe Livro.
// Arquivo de exemplo: destrutores.cs
// Para compilar use: csc destrutores.cs
using System;
public class Livro {
~Livro() {
Console.WriteLine(“Libera recursos da classe base”);
}
}
public class Autor:Livro {
~Autor() {
Console.WriteLine(“Libera recursos da classe derivada Autor”);
}
}
class TesteDestrutor {
static void Main() {
Autor aut = new Autor();
}
}
Destrutores
O exemplo retorna:
Libera recursos da classe derivada Autor
Libera recursos da classe base
O programador não tem controle sobre o destrutor, ou seja, o coletor de lixo do .NET
Framework decide o melhor momento para liberar os recursos. Para forçar a liberação
imediata dos recursos utilizados, podemos invocar de forma explicita o coletor de lixo.
Exemplo:
GC.Collect();
Obs: devemos ter cuidado especial com a performance da aplicação. Chamadas
excessivas ao coletor de lixo têm reflxo negativo na performance da aplicação. Deixe
o coletor de lixo cuidar da liberação dos recursos que não estão sendo utilizados pelo
programa.
Recursos caros, que consomem muita memória, ciclos de CPU e largura de banda,
como conexões com banco de dados, redes, acesso a arquivos e internet etc., devem
liberar os recursos utilizados o mais rápido possível e de forma explícita, usando os
métodos Close ou Dispose
ENCAPSULAMENTO
Encapsulamento consiste na separação de aspectos internos e
externos de um objeto. Este mecanismo é utilizado amplamente para
impedir o acesso direto ao estado de um objeto (seus atributos),
disponibilizando externamente os métodos que acessam (getters) e
alteram (setters) estes estados. Exemplo: você não precisa conhecer os
detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do
telefone encapsula esses detalhes, provendo a você uma interface mais
amigável (os botões, o monofone e os sinais de tom)
Em pouca palavras Herança consiste em um objecto herdar as
caraterísticas de outrem.
Exemplo de Herança
Exemplo de Herança
Exemplo de Herança
Exemplo de Herança
As características de Fundamentos da
programação orientada a objetos

A capacidade de tratar objetos criados a partir das classes


específicas como objetos de uma classe genérica é chamada
de polimorfismo.
Comentário
Usamos comentários para descrever partes complexas de
código, a fim de facilitar a manutenção de quem elaborou o
software e de terceiros. Comentários não são interpretados
pelo compilador C#.
Podemos definir como um comentário: textos, caracteres
especiais, trechos de código, números etc. O C# nos permite
definir comentários de duas maneiras: usando barras duplas
(//) ou os caracteres /* e */.
Barras duplas (//) convertem o restante da linha em
comentários: //
Método Main()
Um programa C# deve conter um método Main, que controla o início e o fim.
Nele você cria objetos e executa outros métodos. Um método Main pode não
retornar valores.
static void Main()
{ // ... }
ou retornar um valor inteiro (int):
static int Main()
{ // ... return 0; }
Com ambos os tipos (void ou int), o método Main pode conter parametro
static void Main(string[] args)
{ // ... } ou static int Main(string[] args)
{ // ... return 0; }
Windows Form(Desktop)
 Plataforma Windows Forms ???
 …livro
 …Consultar
 A vantagem de usar o Windows Forms é que tudo é
programado para a cessar directamente do computador
pessoal do usuário. Os dados específicos como número da
placa de rede, número do HD e outros podem ser a cessados
de forma simples e directa. Acessar um scanner, por
exemplo, fica fácil usandoWindows Forms.

Não Gosto de Historia Vamos…


Alterando o formulário inicial de um projeto
…Voltaremos falar
Esse é o primeiro form aberto ao executarmos um projeto, para
alterar qual será esse formulário é necessário abrir o arquivo
program.cs e mudar a instância de form passada para o método
Run([Instância form]) da classe application . Se o form criado
junto com o projeto não tiver sido renomeado estará assim:

Application.Run(new Form1());
Caso contrário no lugar de Form1 estará o nome atual do Form
que foi criado junto com o projeto. Altere para o nome do
formulário que deseja que seja inicializado.

Você também pode gostar