# data[].attributes.body
Encapsulamento é a técnica que faz com que detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos para os objetos. Por conta dessa técnica, o conhecimento a respeito da implementação interna da classe é desnecessário do ponto de vista do objeto, uma vez que isso passa a ser responsabilidade dos métodos internos da classe.

Assim que uma classe é criada, seu código e seus dados, os quais são chamados de membros da classe, são determinados. Esses dados recebem o nome de variáveis membro ou variáveis de instância. Já o código tem outra função de formar os métodos, os quais também podem ser denominados como métodos membro.

Tendo em mente que os métodos e as variáveis de uma classe podem ser definidos como públicos ou privados, temos a seguinte situação:

Tudo o que o usuário externo precisa conhecer a respeito de uma classe encontra-se em propriedades ou métodos declarados como públicos (public).

Somente os códigos membros da classe são capazes de acessar seus métodos e variáveis privados. Isso garante que não ocorrerão ações inadequadas, mas exige que a interface pública seja planejada com cautela para que o funcionamento interno da classe não seja muito exposto.

# data[].attributes.attachment_link.readable_text
Artigos .NET Conceitos – Encapsulamento: Programação Orientada a Objetos

Olá pessoal, neste artigo veremos os principais conceitos sobre Encapsulamento. Acompanhem:

Encapsulament é a técnica que faz com que detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos para os objetos. Por conta dessa técnica, o conhecimento a respeito da implementação interna da classe é desnecessário do ponto de vista do objeto, uma vez que isso passa a ser responsabilidade dos métodos internos da classe.

Assim que uma classe é criada, seu código e seus dados, os quais são chamados de membros da classe, são determinados. Esses dados recebem o nome de variáveis membro ou variáveis de instância. Já o código tem outra função de formar os métodos, os quais também podem ser denominados como métodos membro.

Os métodos presentes em um programa desenvolvido em C# são responsáveis por determinar a maneira como serão utilizadas as variáveis membro, o que indica que os métodos cuja função é operar sobre os dados de instância de uma classe determinam qual será a interface e o comportamento apresentados por ela.

Obs: Em um artigo futuro veremos os conceitos e exemplo prático sobre Interfaces.

Tendo em mente que os métodos e as variáveis de uma classe podem ser definidos como públicos ou privados, temos a seguinte situação:

Tudo o que o usuário externo precisa conhecer a respeito de uma classe encontra-se em propriedades ou métodos declarados como públicos (public).

Somente os códigos membros da classe são capazes de acessar seus métodos e variáveis privados. Isso garante que não ocorrerão ações inadequadas, mas exige que a interface pública seja planejada com cautela para que o funcionamento interno da classe não seja muito exposto.

Saiba mais: Encapsulamento, Polimorfismo, Herança em Java

Dito tudo isto, podemos concluir que a única forma de conhecer ou alterar os atributos de um objeto é por meio de seus métodos. Abaixo cito quatro vantagens do encapsulamento:

O objeto é disponibilizado ao usuário com toda a sua funcionalidade, sem a necessidade de conhecermos seu funcionamento ou armazenamento interno;

É possível modificar um objeto internamente, acrescentando métodos, sem que isto afete os outros componentes do sistema que utilizam o objeto modificado;

O processo de desenvolvimento de sistemas é acelerado e simplificado, já que os usuários dos objetos não precisam necessariamente saber como eles são constituídos internamente;

A implementação de um comportamento pode ser modificada radicalmente sem que haja impacto no resto do programa. Isto é possível porque o código que utiliza o objeto não depende da maneira que ele é implementado.

Saiu na DevMedia!

CSS Tutorial: da Sintaxe ao Flexbox:
CSS é um item que não pode faltar na caixa de ferramentas de um programador web, pois é com ela que descrevemos para o navegador como os elementos em uma página serão apresentados para o usuário.

Guia de React Native: do Hello World ao CRUD:
React é um framework JavaScript criado pelo Facebook para facilitar a construção de interfaces de usuário. React Native, da mesma empresa, nos permite criar aplicações mobile nativas utilizando JavaScript, na lógica, e React, para estruturar as views. No DevCast abaixo matamos a sua curiosidade sobre como isso tudo se parece na prática. Assista.

Guia de Levantamento de Requisitos:
Nesta série, falamos sobre as técnicas, como conduzir uma reunião com o cliente e gerar os documentos mínimos necessários para o levantamento dos requisitos do software. Confira!

