import java.util.Scanner;

public class EjerciciosJava {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        ClasePersonaconatributos();
        Metodoquecalculcaeláreadeuncirculo();

    public static void ClasePersonaconatributos() {
        Scanner sc = new Scanner(System.in);
        System.out.println("41.Clase Persona con atributos");    
        class Persona {
        String nombre;
        int edad;
}
    public static void Metodoquecalculcaeláreadeuncirculo() {
        Scanner sc = new Scanner(System.in);
        System.out.println("42.Método que calcula el área de un círculo");
        public static void main(String[] args) {
        public static double areaCirculo(double radio) {
    return Math.PI * radio * radio;
}
    public static void ClaseRectánguloconmétodo() {
        Scanner sc = new Scanner(System.in);
        System.out.println("43.Clase Rectángulo con método");
        class Rectangulo {
    double base, altura;

    Rectangulo(double base, double altura) {
        this.base = base;
        this.altura = altura;
    }

    double calcularArea() {
        return base * altura;
    }
}
    public static void ClaseCuentaBancariaconmétodos() {
        Scanner sc = new Scanner(System.in);
        System.out.println("44.Clase CuentaBancaria con métodos");
        class CuentaBancaria {
    double saldo;

    void depositar(double cantidad) {
        saldo += cantidad;
    }

    void retirar(double cantidad) {
        if (cantidad <= saldo) saldo -= cantidad;
        else System.out.println("Fondos insuficientes.");
    }

    double obtenerSaldo() {
        return saldo;
    }
}
    public static void Programaqueusethisyconstructor() {
        Scanner sc = new Scanner(System.in);
        System.out.println("45.Programa que use this y constructor");
        class Alumno {
    String nombre;
    int edad;

    Alumno(String nombre, int edad) {
        this.nombre = nombre;
        this.edad = edad;
    }

    void mostrar() {
        System.out.println("Nombre: " + nombre + ", Edad: " + edad);
    }
}
    public static void Sobrecargademétodos() {
        Scanner sc = new Scanner(System.in);
        System.out.println("46.Sobrecarga de métodos");
        public static int suma(int a, int b) {
    return a + b;
}

public static double suma(double a, double b) {
    return a + b;
}

    public static void Claseconmétodoqueverificasiunnúmeroesprimo() {
        Scanner sc = new Scanner(System.in);
        System.out.println("47.Clase con método que verifica si un número es primo");
        class Numero {
    int valor;

    Numero(int valor) {
        this.valor = valor;
    }

    boolean esPrimo() {
        if (valor < 2) return false;
        for (int i = 2; i <= Math.sqrt(valor); i++) {
            if (valor % i == 0) return false;
        }
        return true;
    }
}

    public static void Métodoquerecibeunarrayydevuelveelmáximojava() {
        Scanner sc = new Scanner(System.in);
        System.out.println("48.Método que recibe un array y devuelve el máximo java");
        public static int maximoEnArray(int[] arr) {
    int max = arr[0];
    for (int num : arr) {
        if (num > max) max = num;
    }
    return max;
}

    public static void Métodoestáticoqueinvierteunacadena() {
        Scanner sc = new Scanner(System.in);
        System.out.println("49.Método estático que invierte una cadena");
        public static String invertirCadena(String cadena) {
    return new StringBuilder(cadena).reverse().toString();
}

    public static void Programaqueusethisyconstructor() {
        Scanner sc = new Scanner(System.in);
        System.out.println("50.Programa que use this y constructor");
        public class Main {
    public static void main(String[] args) {
        Util.mostrarSaludo();
    }
}
    public class Util {
        public static void mostrarSaludo() {
        System.out.println("¡Hola desde otra clase!");
    }
}
    // Ej 41
    Persona p = new Persona();
    p.nombre = "Ana"; p.edad = 25;
    System.out.println("Persona: " + p.nombre + ", Edad: " + p.edad);

    // Ej 42
    System.out.println("Área círculo (radio=5): " + areaCirculo(5));

    // Ej 43
    Rectangulo r = new Rectangulo(4, 6);
    System.out.println("Área rectángulo: " + r.calcularArea());

    // Ej 44
    CuentaBancaria cuenta = new CuentaBancaria();
    cuenta.depositar(1000);
    cuenta.retirar(200);
    System.out.println("Saldo final: " + cuenta.obtenerSaldo());

    // Ej 45
    Alumno alumno = new Alumno("Carlos", 20);
    alumno.mostrar();

    // Ej 46
    System.out.println("Suma int: " + suma(2, 3));
    System.out.println("Suma double: " + suma(2.5, 3.5));

    // Ej 47
    Numero num = new Numero(17);
    System.out.println("¿Es primo?: " + num.esPrimo());

    // Ej 48
    int[] arr = {4, 7, 9, 1};
    System.out.println("Máximo en array: " + maximoEnArray(arr));

    // Ej 49
    System.out.println("Invertir cadena: " + invertirCadena("Hola"));

    // Ej 50 → En archivo separado como se mostró
}
