Guia de POO: Métodos, Classes e Estruturas de Controle

Classificado em Computação

Escrito em em português com um tamanho de 12,14 KB

Conceitos Fundamentais de Programação Orientada a Objetos

Métodos Acessores: Get e Set

Set

Nomeamos um método acessor com set toda vez que este método for modificar algum campo ou atributo de uma classe. Se não criarmos um método acessor set para algum atributo, isso significa que este atributo não deve ser modificado.

Como o valor de um atributo da classe será modificado, não é necessário que este método retorne nenhum valor, por isso, os métodos setters são void. Porém, obrigatoriamente, eles têm que receber um argumento que será o novo valor do campo.

Get

Nomeamos um método acessor com get toda vez que este método for consultar algum campo ou atributo de uma classe.

Como este método irá verificar um valor, ele sempre terá um tipo de retorno, como String, int, float, etc., mas não receberá nenhum argumento.

O que é Encapsulamento?

Encapsulamento vem de "encapsular", que em programação orientada a objetos significa separar o programa em partes, o mais isoladas possível. A ideia é tornar o software mais flexível, fácil de modificar e de criar novas implementações.

Graças ao encapsulamento, podemos ver as classes apenas pelos serviços (métodos) que elas oferecem, sem precisar conhecer como o serviço está implementado internamente. Cada classe é responsável por controlar seus próprios atributos, definindo um "contrato" que determina o que o mundo exterior pode fazer com seus objetos.

Métodos e Comportamentos

Métodos são blocos de código que pertencem a uma classe e têm por finalidade realizar uma tarefa. Conhecidos como funções ou procedimentos, eles ajudam no design do sistema e na reutilização de software. Métodos geralmente correspondem a uma ação do objeto (ex: correr, somar, calcular).

Comportamento de um objeto é definido pelo conjunto de métodos que sua classe possui.

Método Construtor

O método construtor é um método especial que tem o mesmo nome da classe. Sua responsabilidade é inicializar um objeto quando ele é criado (instanciado). Isso garante que possamos ter múltiplos objetos com as mesmas características, mas que sejam instâncias distintas e independentes.

Diferença entre Método e Construtor

Enquanto um método define uma ação que um objeto pode realizar, o construtor é o "método" especial responsável por construir e inicializar esse objeto.

Definições Chave em POO

  • Classe: É o agrupamento de objetos com a mesma estrutura de dados e comportamento. A classe é a "planta" ou descrição de um objeto.
  • Atributos: São as propriedades ou características da classe (variáveis).
  • Método: É o conjunto de funcionalidades (ações) da classe.
  • Objeto: É uma instância de uma classe, algo distinguível que contém atributos e possui um determinado comportamento.

Tipos de Dados Primitivos

  • Boolean: Pode assumir os valores true ou false.
  • Char: Armazena um único caractere.
  • Byte: Tipo de dado inteiro de 8 bits.
  • Short: Inteiro de 16 bits em notação de complemento de dois.
  • Int: Inteiro de 32 bits em notação de complemento de dois. Pode assumir valores entre -2.147.483.648 (-231) e 2.147.483.647 (231-1).
  • Long: Inteiro de 64 bits, usado para números grandes. Pode assumir valores de -9.223.372.036.854.775.808L até 9.223.372.036.854.775.807L.
  • Float e Double: Tipos para números de ponto flutuante (decimais). double tem precisão maior que float.

Operadores e Comandos

Operador instanceof

instanceof é um operador de comparação que retorna um valor booleano (true ou false) indicando se um objeto é uma instância de uma determinada classe.

Operador new

Cria uma instância (objeto) de uma classe enquanto o programa está sendo executado. Sua sintaxe é: new NomeDaClasse();

Comando throw

Serve para lançar uma exceção. Um objeto de uma classe de exceção deve ser instanciado e lançado através do comando throw, geralmente dentro de um bloco try {}.

Bloco try

Serve para envolver um trecho de código que pode gerar uma exceção, permitindo que ela seja tratada e evitando que o programa pare de forma inesperada. Sua sintaxe é try {}, geralmente seguida por catch {}.

Comando break

O comando break serve para interromper a execução de uma estrutura de repetição (laço) ou de um bloco switch.

Comando continue

O comando continue serve para pular a iteração atual de um laço e desviar o fluxo para o início da próxima iteração.

Comando return

Serve para retornar um valor de um método, como o resultado de uma operação matemática.

Arrays

É uma estrutura de dados que armazena uma coleção de elementos de um mesmo tipo. Os elementos são acessados através de um índice, que indica a posição do valor a ser manipulado (começando em 0).

Execução via Linha de Comando

Exemplo de como executar um programa: C:\>programa

Saída Padrão

Em Java, a saída padrão é comumente realizada com: System.out.

Wrapper Classes (Boxing)

Classes empacotadoras (Wrapper Classes) servem para encapsular um valor de tipo primitivo na forma de um objeto. Esse processo é chamado de boxing e permite a utilização de tipos primitivos em contextos que exigem objetos (tipos de referência), como em coleções.

Parâmetros vs. Argumentos