Saiba mais sobre Encapsulamento ;)

Abstração, Encapsulamento e Herança: Pilares da POO em Java:
Veja neste artigo três dos pilares da Programação Orientada a Objetos: Abstração, Encapsulamento e Herança. Serão apresentados, além dos conceitos, exemplos práticos implementados na linguagem Java.

Classes Abstratas e Encapsulamento:
Uma classe abstrata é desenvolvida para representar entidades e conceitos abstratos.

Encapsulamento em Java: Primeiros passos:
Veja nesse artigo como aumentar a segurança e a qualidade do código através do correto uso de encapsulamento.

Tecnologias:

C#

Orientação a Objetos

Chega de perder tempo!

Comece hoje mesmo a programar de verdade

Apenas 12x de R$ 54,90

Por que a DevMedia?

Didática focada no iniciante

Aprenda construindo projetos reais

Domine as tecnologias mais usadas no mercado

Professores online o tempo todo

+ de 8000 exercícios gamificados

+ de 100 mil alunos formados

Por Wellington Em 2010

Receba nossas novidades

# data[].attributes.attachment_link.title
Conceitos de Encapsulamento na Programação Orientada a Objetos

# data[].attributes.attachment_link.description
Encapsulamento é a técnica que faz com que detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos para os objetos. Neste artigo veremos conceitos sobre Encapsulamento.

# data[].attributes.body
Definimos Polimorfismo como um princípio a partir do qual as classes derivadas de uma única classe base são capazes de invocar os métodos que, embora apresentem a mesma assinatura, comportam-se de maneira diferente para cada uma das classes derivadas.

O Polimorfismo é um mecanismo por meio do qual selecionamos as funcionalidades utilizadas de forma dinâmica por um programa no decorrer de sua execução.

Com o Polimorfismo, os mesmos atributos e objetos podem ser utilizados em objetos distintos, porém, com implementações lógicas diferentes.

Por exemplo: podemos assumir que uma bola de futebol e uma camisa da seleção brasileira são artigos esportivos, mais que o cálculo deles em uma venda é calculado de formas diferentes.

# data[].attributes.attachment_link.title
Conceitos e Exemplos - Polimorfismo: Programação Orientada a Objetos

# data[].attributes.attachment_link.description
Neste artigo veremos os conceitos e alguns exemplos sobre Polimorfismo.

# data[].attributes.body
A Herança possibilita que as classes compartilhem seus atributos, métodos e outros membros da classe entre si. Para a ligação entre as classes, a herança adota um relacionamento esquematizado hierarquicamente.

Existem dois tipos principais de classe na herança sendo elas:

Classe Base: A classe que concede as características a uma outra classe.

Classe Derivada: A classe que herda as características da classe base.

Com o uso da herança, uma classe derivada geralmente é uma implementação especifica de um caso mais geral. A classe derivada deve apenas definir as características que a tornam única.

Por exemplo, em uma classe base que serviria como um modelo genérico pode ser uma classe pessoa, nome e idade isso claro se tratando de um modelo genérico sem muita especificação. Já a classe derivada pode se tratar de algo mais específico sobre a classe base/principal ex: Funcionários. Herdando assim os atributos da classe base ex: Nome, idade e pessoa assim como a classe base.

# data[].attributes.attachment_link.readable_text
Artigos .NET Conceitos e Exemplos – Herança: Programação Orientada a Objetos – Parte 1

Neste artigo veremos os principais conceitos e alguns exemplos de Herança.

A Herança possibilita que as classes compartilhem seus atributos, métodos e outros membros da classe entre si. Para a ligação entre as classes, a herança adota um relacionamento esquematizado hierarquicamente.

Na Herança temos dois tipos principais de classe:

Classe Base: A classe que concede as características a uma outra classe.

Classe Derivada: A classe que herda as características da classe base.

O fato de as classes derivadas herdarem atributos das classes bases assegura que programas orientados a objetos cresçam de forma linear e não geometricamente em complexidade. Cada nova classe derivada não possui interações imprevisíveis em relação ao restante do código do sistema.

Com o uso da herança, uma classe derivada geralmente é uma implementação especifica de um caso mais geral. A classe derivada deve apenas definir as características que a tornam única.

Por exemplo: uma classe base que serviria como um modelo genérico pode ser a classe Pessoa com os campos Nome e Idade. Já uma classe derivada poderia ser Funcionário com os campos Nome e Idade herdados da classe Pessoa, acrescido do campo Cargo.

