Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Domina Java: Entendiendo Objetos, Clases y Conceptos Básicos de POO

Java es un lenguaje Orientado a Objetos. Como lenguaje con características de POO, Java soporta los siguientes conceptos fundamentales:

En este capítulo veremos los conceptos: Clases y Objetos.

Objetos en Java

Veamos en profundidad qué son los objetos. En el mundo real hay muchos objetos: coches, perros, humanos. Todos tienen estado y comportamiento.

Si consideramos un perro, su estado es: nombre, raza, color; comportamiento: ladrar, mover la cola, correr.

Comparando objeto software con objeto real, tienen características muy similares.

Los objetos software también tienen estado y comportamiento. El estado se almacena en campos y el comportamiento se muestra vía métodos.

En desarrollo de software, los métodos operan sobre el estado interno de un objeto y la comunicación objeto-a-objeto se hace vía métodos.

Clases en Java

Una clase es un modelo a partir del cual se crean objetos individuales.

Ejemplo de una clase:

Ejemplo

public class Perro {
  String raza;
  int edad;
  String color;
  void ladrando() { }
  void hambriento() { }
  void durmiendo() { }
}

Una clase puede contener cualquiera de los siguientes tipos de variables:

Una clase puede tener cualquier número de métodos para acceder al valor de varios tipos de métodos. En el ejemplo, ladrando(), hambriento() y durmiendo() son métodos.

Constructores

Al hablar de clases, uno de los subtemas más importantes son los constructores. Toda clase tiene un constructor. Si no escribimos explícitamente uno, el compilador de Java crea un constructor por defecto.

Cada vez que se crea un nuevo objeto, se invoca al menos un constructor. La regla principal: deben tener el mismo nombre que la clase. Una clase puede tener más de un constructor.

Ejemplo de constructor:

Ejemplo

public class Cachorro {
  public Cachorro() { }
  public Cachorro(String nombre) {
    // Este constructor tiene un parámetro, nombre.
  }
}

Java también soporta Clases Singleton donde solo puedes crear una instancia de una clase.

Nota – Hay dos tipos de constructores. Los discutiremos en detalle en capítulos posteriores.

Creando un Objeto

Como se mencionó, una clase proporciona los planos para objetos. Básicamente, un objeto se crea a partir de una clase. En Java, la palabra clave new se usa para crear nuevos objetos.

Tres pasos al crear un objeto:

Ejemplo de creación de objeto:

Ejemplo

Demo en Vivo
public class Cachorro {
  public Cachorro(String nombre) {
    System.out.println("Nombre pasado: " + nombre);
  }
  public static void main(String []args) {
    // Crear objeto miCachorro
    Cachorro miCachorro = new Cachorro("tommy");
  }
}

Al compilar y ejecutar, produce:

Salida

Nombre pasado: tommy

Acceso a Variables de Instancia y Métodos

Se accede vía objetos creados. Para acceder a una variable de instancia:

/* Primero crear un objeto */
ReferenciaObjeto = new Constructor();
/* Llamar a una variable */
ReferenciaObjeto.nombreVariable;
/* Llamar a un método de clase */
ReferenciaObjeto.NombreMetodo();

Ejemplo

Este ejemplo explica cómo acceder a variables de instancia y métodos de una clase.

Demo en Vivo
public class Cachorro {
  int edadCachorro;
  public Cachorro(String nombre) {
    System.out.println("Nombre elegido: " + nombre);
  }
  public void setEdad(int edad) { edadCachorro = edad; }
  public int getEdad() {
    System.out.println("Edad del cachorro: " + edadCachorro);
    return edadCachorro;
  }
  public static void main(String []args) {
    Cachorro miCachorro = new Cachorro("tommy");
    miCachorro.setEdad(2);
    miCachorro.getEdad();
    System.out.println("Valor Variable: " + miCachorro.edadCachorro);
  }
}

Al compilar y ejecutar:

Salida

Nombre elegido: tommy
Edad del cachorro: 2
Valor Variable: 2

Reglas de Declaración en Archivo Fuente

