Curso: Tecnologia em Sistemas para Internet • 2º semestre

Introdução à Orientação a Objetos (ARQINOO)

Aula 02 — Estrutura básica da linguagem de programação Java


Prof. José Rodolfo Beluzo

Objetivos da Aula

  • Entender a importância das convenções de código em Java.
  • Conhecer os tipos de dados primitivos e como declarar variáveis.
  • Utilizar operadores para realizar cálculos e comparações.
  • Controlar o fluxo com estruturas condicionais (if, switch).
  • Repetir tarefas com estruturas de repetição (for, while).
  • Interagir com o usuário via console (entrada e saída de dados).

Convenções de Codificação

Por que seguir regras ao nomear e formatar?

  • Legibilidade: facilita a leitura e revisão.
  • Manutenção: corrige e evolui mais fácil.
  • Profissionalismo: alinhado às práticas da comunidade.
“Bons programadores escrevem código que humanos entendam.” — Martin Fowler

Principais Convenções em Java

  • Classes: UpperCamelCase (ex.: CalculadoraDeMedia).
  • Métodos/Variáveis: camelCase (ex.: calcularMedia(), notaFinal).
  • Constantes: MAIÚSCULAS_COM_UNDERSCORE (ex.: NUMERO_MAXIMO_DE_TENTATIVAS).
  • Indentação: 4 espaços por bloco ou TAB { }.
  • Comentários: // (linha) e /* ... */ (bloco).

Demonstração Prática: Antes x Depois

ANTES

public class calculo {
public static void main(String[] args) {
double n1=7.5; double n2=8.0;
double MEDIA = (n1+n2)/2;
System.out.println("a media e: "+MEDIA);
if(MEDIA>=7){
System.out.println("aprovado");
}else{
System.out.println("reprovado");}
}
}

Demonstração Prática: Antes x Depois

DEPOIS

// Classe para calcular a média de um aluno
public class CalculoMedia {

    public static void main(String[] args) {
        double nota1 = 7.5;
        double nota2 = 8.0;
        
        double mediaFinal = (nota1 + nota2) / 2;
        
        System.out.println("A média final é: " + mediaFinal);
        
        if (mediaFinal >= 7.0) {
            System.out.println("Status: Aprovado");
        } else {
            System.out.println("Status: Reprovado");
        }
    }
}

Tipos de Dados Primitivos

Blocos básicos para armazenar dados.

TipoO que armazenaExemplo
intNúmeros inteirosint idade = 25;
doublePonto flutuantedouble altura = 1.78;
charCaractere únicochar sexo = 'M';
booleanVerdadeiro/Falsoboolean estaChovendo = false;

Há outros (byte, short, long, float), mas estes são os mais comuns.

Variáveis e Constantes

Uma variável é um espaço na memória para guardar um valor que pode mudar.

Estrutura: tipo nomeDaVariavel = valorInicial;

// Declaração
int quantidade; 
String nome;

// Inicialização
quantidade = 10;
nome = "João da Silva";

// Declaração e Inicialização
double salario = 2500.50;
boolean isAtivo = true;

Constantes usam final:

final double FATOR_DE_CONVERSAO = 1.609;
// FATOR_DE_CONVERSAO = 2.0; // Erro de compilação!

Exercício Rápido (5 min)

Declare variáveis para armazenar as informações de um aluno: nome, idade, nota final e se está matriculado.

Exercício Rápido (5 min)

Declare variáveis para armazenar as informações de um aluno: nome, idade, nota final e se está matriculado.

Exemplo de solução

public class CadastroAluno {
    public static void main(String[] args) {
        String nomeCompleto = "Ana Carolina";
        int idade = 19;
        double notaFinal = 8.7;
        boolean estaMatriculado = true;
    }
}

Operadores

Aritméticos, Relacionais e Lógicos

  • Aritméticos: +, -, *, /, %
  • Relacionais: ==, !=, >, <, >=, <=
  • Lógicos: &&, ||, !

Ordem de Precedência

*, /, %+, ->, >=, <, <===, !=&&||

Use parênteses () para garantir a ordem desejada e legibilidade.

double nota1 = 7.0;
double nota2 = 8.5;
double nota3 = 9.0;

// Parênteses garantem a soma antes da divisão
double media = (nota1 + nota2 + nota3) / 3;
System.out.println("A média é: " + media); // 8.166...

boolean aprovado = media >= 7.0;
System.out.println("Aprovado? " + aprovado); // true

Estruturas Condicionais

// Exemplo 1: Par ou Ímpar
int numero = 10;

if (numero % 2 == 0) {
    System.out.println("O número é par.");
} else {
    System.out.println("O número é ímpar.");
}

// Exemplo 2: Conceito da Nota
double nota = 8.5;

