| 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:
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.
|
| 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;
}
}
É isso aí pessoal ![]()
Até o próximo
♦ Marcelo













'


Ótimo a explicação sobre orientação de obejtos. Fácil a compreensão para o meu caso que não tem conhcimento profundo sobre o assunto.
ESSA FOI UMA DAS MELHORES DEFINIÇÕES SOBRE POO QUE EU ENCONTREI NA NET, BEM SIMPLES E OBJETIVA, MUITO FÁCIL DE ENTENDER.