Programaçã0 2 - Aula 1 - Introdução Classes e Objectos
Programaçã0 2 - Aula 1 - Introdução Classes e Objectos
Faculdade De Engenharia
Curso De Engenharia Informática
2º Semestre
2º ano
Programação II
2
Como surgiu o paradigma de orientação a
objecto
Linguagem de máquina
linguagem de máquina ou Assembly
Programação estruturada
Final da década de 50
Programação modular
Actualização natural da programação estruturada
conceito de sub-rotinas
Programação Orientada a Objecto
Unidades de software chamadas de objectos
3
Programação orientada a objecto
O que é POO?
• É um paradigma de programação
• Trabalha com objectos e interacção entre eles
• Outra terminologia: Modelagem orientada a objecto
4
Principais vantagens da POO
• Confiabilidade
• Rápido desenvolvimento
• Facilidade de manutenção
• Facilidade em criar novas versões de aplicativos
• Reusabilidade (Reutilização)
Porém….
• Peso
• Mais esforço na modelagem
5
Conceitos básicos da linguagem C#
Namespaces
Os namespaces são usados no C# para organizar e prover um nível de separação de
código fonte. Considerá-se como um “container” que comporta outros namespaces,
classes, interface e outros elementos.
Normalmente um namespace pode conter os seguintes membros:
• Classes
• Interfaces
• Estruturas
• Delegates
7
Classes e Objectos
Os fundamentos dos tipos de dados primitivos que são intrínsecos ao C#,
tais como int, double, float, bool, etc., sustentam a programação
estruturada, estenderam-se e permitiram aos que programadores
definirem os seus próprios tipos de dados, criando-se a essência da
programação orientada a objectos (POO).
8
Classes e Objectos
Classe
Uma classe é uma estrutura de dados que define, em abstracto, os atributos e as
funcionalidades de uma família de objectos.
10
Variáveis de instante e variáveis estáticas
Os atributos ou propriedade dos objectos são variáveis de instante. A atribuição de
valores ou a leitura dos seus valores têm de ser feitas através do respectivo objecto.
11
Variáveis públicas, privadas e protegidas
Tanto as variáveis de instante como as variáveis estáticas podem ser public, private,
protected, internal ou protected internal, consoante o seu âmbito de atuação ou a sua
visibilidade.
Exemplo:
Private int Código
Public String nome
Protected Static int quantidade
• Public – As variáveis deste tipo são manipuláveis por qualquer método de qualquer classe, isto
é, os seus valores podem ser lidos, alterados ou escritos por qualquer método de qualquer
classe;
• Protected – As variáveis deste tipo são manipuláveis por qualquer método da classe que as
criou ou de qualquer classe que derive desta;
• Private – As variáveis deste tipo só são manipuláveis pelos métodos da classe que as criou, isto
é, os seus valores só podem ser lidos ou alterados pelos métodos da sua própria classe 12
Métodos
As classes definem métodos que implementam as funcionalidades dos objectos.
Um método é uma função ou procedimento cuja assinatura tem o seguinte
formato:
• Âmbito ou visibilidade;
• Palavra reservada static se o método for estático;
• Parâmetro de saída se o método for uma função ou void se o método for um
procedimento;
• Nome do método;
• Lista de parâmetros de entrada
13
Métodos de instante e métodos estáticos
Os métodos de instante definem funcionalidades dos objectos, portanto, só podem
ser invocados se forem associados aos respectivos objectos
Exemplo:
public int Ponderacao(int W){
return (int) Math.Round(4/W * UC, 0)
}
Os métodos estáticos são aqueles que fazem parte da classe, mas que não se referem aos objectos.
Por exemplo, uma classe pode conter métodos para atribuir valores ou imprimir os valores das
variáveis estáticas.
Exemplo:
Considerando ContarDisciplina
public static int LerContador(){
como sendo uma vairável estática
return ContaDisciplinas
}
•Classe Pessoa: Contém dois atributos (ou propriedades) Nome e Idade, um construtor que
inicializa esses atributos e dois métodos: ExibirInformacoes() (que imprime os dados) e
FazerAniversario() (que aumenta a idade e imprime uma mensagem).
•Main: Cria um objecto da classe Pessoa chamado pessoa1, inicializa com um nome e idade, e
chama os métodos para exibir e actualizar as informações.
15
namespace ExemploClasse
{
// Definindo a classe 'Pessoa'
class Pessoa
{
// Atributos (propriedades)
public string Nome { get; set; }
public int Idade { get; set; }
// Construtor
public Pessoa(string nome, int idade)
{
Nome = nome;
Idade = idade;
}
class Program
{
static void Main(string[] args)
{
// Criando um objeto da classe 'Pessoa'
Pessoa pessoa1 = new Pessoa("João", 25);
17