Ir al contenido principal

Java Tip 3: Clases y objetos

Como lo vimos en el post anterior en Java todo es un objeto y cada clase por defecto pertenece a la clase padre Object. No importa que sea una clase String, Integer, Character,StringBuilder, etc. o una definida por el usuario, ninguna es excepción.

class Ticket extends Object{}

class Animal extends Object{}

class Persona extends Object{}

¿Qué es una clase?
Existen muchas definiciones, algunas de ellas son:
  • Plantillas para crear objetos.
  • Conjunto de objetos que comparten una estructura y comportamiento comunes.
  • Tipo definido por el usuario.
  • Combinación de unos datos específicos y de las rutinas que pueden operar con esos datos.
Síntaxis de una clase:
[modificador] class Clase {
   //Campos o atributos (datos o estado)
   //Métodos (subrutinas)
}  
Donde el modificador puede ser public (si es así, la clase debe llamarse de igual forma que el archivo) o default, pero nunca private o protected.

Nota: Para que exista un objeto primero debe existir el tipo definido.

Objetos
Un objeto es:
  • Una instancia de una clase definida.
  • Algo que tiene un estado, un comportamiento y una identidad.
  • Una instancia de una clase predefinida en Java o declarada por el usuario y referenciada por una variable que almacena su dirección de memoria.
Tengamos en cuenta una clase Camisa.  Sus datos miembro son color y talla y ambas son de tipo String. Además que posee métodos (que también son miembros de la clase) para acceder a ellos.

Camisa.java
package com.cityjava.modelo;

public class Camisa {
 private String color;
 private String talla;

 public Camisa(){}

 public Camisa(String color, String talla){
  super();
  this.talla=talla;
  this.color=color;
 }

 public Camisa(String color){
  this(color,"");
 }

 public void setColor(String color){
  this.color=color;
 }

 public String getColor(){
  return color;
 }

 public void setTalla(String talla){
  this.talla=talla;
 }

 public String getTalla(){
  return talla;
 }

 @Override
 public String toString() {
  return "Camisa [color=" + color + ", talla=" + talla + "]";
 }
 
 
}

Nota: Al ser variables de clase, tanto talla y color se inician de manera automática.

Ejemplo:
//Solo aplica para variables de clase

private byte myByte; // 0
private short myShort; // 0
private int myInt; // 0
private long myLong; // 0L
private float myFloat; // 0.0F
private double myDouble; // 0.0
private char myChar; // '\u0000'
private boolean myBoolean; // false

Para crear una instancia, debemos respetar la siguiente síntaxis:
Clase referencia = new ConstructorClase();
/**
* Donde: 
* Clase es el tipo definido por el usuario
* referencia es el nombre de la variable del tipo de clase
* new es el operador para crear nuevos objetos
* ConstructorClase es el constructor del tipo definido
**/

Tenemos ahora:

TestCamisa.java
package com.cityjava;

//importamos la clase Camisa
import com.cityjava.modelo.Camisa;

public class TestCamisa {

   //Método principal de la clase
   public static void main(String[] args){
     Camisa camisa = new Camisa();
     //...

   }
}

Nota: Nunca olvidar que tanto las variables y los métodos son miembros de la clase.

Links:
http://panamahitek.com/que-son-las-clases-en-java/
https://www.arkaitzgarro.com/java/capitulo-9.html


Comentarios

Entradas populares de este blog

Java Tip 28: hilos virtuales en Java

Con Java 21 entra un nuevo concepto: hilos virtuales java ( Java Virtual Threads ).  La cual es una nueva característica que nos permite crear miles o millones de hilos (tareas en paralelo). Los cuales se diferencian de los hilos comunes ( Platform Threads ) al no depender del sistema operativo , puesto que son virtuales. De estos se encargará la JVM. Al usar hilos virtuales ahorramos recursos del procesador y de memoria del sistema , sin importar si estamos creando y/o usando miles o millones. Los hilos virtuales son ideales para aplicaciones modernas donde se requiere esperar y recibir respuestas o acceder a bases de datos remotas, entre otras cosas. Además no impide usar los hilos comunes que dependen del sistema operativo. Observemos un ejemplo de uso de hilos virtuales. VirtualThreadsDemo.java package com.comunidad.demo; public class VirtualThreadsDemo { public static void main (String [] args) throws InterruptedException { // Crear un Virtual Th...

Java Tip 1: Importaciones por default

Tip 1 : Todas las clases del paquete java.lang se importan por defecto. Podríamos hacer algo como esto: import java.lang.System ; import java.lang.String ; import java.lang.Boolean ; import java.lang.Integer ; import java.lang.Short ; import java.lang.StringBuilder ; import java.lang.StringBuffer ; O cosas (aberrantes) como: //Traernos todas las clases del paquete java.lang import java.lang.* ; Sin embargo, no es necesario. Repitamos esto como un mantra: Todas las clases del paquete  java.lang  se importan por defecto, no es necesario escribir de más .

Java Tip 30: Date & Time API

Quien lleva tiempo programando en Java sabrá que el formateo de fechas es un verdadero dolor de cabeza. Afortunadamente desde la versión 8 Java posee una nuevo Date y Time API que permite ahorrarnos algunos bloques de código engorrosos y tediosos. ¿Qué veremos? Nos enfocaremos en estas clases del paquete `` java.time ``: Instant: para un punto en el tiempo, un instante (antes se usaba System.currentTimeMillis() ). LocalDate: para obtener la fecha del sistema. LocalTime: para obtener la hora del sistema LocalDateTime: para obtener fecha y hora del sistema. ZonedDateTime: para obtener fecha y hora del sistema por zona horaria. TestTimeAPI.java import java.time.LocalTime ; import java.time.LocalDate ; import java.time.LocalDateTime ; public class TestTimeAPI { public static void main (String [] args){ System. out . println ( "\t Nueva API Time de Java." ); LocalTime horaActual = LocalTime. now (); L...