Para comunicar informações a um método, ele define um parâmetro (uma variável na declaração do método). O código que chama o método passa um argumento (o valor real) para esse parâmetro. Você pode pensar no parâmetro como uma "vaga de estacionamento" e no argumento como o "carro" que a ocupa.

Exemplos de Código em C#

Estruturas de Repetição: For, While e Do-While

For

namespace WindowsFormsApplication1 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        int numero, i, multi;
        private void button1_Click(object sender, EventArgs e) {
            i = 0;
            numero = Convert.ToInt16(textBox1.Text);
            listBox1.Items.Clear();
            for (i = 0; i <= 10; i++) {
                multi = numero * i;
                listBox1.Items.Add(i + "X" + numero + "=" + multi);
            }
        }
    }
}

While

namespace WindowsFormsApplication1 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        int numero, i;
        private void button1_Click(object sender, EventArgs e) {
            i = 0;
            listBox1.Items.Clear();
            numero = Convert.ToInt16(textBox1.Text);
            while (i <= 10) {
                listBox1.Items.Add(numero + "X" + i + "=" + i * numero);
                i++;
            }
        }
    }
}

Do-While

namespace WindowsFormsApplication1 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        int numero, i;
        private void button1_Click(object sender, EventArgs e) {
            i = 0;
            listBox1.Items.Clear();
            numero = Convert.ToInt16(textBox1.Text);
            do {
                listBox1.Items.Add(numero + "X" + i + "=" + i * numero);
                i++;
            } while (i <= 10);
        }
    }
}

Exemplo de Windows Forms: Seleção de Esportes

namespace Esportes {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e) {
            groupBox1.Visible = false;
        }
        private void button1_Click(object sender, EventArgs e) {
            if (ckd_musculacao.Checked) {
                listBox1.Items.Add(ckd_musculacao.Text);
            }
            if (ckd_natacao.Checked) {
                listBox1.Items.Add(ckd_natacao.Text);
                groupBox1.Visible = true;
            }
            if (ckd_ritmos.Checked) {
                listBox1.Items.Add(ckd_ritmos.Text);
            }
            if (ckd_combat.Checked) {
                listBox1.Items.Add(ckd_combat.Text);
            }
            if (ckd_zumba.Checked) {
                listBox1.Items.Add(ckd_zumba.Text);
            }
            if (ckd_boxe.Checked) {
                listBox1.Items.Add(ckd_boxe.Text);
            }
            if (ckd_abs.Checked) {
                listBox1.Items.Add(ckd_abs.Text);
            }
            if (ckd_step.Checked) {
                listBox1.Items.Add(ckd_step.Text);
            }
            if (ckd_alongamento.Checked) {
                listBox1.Items.Add(ckd_alongamento.Text);
            }
        }
        private void btn_limpar_Click(object sender, EventArgs e) {
            ckd_musculacao.Checked = false;
            ckd_natacao.Checked = false;
            ckd_ritmos.Checked = false;
            ckd_combat.Checked = false;
            ckd_zumba.Checked = false;
            ckd_boxe.Checked = false;
            ckd_abs.Checked = false;
            ckd_step.Checked = false;
            ckd_alongamento.Checked = false;
            listBox1.Items.Clear();
            textBox1.Text = "";
            radioButton1.Checked = false;
            radioButton2.Checked = false;
            radioButton3.Checked = false;
            groupBox1.Visible = false;
        }
        private void groupBox1_Enter(object sender, EventArgs e) {}
        private void btn_ok_Click(object sender, EventArgs e) {
            if (radioButton1.Checked) {
                textBox1.Text = radioButton1.Text;
            }
            if (radioButton2.Checked) {
                textBox1.Text = radioButton2.Text;
            }
            if (radioButton3.Checked) {
                textBox1.Text = radioButton3.Text;
            }
        }
    }
}

Exemplo de Windows Forms: Soma de Números

namespace Aula21._10._2 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        public string x;
        public string y;
        public double res;
        private void button1_Click(object sender, EventArgs e) {
            x = textBox1.Text;
            y = textBox2.Text;
            res = Convert.ToDouble(x) + Convert.ToDouble(y);
            this.Hide();
            Form2 form2 = new Form2(res);
            form2.Show();
        }
        private void Form1_Load(object sender, EventArgs e) {}
    }
}

Exemplo de Windows Forms: PictureBox e OpenFileDialog

namespace Aula2810._2 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        OpenFileDialog arquivo = new OpenFileDialog();
        public string nome;
        public int idade;
        public string telefone;

        private void button2_Click(object sender, EventArgs e) {
            arquivo.Filter = "jpg|*.jpg";
            if (arquivo.ShowDialog() == DialogResult.OK) {
                pictureBox1.ImageLocation = arquivo.FileName;
            }
        }
        private void button1_Click(object sender, EventArgs e) {
            nome = textBox1.Text;
            idade = Convert.ToInt32(numericUpDown1.Value);
            telefone = maskedTextBox1.Text;
            Form2 form2 = new Form2(nome, idade, telefone, arquivo.FileName);
            form2.Show();
            this.Hide();
        }
    }
}

Entradas relacionadas: