Skip to the content.

ricardotecpro.github.io

Outros Tópicos Básicos sobre Java ☕

Este documento aborda conceitos fundamentais em Java, incluindo convenções de nomenclatura, manipulação de strings, uso de funções (métodos) e exemplos práticos.

Restrições e Convenções para Nomes 🏷️

Ao nomear variáveis, classes e outros elementos em Java, é importante seguir certas regras e convenções para garantir que o código seja legível e funcional.

Restrições para Nomes de Variáveis

Existem algumas regras estritas para nomear identificadores (como variáveis) em Java:

Exemplos:

Errado:

// int 5minutes; // Erro: começa com dígito
// int salário; // Evitar acentos
// int salario do funcionario; // Erro: contém espaços

Correto:

int cincoMinutos; // ou _5minutes, mas menos comum para iniciar
int salario; // Sem acento
int salarioDoFuncionario; // Usando Camel Case

Convenções de Nomenclatura

As convenções ajudam a manter o código consistente e fácil de ler por outros desenvolvedores.

Seguir estas convenções melhora a legibilidade e a manutenção do código, facilitando a colaboração em projetos.

Estrutura Básica de uma Classe e Métodos (Exemplo Conta) 🏛️

Classes são os blocos de construção fundamentais na Programação Orientada a Objetos (POO). Elas encapsulam dados (atributos) e comportamentos (métodos).

Abaixo, um exemplo de uma classe Conta em Java, com atributos para titular e saldo, e métodos para depositar e sacar.

package entidades;

public class Conta {

    private String titular;
    private Double saldo;

    public Conta(String titular, Double saldo) {
        this.titular = titular;
        this.saldo = saldo;
    }

    public String getTitular() {
        return titular;
    }

    // Não há um setTitular neste exemplo, o titular é definido no construtor.

    public Double getSaldo() {
        return saldo;
    }

    // O saldo não deve ter um setter público direto para proteger a consistência dos dados.
    // Modificações no saldo devem ser feitas através de depósitos e saques.

    public void depositar(double valor) {
        if (valor > 0) {
            saldo += valor; // Adiciona o valor ao saldo
        } else {
            System.out.println("Valor de depósito deve ser positivo.");
        }
    }

    public void sacar(double valor) {
        if (valor > 0) {
            if (saldo >= valor) {
                saldo -= valor; // Subtrai o valor do saldo
            } else {
                System.out.println("Saldo insuficiente para saque.");
            }
        } else {
            System.out.println("Valor de saque deve ser positivo.");
        }
    }
}

Funções Interessantes para String 🧵

A classe String em Java oferece uma variedade de métodos úteis para manipulação de texto.

Checklist de Métodos Comuns:

Exemplo Prático com Métodos de String

public class ExemploStrings {

    public static void main(String[] args) {
        String original = "   abcde FGHIJ ABC abc DEFG   ";

        String str01 = original.toLowerCase();
        String str02 = original.toUpperCase();
        String str03 = original.trim();
        String str04 = original.substring(5); // Considerando o trim, ou original.trim().substring(2)
        String str05 = original.trim().substring(2, 9); // Aplicando trim antes para consistência com os índices esperados

        String str06 = original.replace('a', 'x');
        String str07 = original.replace("abc", "xy");

        int indice1 = original.indexOf("bc");
        int ultimoIndiceBC = original.lastIndexOf("bc");

        System.out.println("Original: -" + original + "-");
        System.out.println("toLowerCase: -" + str01 + "-");
        System.out.println("toUpperCase: -" + str02 + "-");
        System.out.println("trim: -" + str03 + "-");
        System.out.println("substring(inicio): -" + str04 + "- (a partir do 5º caractere da original com espaços)");
        System.out.println("substring(inicio, fim) após trim: -" + str05 + "- ('cde FGH')");
        System.out.println("replace('a', 'x'): -" + str06 + "-");
        System.out.println("replace(\"abc\", \"xy\"): -" + str07 + "-");
        System.out.println("Primeiro índice de 'bc': " + indice1);
        System.out.println("Último índice de 'bc': " + ultimoIndiceBC);
    }
}

Operação split

O método split() é muito útil para quebrar uma string em várias partes (tokens) com base em um delimitador. Ele retorna um array de strings.

Exemplo:

public class ExemploSplit {

    public static void main(String[] args) {
        String s = "batata maçã limão laranja";
        String[] vetorDePalavras = s.split(" "); // Divide a string usando o espaço como delimitador

        String palavra1 = vetorDePalavras[0]; // "batata"
        String palavra2 = vetorDePalavras[1]; // "maçã"
        String palavra3 = vetorDePalavras[2]; // "limão"
        String palavra4 = vetorDePalavras[3]; // "laranja"

        System.out.println("Palavra 1: " + palavra1);
        System.out.println("Palavra 2: " + palavra2);
        System.out.println("Palavra 3: " + palavra3);
        System.out.println("Palavra 4: " + palavra4);

        System.out.println("\nTodas as palavras do vetor:");
        for (String palavra : vetorDePalavras) {
            System.out.println("- " + palavra);
        }
    }
}

Visualização do processo split:

String s: "batata maçã limão laranja"

Após s.split(" "):

vetorDePalavras (array):

Comentários em Java (Básico) 📝

Comentários são trechos de código que o compilador Java ignora. Eles são usados para adicionar explicações, notas ou desabilitar temporariamente partes do código, tornando-o mais compreensível para você e outros desenvolvedores.

Funções (Sintaxe) ⚙️

Em Java, funções são geralmente chamadas de métodos quando estão dentro de classes. Eles são blocos de código que realizam uma tarefa específica e podem ser chamados (invocados) quando necessário.

Exemplo: Programa para Cálculo de Delta em Equação de Segundo Grau

O código abaixo demonstra a estrutura básica de um programa Java que lê os coeficientes de uma equação de segundo grau ($ax^2 + bx + c = 0$) e calcula o valor de delta ($\Delta = b^2 - 4ac$).

package curso;

import java.util.Locale;
import java.util.Scanner;

// Este programa calcula as raízes de uma equação do segundo grau
// Os valores dos coeficientes devem ser digitados um por linha

public class ProgramaEquacao { // Nome da classe alterado para ser mais descritivo

    public static void main(String[] args) {
        Locale.setDefault(Locale.US); // Para usar o ponto como separador decimal
        Scanner sc = new Scanner(System.in);

        double a, b, c, delta;

        System.out.println("Digite os valores dos coeficientes (a, b, c):");

        System.out.print("Coeficiente a: ");
        a = sc.nextDouble();

        System.out.print("Coeficiente b: ");
        b = sc.nextDouble();

        System.out.print("Coeficiente c: ");
        c = sc.nextDouble();

        delta = b * b - 4 * a * c; // Cálculo do valor de delta

        System.out.println("O valor de Delta é: " + delta);

        // Aqui, poderíamos adicionar a lógica para calcular as raízes x' e x''
        // com base no valor de delta.

        sc.close();
    }
}

O que são Funções (ou Métodos em Java)? 📜

Problema Exemplo: Encontrar o Maior de Três Números 🤔

Tarefa: Fazer um programa para ler três números inteiros e mostrar na tela o maior deles.

Exemplo de Execução:

Digite três números:
5
8
3
Maior = 8

Solução 1: Lógica Direto no main

Nesta abordagem, toda a lógica para encontrar o maior número está contida diretamente no método main.

package curso;

import java.util.Scanner;

public class ProgramaMaiorNumeroV1 { // Classe renomeada para Solução 1

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("Digite três números:");
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();

        if (a > b && a > c) {
            System.out.println("Maior = " + a);
        } else if (b > c) { // Se 'a' não é o maior, e 'b' é maior que 'c', então 'b' é o maior
            System.out.println("Maior = " + b);
        } else { // Se 'a' não é o maior e 'b' não é o maior, então 'c' é o maior
            System.out.println("Maior = " + c);
        }

        sc.close();
    }
}

Solução 2: Usando Métodos Auxiliares

Esta abordagem utiliza métodos auxiliares para tornar o código mais modular e legível. Um método encontrarMaior calcula o maior número, e um método mostrarResultado exibe o resultado.

package curso;

import java.util.Scanner;

public class ProgramaMaiorNumeroV2 { // Classe renomeada para Solução 2

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("Digite três números:");
        int num1 = sc.nextInt(); // Variáveis renomeadas para clareza
        int num2 = sc.nextInt();
        int num3 = sc.nextInt();

        int maiorNumero = encontrarMaior(num1, num2, num3);
        mostrarResultado(maiorNumero);

        sc.close();
    }

    /**
     * Encontra o maior entre três números inteiros.
     * @param x O primeiro número.
     * @param y O segundo número.
     * @param z O terceiro número.
     * @return O maior dos três números.
     */
    public static int encontrarMaior(int x, int y, int z) {
        int auxiliar;
        if (x > y && x > z) {
            auxiliar = x;
        } else if (y > z) { // Corrigido de y+z para y > z
            auxiliar = y;
        } else {
            auxiliar = z;
        }
        return auxiliar;
    }

    /**
     * Exibe o resultado (o maior número).
     * @param valor O valor a ser exibido.
     */
    public static void mostrarResultado(int valor) {
        System.out.println("Maior = " + valor);
    }
}

📚