Desenvolvedores.Net - TechBlog

Tag Archives: Construtores e Destrutores

Definições – Básico (POO)

3
1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (10 votos, média: 5,00 de 5)
Loading...
17 de dezembro de 2010
Para um melhor entendimento deste Artigo veja o Índice (Programação Orientada a Objetos)
Nós, como seres humanos distinguimos estes objetos em três formas de pensamento: 

  • Diferenciação;
  • Distinção entre o todo e a parte;
  • Classificação;

Vemos nestas três formas, dentro da orientação a objetos, uma forma de diminuir a diferença semântica entre o que é real e o que é modelo.

O “homenzinho” acima é chamado de stickman.
É a representação dentro de um UseCase (UML)

O que é um objeto?
Podemos dizer que um objeto é algo quem tem características, ações, possui comportamento, uma identidade, distingui-se um do outro.
Os objetos podem ser físicos:
Um carro, uma casa, um pessoa, um cachorro …
Um conceito:
Um organograma, uma idéia …
Uma entidade:
Um botão, uma combobox, uma planilha Excel® …

O conjunto de ações, qualidades, as mudanças deste objeto influenciam no seu comportamento..
Podemos traduzir para a OO os termos, ações, qualidades, mudanças e comportamento da seguinte forma:

  • Ações:
    • O que o objeto faz, o verbo. Estes serão nossos Métodos.
      • Ex: Andar, Falar, Comer, Quebrar, Salvar.
  • Qualidades:
    • Serão nossos adjetivos, qualificam nossos objetos. Estes serão nossas Propriedades.
      • Ex: Cor, Tipo, Inquebrável, Esfomeado.
  • Mudanças:
    • Estas serão responsáveis por definir o Estado do nosso objeto.
    • Estes por sua vez podem se modificar ao longo do tempo.
      • Ex: Com fome, Andando, Quebrando, Comendo.
  • Comportamento:
    • O comportamento determina como este objeto responde às mudanças de suas qualidades e as ações que ele pode realizar.
      • Ex: João está com fome* porque é esfomeado**, logo ele tem que comer***.
        * com fome: Mudança de estado;
        ** esfomeado: Qualidade, adjetivo;
        *** comer: Ação, verbo
        Logo o comportamento do João pode modificar-se pelo fato de estar com fome.

Instância de um Objeto:
Imagine que temos o objeto Pessoa,  este objeto apenas representa uma pessoa, mas se quisermos dar uma identidade a este objeto temos que instanciá-lo, seria como dizer, trazer esta pessoa à vida, criar um novo objeto, um novo carro, um novo botão, uma nova planilha.

Classes:
Uma classe é a descrição (código) de um grupo de objetos com propriedades, comportamento, relacionamentos com outros objetos (associações e agregações).
Um objeto é uma instância de uma classe.

Modificadores deAcesso e Visibilidade:
Os modificadores, como o próprio nome diz, modificam as declarações de propriedades, métodos e classes, eles podem ser:

C# Java Descrição
Public Public Declaram queo método, propriedade ou classe é publica.
Isso quer dizer que está acessível a todos.
//declaração daclasse
public class Pessoa
{
//em uma propriedade
public string Nome { get; set; }

//em um método
public void Comer()
{
}
}
Private Private Declaram que o método, propriedade ou classe é privativo.
Isso quer dizer que está acessível apenas localmente.
Dentro do mesmo objeto.
//declaração daclasse
private class Pessoa
{
//em umapropriedade
private string Nome { get; set; }

//em um método
private void Comer()
{
}
}
Static Static Declaram quea classe não precisa ser instanciada.
Isso quer dizer que não é preciso criar um “novo” objeto,
podemos simplesmente chamar seus métodos e propriedades.
//declaração daclasse
public static class Pessoa
{
//em uma propriedade
public static string Nome { get; set; }

//em um método
public static void Comer()
{
}
}
Const Final Declara um variável constante.
Isso quer dizer que seuvalor não pode ser modificado.
public class Pessoa
{
public const string CPF = "000.000.000-00";
}
Sealed Final Uma classe “selada” não pode ser modificada nem herdada.

//declaração daclasse
public sealed class Pessoa
{
public string Nome { get; set; }

public void Comer()
{
}
}
Internal Package Apenas as classes que fazem parte do mesmo assembly
(executável, DLL) podem acessar esta classe ou método.
No caso do Java as que fazem parte do mesmo “Pacote”.
//na declaração daclasse
internal class Pessoa
{
//na declaração de uma propriedade
internal string Nome { get; set; }

//na declaração deum método
internal void Comer()
{
}
}
Protected Protected Apenas as classes filhas podem herdar estes métodos.
É visível apenas na classe pai e nas filhas.
Não são visíveis publicamente.
public class Pessoa
{
//na declaração de uma propriedade
protected string Nome { get; set; }

//na declaração deum método
protected void Comer()
{
}
}
Internal  Protected É a junção de Internal e Protected.
Isso quer dizer que apenas as classes do mesmo assembly
podemver seus métodos e herdar  suas características.
class Pessoa
{
//na declaração de uma propriedade
internal protected string Nome { get; set; }

//na declaração deum método
internal protected void Comer()
{
}
}
Abstract Abstract Declaram quea classe ou método será abstrato.
Isso quer dizer que o método deverá ser implementado na classe filha.
Classes abstratas não podem ser criados como
“novo objeto” só podem ser herdadas.

