Perfilado de sección

  • Constructores

     Qué es un constructor
    Estructura general en Java
    Constructor por defecto
    Constructor “de oficio” (vacío explícito)
    Constructor paramétrico
    Constructor de copia
    Ejemplos claros y comparativos


    ¿Qué es un constructor?

    Un constructor es un método especial que:

    • Tiene el mismo nombre que la clase.
    • No tiene tipo de retorno.
    • Se ejecuta automáticamente cuando se crea un objeto.
    • Se usa para inicializar atributos.

    Estructura general de un constructor en Java

    public NombreClase(parametros) {
        // inicialización
    }

     Reglas importantes:

    • No lleva void.
    • Puede estar sobrecargado.
    • Puede usar this.

     

      Constructor por defecto (implícito)

    Definición:

    Es el constructor que Java crea automáticamente si la clase no tiene ningún constructor definido.

    Si usted define un constructor, Java ya NO genera el constructor por defecto.


    Ejemplo

    public class Persona {
        String nombre;
        int edad;
    }

    Aunque no lo veamos, Java genera internamente:

    public Persona() {
    }


     Constructor “de oficio” (vacío explícito)

    Definición:

    Es el constructor vacío que el programador escribe explícitamente.

    Se usa cuando:

    • Queremos permitir crear objetos sin parámetros.
    • Queremos agregar lógica inicial básica.

     Estructura

    public class Persona {

        String nombre;
        int edad;

        public Persona() {
            nombre = "Sin nombre";
            edad = 0;
        }
    }


     Uso

    Persona p1 = new Persona();


     Constructor paramétrico

    Definición:

    Es aquel que recibe parámetros para inicializar los atributos con valores específicos.

    Es el más usado en diseño profesional.


    Estructura

    public class Persona {

        String nombre;
        int edad;

        public Persona(String nombre, int edad) {
            this.nombre = nombre;
            this.edad = edad;
        }
    }


    Uso

    Persona p1 = new Persona("Carlos", 25);

    Aquí se inicializa el objeto con datos reales.


    Constructor de copia

    Definición:

    Es un constructor que recibe un objeto del mismo tipo y crea una copia del mismo.

    Java no lo genera automáticamente (a diferencia de C++), se debe programar manualmente.


    Estructura

    public class Persona {

        String nombre;
        int                  edad;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

        public Persona(String nombre, int edad) {
            this.nombre = nombre;
            this.edad = edad;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
        }

        // Constructor de copia
        public Persona(Persona otraPersona) {
            this.nombre = otraPersona.nombre;
            this.edad = otraPersona.edad;
        }
    }


    🔎 Uso

    Persona p1 = new Persona("Ana", 30);
    Persona p2 = new Persona(p1);

    Ahora:

    • p1 y p2 son objetos distintos en memoria.
    • Pero tienen los mismos valores.

    Comparación clara para clase

     

    Tipo de Constructor

    Parámetros

    ¿Lo crea Java automáticamente?

    Uso principal

    Por defecto

    No

    Sí (si no hay otros)

    Inicialización básica

    De oficio

    No

    No

    Personalizar inicialización

    Paramétrico

    No

    Inicialización personalizada

    De copia

    Objeto mismo tipo

    No

    Duplicar objetos

    Concepto de Método en Programación Orientada a Objetos

    Definición

    Un método es un bloque de código definido dentro de una clase que describe una acción o comportamiento que puede realizar un objeto.  En otras palabras:  Un método es una función asociada a una clase que permite ejecutar operaciones sobre los datos del objeto.

    Los métodos permiten:

    • Organizar el código
    • Reutilizar funciones
    • Encapsular comportamientos

    Estructura de un Método en Java

    La estructura general de un método es:

    modificador tipoRetorno nombreMetodo(parametros) {
        // instrucciones
    }

    Elementos

    Elemento

    Descripción

    modificador

    nivel de acceso (public, private, protected)

    tipoRetorno

    tipo de dato que devuelve

    nombreMetodo

    identificador del método

    parámetros

    datos que recibe el método


    Los niveles de acceso en Java (public, private, protected, y default) son modificadores que determinan la visibilidad y accesibilidad de clases, métodos y atributos desde otras partes del código. Controlan el encapsulamiento, permitiendo proteger los datos sensibles (private) y definir qué partes son accesibles internamente o globalmente. 

     

    • public: Acceso total. El miembro o clase es visible desde cualquier otra clase en cualquier paquete.
    • private: Acceso restringido. Solo es visible dentro de la propia clase donde se declara.
    • protected: Acceso limitado. Visible dentro del mismo paquete y por subclases (clases hijas) incluso si están en paquetes distintos.
    • default (sin modificador): Acceso a nivel de paquete. Visible solo para clases dentro del mismo paquete.

    ____________________________________

     Ejemplo

    public int sumar(int a, int b) {
        return a + b;
    }

    Este método:

    • Es público
    • Retorna int
    • Recibe dos parámetros

    Tipos de Métodos

    En Java se pueden clasificar en cuatro casos básicos que son muy útiles pedagógicamente.

     Método sin parámetros y sin retorno

    public void saludar() {
        System.out.println("Hola estudiantes");
    }

    Uso:

    saludar();


     

    Método con parámetros y sin retorno

    public void mostrarNombre(String nombre) {
        System.out.println("Nombre: " + nombre);
    }

    Uso:

    mostrarNombre("Carlos");


     3. Método sin parámetros y con retorno

    public int obtenerNumero() {
        return 10;
    }

    Uso:

    int n = obtenerNumero();


    4. Método con parámetros y con retorno

    public double calcularPromedio(double n1, double n2) {
        return (n1 + n2) / 2;
    }

    //Uso:

    double promedio = calcularPromedio(4.0, 3.5);

     

     

     

     

     

     


    Ejercicio Resuelto 1

    Clase Calculadora

    Problema

    Crear una clase Calculadora con métodos para realizar operaciones básicas.

    Código

    public class Calculadora {

        public int sumar(int a, int b) {
            return a + b;
        }
        public int restar(int a, int b) {
            return a - b;
        }
        public int multiplicar(int a, int b) {
            return a * b;
        }
        public double dividir(double a, double b) {
            return a / b;
        }
    }


    Clase principal

    public class Principal {

        public static void main(String[] args) {

            Calculadora calc = new Calculadora();

            System.out.println("Suma: " + calc.sumar(5,3));
            System.out.println("Resta: " + calc.restar(10,4));
        

       System.out.println("Multiplicación: " + calc.multiplicar(6,7));
            System.out.println("División: " + calc.dividir(10,2));
        }
    }