De maneira natural, as pessoas visualizam o mundo sendo formado de objetos relacionados entre si hierarquicamente.

Mais um exemplo: vamos analisar a relação entre animais, mamíferos e cachorros. Os animais, sob uma descrição abstrata, apresentam atributos, tais como tamanho, inteligência e estrutura óssea. Apresentam também aspectos comportamentais como mover-se, dormir, comer, respirar, etc. Esses atributos e aspectos comportamentais definem a classe dos animais.

Analisando os mamíferos, que são filhos da classe animais, veremos atributos detalhados e específicos a ele, como por exemplo, tipo de dente, pelos e glândulas mamárias.

Assim, podemos afirmar que os mamíferos são classificados como uma classe derivada dos animais, que por sua vez, são uma classe base dos mamíferos.

Pela chamada hierárquica de classes, a classe derivada mamíferos recebe todos os atributos de animais, partindo do princípio que uma classe derivada recebe por herança todos os atributos de seus ancestrais.

Exemplo Prático

Crie um projeto do tipo Console Application, dando a ele o nome de ExemploHeranca e dê OK. Crie também uma classe dando a ela o nome Animal, esta classe será a classe pai ou classe base.

Nesta classe, adicione o seguinte código:

public class Animal

    {

        public string Nome;

        public string Tipo;

        public int Idade;

        public string CorDoPelo;

    }

Assim temos quatro campos que definem os atributos da classe Animal.

Consideremos a criação de um cadastro de cachorros do reino Animal. Entendemos que cada Cachorro é um Animal, mais nem todo Animal é um Cachorro. Essa relação nos obriga a criar uma extensão da classe Animal a fim de que a mesma contenha os dados específicos referentes aos cachorros. Assim, a extensão criada acaba herdando os membros existentes na definição da classe Animal.

Nesta classe, adicione o seguinte código:

public class Cachorro : Animal

    {

        public string Raca;

    }

Note que usamos os dois pontos : em nossa classe. Fazendo assim, informamos à classe que ela herda as características da classe Animal.

Assim temos a definição da classe Cachorro, que, pela herança, recebe as características da classe Animal, somadas à definição de seus próprios membros, no caso ao campo Raca.

Perceba que, se formos ao Program.cs e instanciarmos a classe Cachorro, temos também acesso aos campos da classe Animal:

Isso também se deve ao fato que foram declarados campos do tipo public, que nos dá acesso a eles de outra classe usando a herança, como neste caso.

Operador Base – Por meio deste operador temos acesso à classe pai. Assim, qualquer referencia feita com o uso do operador base, dentro de uma classe filha, será apontada diretamente para a classe pai.

Apesar de não recomendado, podemos manter atributos de nomes iguais nas classes pai e filha. Este procedimento é chamado de hiding. Quando o usamos, devemos adicionar a instrução new na frente do atributo da classe derivada, caso contrário o compilador irá enviar um alerta sobre o uso de hiding.

Para este exemplo crie duas novas classes, a base, que será chamada de Pai, e a derivada, que será chamada de Filha. Na classe Pai adicione os seguintes campos:

public class Pai

    {

        public string Nome = "Arnaldo";

        public int Idade = 35;

    }

Na Filha, adicione os campos com o mesmo nome mais com valores diferentes (note o uso da instrução new) e crie o método que irá exibir os valores de ambas as classes em tela:

public class Filha : Pai

    {

        public new string Nome = "Jaqueline";

        public new int Idade = 10;



        public void MostrarValores()

        {

            Console.WriteLine("Nome Filha: " + Nome);

            Console.WriteLine("Nome Pai: " + base.Nome);

            Console.WriteLine("Idade Filha: " + Idade);

            Console.WriteLine("Idade Pai: " + base.Idade);

        }

    }

Agora no Program.cs, instancie a classe Filha e chame o método recém-criado:

Filha objFilha = new Filha();

            objFilha.MostrarValores();



            Console.ReadKey();

Compile a aplicação e veja o resultado:

Resultado

Confira também

# data[].attributes.attachment_link.title
Herança: Programação Orientada a Objetos

# data[].attributes.attachment_link.description
A Herança possibilita que as classes compartilhem seus atributos, métodos e outros membros da classe entre si. Para a ligação entre as classes, a herança adota um relacionamento esquematizado hierarquicamente.