Reglas esenciales al declarar clases, sentencias import y package en un archivo fuente:

Las clases tienen varios niveles de acceso y tipos: abstractas, final, etc. Explicaremos en el capítulo de modificadores de acceso.

Además de los tipos mencionados, Java tiene clases especiales: clases internas y anónimas.

Paquete Java

En palabras simples, es una forma de categorizar clases e interfaces. Al desarrollar aplicaciones en Java, se escriben cientos de clases e interfaces, por lo que categorizarlas es imprescindible y facilita la vida.

Sentencias Import

Si se da un nombre completamente calificado (paquete + nombre de clase), el compilador puede localizar fácilmente el código fuente o clases. La sentencia import da la ubicación correcta al compilador para encontrar esa clase.

Ejemplo: la siguiente línea pide al compilador cargar todas las clases en java_installation/java/io:

import java.io.*;

Estudio de Caso Simple

Crearemos dos clases: Empleado y EmpleadoTest.

Primero abre el bloc de notas y añade el siguiente código. Esta es la clase Empleado, pública. Guárdalo como Empleado.java.

La clase Empleado tiene cuatro variables de instancia: nombre, edad, cargo y salario. Tiene un constructor explícito que toma un parámetro.

Ejemplo

import java.io.*;
public class Empleado {
  String nombre;
  int edad;
  String cargo;
  double salario;
  // Constructor de la clase Empleado
  public Empleado(String nombre) { this.nombre = nombre; }
  // Asignar edad
  public void empEdad(int empEdad) { edad = empEdad; }
  // Asignar cargo
  public void empCargo(String empCargo) { cargo = empCargo; }
  // Asignar salario
  public void empSalario(double empSalario) { salario = empSalario; }
  // Imprimir detalles del empleado
  public void printEmpleado() {
    System.out.println("Nombre: " + nombre);
    System.out.println("Edad: " + edad);
    System.out.println("Cargo: " + cargo);
    System.out.println("Salario: " + salario);
  }
}

El procesamiento empieza en el método main. Para ejecutar Empleado, necesitamos un main y crear objetos. Crearemos una clase separada para esto.

Clase EmpleadoTest, crea dos instancias de Empleado e invoca métodos para asignar valores.

Guarda como EmpleadoTest.java.

import java.io.*;
public class EmpleadoTest {
  public static void main(String args[]) {
    Empleado empUno = new Empleado("James Smith");
    Empleado empDos = new Empleado("Mary Anne");
    empUno.empEdad(26);
    empUno.empCargo("Ingeniero de Software Senior");
    empUno.empSalario(1000);
    empUno.printEmpleado();
    empDos.empEdad(21);
    empDos.empCargo("Ingeniero de Software");
    empDos.empSalario(500);
    empDos.printEmpleado();
  }
}

Compila ambas clases y ejecuta EmpleadoTest:

Salida

C:\> javac Empleado.java
C:\> javac EmpleadoTest.java
C:\> java EmpleadoTest
Nombre:James Smith
Edad:26
Cargo:Ingeniero de Software Senior
Salario:1000.0
Nombre:Mary Anne
Edad:21
Cargo:Ingeniero de Software
Salario:500.0

¿Qué Sigue?

En la próxima sesión, discutiremos los tipos de datos básicos en Java y cómo usarlos al desarrollar aplicaciones.

Java

  1. Clases y objetos en C#: Fundamentos para POO robusta
  2. Clases y Objetos en C++: Guía Práctica de Programación Orientada a Objetos
  3. Funciones y clases amigas en C++: dominando el control de acceso
  4. Variables y Literales en Java: Guía Completa
  5. Clases y Objetos en Java: Guía Práctica
  6. Palabra clave final en Java: Variables, métodos y clases
  7. Operador instanceof en Java: Guía completa
  8. Clases y métodos abstractos en Java: Guía completa
  9. Dominando clases anidadas e internas en Java: Tipos, ejemplos y mejores prácticas
  10. Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
  11. Patrón Singleton en Java explicado: Cómo implementarlo y usarlo de forma segura