//na declaração daclasse
abstract class Pessoa
{
//na declaração de uma propriedade
public abstract string Nome { get; set; }

//na declaração de um método
public abstract void Comer();
}
Interface Interface Declara quea classe possui apenas a assinatura dos métodos e propriedades.
Todos os seus métodos e propriedades deverão ser implementados.

//na declaração da interface
public interface Pessoa
{
//interface apenas implementam a
//assinatura da propriedade
string Nome { get; set; }

//interface apenas implementam a
//assinatura dos métodos
void Comer();
}
Virtual Virtual Declara que o método/ propriedade pode ser sobrescrito (override)

//na declaração daclasse
public class Pessoa
{
//na declaração da propriedade
public virtual string Nome { get; set; }

//na declaração do método
public virtual void Comer() { }
}
Void Void Indica que o método não tem retorno.

public class Pessoa
{
//na declaração do método indica que
//não tem retorno
public virtual void Comer() { }

//Este método tem retorno não podemos
//usar o VOID e sim o tipo de retorno
public virtual Boolean Sonhar()
{
//retorna true se foi possível sonhar
return true;
}
}

Com isso temos uma visão geral dos modificadores mais comuns. Claro. Posso ter esquecido de alguns. 🙂
Estes modificadores podem ser combinados de acordo com a necessidade. Mas isso você irá aprender com o tempo, aqui o intuito é explicar o que são eles e para que servem.

Construtores e Destrutores:
O construtor é um método utilizado para inicializar os objetos da classe quando estes são criados.
Este método possui o mesmo nome da Classe e não tem nenhum tipo de retorno, nem mesmo void.
No construtor podemos iniciar todos os outros objetos e propriedades, ele será sempre chamada ao iniciar o objeto.

O destrutor é chamado quando o objeto é descarregado da memória.
Neste método podemos descarregar todos os outros objetos que usamos durante o tempo de vida da classe em memória

public class Pessoa
{
//o Nome da pessoa será iniciado quando construtor for chamado
public string Nome { get; set; }

//construtor sem parâmetros
public Pessoa()
{
//aqui o nome da pessoa é vazio
Nome = "";
}

//construtor com parâmetros
public Pessoa(string _nome)
{
//aqui o nome da pessoa é o mesmo do parâmetro _nome
Nome = _nome;
}

//aqui o destrutor
~Pessoa()
{
//podemos limpar os nossos objetos
Nome = null;
}
}

Atributo e Propriedade:
Muitas pessoas dizem que atributos e propriedades são às mesmas coisas. Eu costumo dizer que não.
Atributos são variáveis que guardam os valores das propriedades, e as propriedades são as qualidades de nossas classes visíveis ao mundo externo.
Veja:

public class Pessoa
{
//esta declaração é um atributo, pois armazena o valor da propriedade Nome
//normalmente são visíveis apenas local.
private string mNome = "";

//o Nome é uma propriedade.
//normalmente são públicas
public string Nome
{
// aqui usamos o atributo mNome para retornar o valor da propriedade
get { return mNome; }

// aqui usamos o atributo mNome para salvar o valor da propriedade
set { mNome = value; }
}
}

Métodos:
Os métodos serão os “verbos”, as ações que nossos objetos podem executar.

public class Pessoa
{
public void Andar()
{ }

public void Comer()
{ }

public void Falar()
{ }

public Boolean Sonhar()
{
return true;
}
}

Ver Índice

É isso aí pessoal 🙂
Até o próximo
♦ Marcelo

About Marcelo

Nascido em Juruaia/MG em uma fazenda de criação de búfalos, e residindo na região Sul do Brasil. Trabalha com desenvolvimento de aplicações desde os 17 anos. Atualmente é Arquiteto Organizacional na Unimake Software. Para saber mais ... http://desenvolvedores.net/marcelo []'s

Programação Orientada a Objetos (POO)

17
1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (12 votos, média: 5,00 de 5)
Loading...
13 de dezembro de 2010
Olá Pessoal.Agora vou iniciar uma série de artigos sobre Programação Orientada a Objetos (POO) ou Object-Oriented Programming (OOP).Na medida do possível irei mostrar como programar cada explicação em alguma linguagem.Este primeiro artigo irá servir como um índice para os outros, sempre que eu postar um item deste índice, irei modificar este artigo fazendo um link daqui para a explicação e vice-versa.Então vamos lá, mãos à obra e vamos ver o que teremos 🙂
É isso ai pessoal 🙂
Até o próximo
♦ Marcelo

About Marcelo

Nascido em Juruaia/MG em uma fazenda de criação de búfalos, e residindo na região Sul do Brasil. Trabalha com desenvolvimento de aplicações desde os 17 anos. Atualmente é Arquiteto Organizacional na Unimake Software. Para saber mais ... http://desenvolvedores.net/marcelo []'s