Ejercicio de programación con Java: Encapsulación
0h 10m
Implementa una clase llamada Producto
que represente un artículo en un inventario. La clase debe seguir los principios de encapsulación y tener las siguientes características:
Atributos privados:
nombre
(String)precio
(double)stock
(int)
Un constructor que inicialice todos los atributos.
Métodos getter para todos los atributos.
Un método setter solo para el precio, que debe validar que el nuevo precio sea mayor que cero.
Un método
vender(int cantidad)
que:- Reduzca el stock en la cantidad especificada
- Devuelva true si hay suficiente stock para realizar la venta
- Devuelva false si no hay suficiente stock
- Lance una excepción IllegalArgumentException si la cantidad es negativa o cero
Un método
reponer(int cantidad)
que incremente el stock y valide que la cantidad a reponer sea positiva.
La clase debe garantizar que los datos se mantengan consistentes y que no se pueda modificar el stock directamente desde fuera de la clase.
Todos los ejercicios de programación de Java
Evalúa tus conocimientos con ejercicios de programación en Java de tipo Test, Puzzle, Código y Proyecto con VSCode.
Clases abstractas
Listas
Métodos de la clase String
Streams: reduce()
Polimorfismo
Pattern Matching
Streams: flatMap()
Llamada y sobrecarga de funciones
Métodos referenciados
Métodos de la clase String
Representación de Fecha
Operadores lógicos
Inferencia de tipos con var
Tipos de datos
Estructuras de iteración
Streams: forEach()
Objetos
Funciones lambda
Uso de Scanner
CRUD en Java de modelo Customer sobre un ArrayList
Tipos de variables
Streams: collect()
Operadores aritméticos
Arrays y matrices
Clases y objetos
Interfaz funcional Consumer
Interfaces
Enumeraciones Enums
API java.nio 2
API Optional
Interfaz funcional Function
Encapsulación
Interfaces
Uso de API Optional
Representación de Hora
Herencia básica
Clases y objetos
Interfaz funcional Supplier
HashMap
Sobrecarga de métodos
Polimorfismo de tiempo de ejecución
OOP en Java
Sobrecarga de métodos
Clases sealed
Creación de Streams
Records
Streams: min max
Métodos avanzados de la clase String
Funciones
Polimorfismo de tiempo de compilación
Reto sintaxis Java
Conjuntos
Estructuras de control
Recursión
Excepciones
Herencia avanzada
Estructuras de selección
Uso de interfaces
Operadores
Variables
HashSet
Objeto Scanner
Streams: filter()
Operaciones de Streams
Interfaz funcional Predicate
Streams: sorted()
Configuración de entorno
CRUD en Java de modelo Customer sobre un HashMap
Uso de variables
Clases
Streams: distinct()
Streams: count()
ArrayList
Datos de referencia
Interfaces funcionales
Métodos básicos de la clase String
Tipos de datos
Clases abstractas
Instalación
Funciones
Excepciones
Estructuras de control
Herencia de clases
La clase Scanner
Generics
Streams: map()
Funciones y encapsulamiento
Streams: match
Gestión de errores y excepciones
Datos primitivos
Certificados de superación de Java
Supera todos los retos de Java y obtén estos certificados de superación para mejorar tu currículum y tu empleabilidad.
Tutorial para resolver este ejercicio de programación
Java
Encapsulación
Programación Orientada a Objetos