if (nota >= 9.0) {
    System.out.println("Conceito A");
} else if (nota >= 8.0) {
    System.out.println("Conceito B");
} else if (nota >= 7.0) {
    System.out.println("Conceito C");
} else {
    System.out.println("Conceito D");
}

Múltiplas Escolhas: switch-case

Útil para testar uma variável contra uma lista de valores específicos.

int diaDaSemana = 3;
String nomeDoDia;

switch (diaDaSemana) {
    case 1:
        nomeDoDia = "Domingo";
        break;
    case 2:
        nomeDoDia = "Segunda-feira";
        break;
    case 3:
        nomeDoDia = "Terça-feira";
        break;
    case 4:
        nomeDoDia = "Quarta-feira";
        break;
    // ... outros casos
    default:
        nomeDoDia = "Dia inválido";
        break;
}

System.out.println("Hoje é: " + nomeDoDia);

Atividade em Dupla (10 min)

Mão na Massa: Menu Simples

Implemente um programa que mostra um menu e, com base na escolha, exiba a mensagem correspondente (use switch).

int opcao = 2; // Simule a escolha do usuário

System.out.println("--- MENU ---");
System.out.println("1 - Ver Saldo");
System.out.println("2 - Fazer Depósito");
System.out.println("3 - Sair");
System.out.println("------------");

switch (opcao) {
    // Implemente os casos aqui
}

Estruturas de Repetição

  • for: quando se sabe o número de repetições.
  • while: repete enquanto a condição for verdadeira (testa antes).
  • do-while: garante ao menos uma execução (testa depois).

Exemplos Práticos de Laços

for — Contagem 1..10

for (int i = 1; i <= 10; i++) {
    System.out.println("Contando: " + i);
}

while — Tabuada do 7

int multiplicador = 1;
int numero = 7;

while (multiplicador <= 10) {
    int resultado = numero * multiplicador;
    System.out.println(numero + " x " + multiplicador + " = " + resultado);
    multiplicador++;
}

do-while — Menu

int opcao;
do {
    // Mostra o menu e lê a opção do usuário (implementação omissa)
    opcao = lerOpcaoDoUsuario(); 
} while (opcao != 0);

Pequeno Desafio (10 min)

Encontrando os Divisores

Imprima todos os divisores de um número usando um laço for.

int numero = 20;
System.out.println("Divisores de " + numero + ":");

// Implementar...

Saída de Dados

System.out.println() imprime e pula linha; System.out.print() não pula linha.

String nome = "Maria";
int idade = 30;

// Concatenação de texto e variáveis
System.out.println("Nome: " + nome + ", Idade: " + idade);

System.out.print("Carregando... ");
System.out.print("100%"); // Saída: Carregando... 100%

Entrada de Dados: Scanner

  1. Importe: import java.util.Scanner;
  2. Crie: Scanner leitor = new Scanner(System.in);
  3. Leia: nextLine(), nextInt(), nextDouble()
  4. Feche: leitor.close();

Programa Interativo com Scanner

import java.util.Scanner;

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

        System.out.print("Digite o seu nome: ");
        String nome = leitor.nextLine();

        System.out.print("Digite a sua idade: ");
        int idade = leitor.nextInt();

        System.out.println("-------------------------");
        System.out.println("Olá, " + nome + "! Você tem " + idade + " anos.");
        
        leitor.close();
    }
}

Exercícios 1 e 2

1) Boas-vindas e idade

Objetivo: ler nome e idade e imprimir uma saudação formatada.

Entrada: Ana, 30

Saída esperada: Olá, Ana! Você tem 30 anos.

Requisitos: String, int, System.out.printf.


2) Conversor de temperatura

Objetivo: ler uma temperatura em °C e converter para °F.

Fórmula: F = (C * 9/5) + 32

Entrada: 25

Saída esperada: 25.0 °C = 77.0 °F

Requisitos: double, operadores aritméticos, precedência.


Exercícios 3 e 4

3) Área de figuras

Objetivo: ler raio r e calcular área do círculo; ler base/altura e calcular área do retângulo.

Entradas: r=3, base=5, altura=4

Saídas: Círculo: 28.2743...; Retângulo: 20

Utiliza Pi como 3.14

4) Operadores e precedência

Escreva um programa em Java que:

  1. Leia cinco valores inteiros fornecidos pelo usuário: a, b, c, d e e.
  2. Calcule o valor da seguinte expressão:
    resultado = a + b * c - d / e
  3. Mostre o valor final de resultado na tela.

Revisão Rápida

  • Convenções de código (código limpo).
  • Tipos primitivos e variáveis.
  • Operadores.
  • Condicionais (if/else, switch).
  • Laços (for, while, do-while).
  • Console com Scanner.

Próximos Passos

  • Perguntas e dúvidas
  • Leitura: documentação da Oracle sobre tipos primitivos
  • Desafio: adaptação do exercício para média de 5 alunos (laço externo)