Orientação a Objetos: Estado, Classes, Objetos, Herança e Abstração
Conceitos Fundamentais de Programação Orientada a Objetos
O estado de um objeto é o significado combinado das variáveis internas do objeto.
Uma variável interna é um valor mantido dentro de um objeto.
A implementação define como algo é feito. Em termos de programação, implementação é o código.
O domínio é o espaço onde um problema reside. O domínio é o conjunto de conceitos que representam os aspectos importantes do problema que você está tentando resolver.
Um objeto é uma construção de software que encapsula estado e comportamento. Os objetos permitem que você modele seu software em termos reais e abstrações.
Classes
Classes possuem 3 características:
- Atributo: característica que define a aparência e a finalidade;
- Métodos: uma ação (sempre pertence a uma classe);
- Eventos: ocorrem quando você executa um método, ou quando você pode programar um método.
A classe agrupa atributos e métodos de um determinado assunto, por exemplo, alunos, em geral, e não apenas de um.
Objeto é a representação da classe.
Exemplo: classe Ser Humano
{
pessoas objeto;
}Herança
A diferença entre classe e estrutura, no que se refere à herança, é que uma classe pode herdar de uma classe base.
Abstração
A abstração trata do caso geral e não do específico.
Ao confrontar vários problemas, procure o que é comum a todos.
Prepare-se para a falha: é impossível escrever uma abstração que funcione em todas as situações.
Exemplo Prático em C#
class Aluno
{
public int RA;
string Nome;
double n1, n2;
double CalcNota()
{
return n1 * 0.4 + n2 * 0.6;
}
}
Aluno aluno1 = new Aluno();
aluno1.RA = 123123123;
aluno1.Nome = "Adamastro";
aluno1.n1 = 3;
aluno1.n2 = 10;
Aluno aluno2 = new Aluno();
Aluno[] Vetor = new Aluno[10];
Vetor[0] = new Aluno();Manipulação de Arquivos e Diálogos
openFileDialog1.Filter = "ALL|*.*";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.ImageLocation = openFileDialog1.FileName;
imagdiretorio = pictureBox1.ImageLocation;
}
string conteudo;
conteudo = textBox1.Text + "|" + textBox2.Text + "|" + imagdiretorio + "|";
File.AppendAllText(Frmain.Caminho + "Produto.txt", conteudo);
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(saveFileDialog1.FileName, conteudo);
}
if (File.Exists(Frmain.Caminho + "Produto.txt"))
{
string[] linhas = File.ReadAllLines(Frmain.Caminho + "Produto.txt");
string[] dados = linhas[0].Split('|');
}
for (int start = 0; start < dados.Length; start++)
{
if (pesq == dados[start])
{
textBox1.Text = dados[start];
textBox2.Text = dados[start + 1];
pictureBox1.ImageLocation = dados[start + 2];
errorProvider1.Clear();
break;
}
}