Objetos en Java
Escribe una clase llamada Chip en Chip.java con un método beep que imprima ok. El método no es static en esta página. En un segundo archivo Bench.java, construye un chip con Chip c = new Chip();, luego llama c.beep();. Compila ambos archivos y ejecuta java Bench. La pantalla debe mostrar una línea: ok. La palabra new construye un objeto a partir de la clase. La variable c guarda ese objeto. Llamas beep en c, no en el nombre desnudo de la clase. Ese objeto construido — y la llamada que lo usa — es lo que enseña esta página.
Un objeto a partir de la clase
Una clase sigue siendo el tipo con nombre. Un objeto es un valor construido a partir de ese tipo. La línea new Chip() pide a Java que construya ese valor. Lo guardas en una variable de tipo Chip y usas la variable para alcanzar métodos que pertenecen a cada objeto.
Crea primero Chip.java. La línea public class es public class Chip. No dejes un nombre de clase antiguo Badge o Desk en este archivo. Dentro de las llaves escribe void beep() — sin la palabra static en este encabezado. El cuerpo es una impresión: System.out.println("ok");. Mantén void. El método no devuelve un número. En Chip.java no hay main en esta página. Guarda el archivo antes de compilar.
public class Chip {
void beep() {
System.out.println("ok");
}
}
Bench construye el chip y luego llama beep
Crea Bench.java en la misma carpeta. Su línea public class es public class Bench. Dentro de main, escribe dos líneas: primero Chip c = new Chip();, luego c.beep();. La primera declara una variable c de tipo Chip y la llena con un objeto nuevo. La segunda llama beep en ese objeto. El punto va después del nombre de la variable, no solo después del nombre de la clase.
public class Bench {
public static void main(String[] args) {
Chip c = new Chip();
c.beep();
}
}
Desde la carpeta que guarda ambos archivos, ejecuta javac Chip.java Bench.java. Puedes compilar primero Chip.java y luego Bench.java cuando ambos estén completos. Cuando paréntesis, llaves y puntos y coma coinciden, javac no escribe una línea propia. Luego ejecuta java Bench — no java Bench.java ni java Chip. Quita el final .java del comando de ejecución. Arranca la clase que guarda main. Los mismos comandos funcionan en Windows y en macOS.
El programa debe imprimir una línea y parar: ok. No debe pedirte que escribas. Si la terminal espera teclado, aún queda una llamada nextLine de un ejercicio antiguo en un archivo. Bórrala y mantén Chip c = new Chip(); más c.beep(); en Bench, con beep en Chip.
Recorre la ejecución una vez. Java empieza en Bench.main. La expresión new Chip() construye un objeto. Ese objeto se guarda en c. La llamada c.beep() entra en beep para ese objeto. El método imprime ok y vuelve. Luego termina Bench. La línea de pantalla vino del método del objeto, después de que new creó el objeto.
Piensa la clase como el plano en disco y el objeto como una pieza construida en memoria para esta ejecución. Compilas el plano una vez. Cada new Chip() construye otra pieza. La variable nombra la pieza para que líneas posteriores la alcancen. Sin ese nombre, en esta página no queda asa para beep.
Por qué la llamada usa c, no Chip solo
En la página de clases, un método static podía llamarse como Badge.show() con el nombre del tipo. Aquí beep no tiene la palabra static. Java espera primero un objeto. Escribir Chip.beep(); sin objeto no encaja en esta forma de principiante. Construye con new, guarda el resultado en una variable, luego llama a través de esa variable.
Si escribes solo new Chip(); y nunca lo guardas, igual construiste un objeto, pero no te queda nombre para llamar beep. En esta página mantén la variable: Chip c = new Chip(); luego c.beep();. La variable es el camino al objeto después de que new termina.
Una demo static sobrante puede confundir la carpeta. Un archivo que aún llama Badge.show(); es la forma de la lección anterior. Para esta página mantén Chip y Bench y la línea new. Aquí no necesitas Badge.
Dos objetos, dos beeps
Puedes construir más de un objeto a partir de la misma clase. Cada new Chip() hace un objeto aparte. Cada objeto puede ejecutar beep por su cuenta. El texto de la clase se comparte; los objetos no son el mismo valor.
public class Bench {
public static void main(String[] args) {
Chip a = new Chip();
Chip b = new Chip();
a.beep();
b.beep();
}
}
Compila y ejecuta de nuevo: javac Chip.java Bench.java, luego java Bench. La pantalla debe mostrar dos líneas: ok, luego ok. La primera vino de a. La segunda de b. Ambas usaron el mismo texto del método beep en Chip, pero cada llamada corrió en un objeto distinto construido con new.
Si la pantalla muestra solo un ok, comprueba que estén ambas llamadas y que ambas variables se construyeran con new. Escribir Chip b = a; no construye un segundo objeto; hace que b apunte al mismo objeto que a. Esa idea espera páginas posteriores. En esta página usa dos expresiones new Chip() cuando quieras dos objetos.
Lo que esta página deja para fields
Esta página aún no guarda un número ni una palabra dentro del chip. Los campos — nombres que guardan datos en cada objeto — son la página siguiente. Aquí el objeto existe después de new, y el método de instancia beep solo imprime. Eso basta para ver la separación entre la clase como tipo y un objeto como valor construido.
Puedes renombrar la variable de c a unit: Chip unit = new Chip(); luego unit.beep();. La pantalla sigue en ok cuando el cuerpo del método aún imprime esa palabra. El nombre de la variable es tuyo; el nombre del tipo Chip y la expresión new Chip() deben seguir coincidiendo.
Si javac dice que no encuentra el símbolo Chip al compilar Bench.java, comprueba que Chip.java esté en la misma carpeta y que la línea de clase diga realmente public class Chip. Si la ejecución no imprime nada, confirma que main aún llama c.beep(); después de la línea new y que beep aún contiene println.
Antes de fields
Puedes escribir Chip con void beep(), construir un objeto con Chip c = new Chip(); y llamar c.beep(); desde Bench. Compila ambos archivos y ejecuta java Bench. La pantalla muestra ok. Un segundo new Chip() construye otro objeto que puede hacer beep por su cuenta. La página siguiente es fields, donde cada objeto empieza a guardar sus propios datos.
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 Instrucciones
- Lee cada pregunta cuidadosamente
- Selecciona la mejor respuesta para cada pregunta
- Puedes repetir el quiz tantas veces como quieras
- Tu progreso se mostrará en la parte superior