fix invalid codeWed, 05 Mar 2025 Please keep input under 1000 characters
Aquí te muestro un ejemplo de una tienda de pantalones que implementa los dos primeros pilares de la POO (Programación Orientada a Objetos) en Java: encapsulación y herencia.
**Pilar 1: Encapsulación**
La encapsulación es la capacidad de ocultar la implementación de un objeto y exponer solo la interfaz que se puede utilizar desde fuera del objeto.
**Pilar 2: Herencia**
La herencia es la capacidad de crear un nuevo objeto que hereda las propiedades y métodos de un objeto existente.
**Ejemplo:**
```java
// Clase Pantalon (superclase)
public class Pantalon {
private String color;
private String talla;
private double precio;
public Pantalon(String color, String talla, double precio) {
this.color = color;
this.talla = talla;
this.precio = precio;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getTalla() {
return talla;
}
public void setTalla(String talla) {
this.talla = talla;
}
public double getPrecio() {
return precio;
}
public void setPrecio(double precio) {
this.precio = precio;
}
public void mostrarInformacion() {
System.out.println("Color: " + color);
System.out.println("Talla: " + talla);
System.out.println("Precio: $" + precio);
}
}
// Clase Jeans (subclase que hereda de Pantalon)
public class Jeans extends Pantalon {
private int cantidadBotones;
public Jeans(String color, String talla, double precio, int cantidadBotones) {
super(color, talla, precio);
this.cantidadBotones = cantidadBotones;
}
public int getCantidadBotones() {
return cantidadBotones;
}
public void setCantidadBotones(int cantidadBotones) {
this.cantidadBotones = cantidadBotones;
}
@Override
public void mostrarInformacion() {
super.mostrarInformacion();
System.out.println("Cantidad de botones: " + cantidadBotones);
}
}
// Clase Tienda
public class Tienda {
public static void main(String[] args) {
Pantalon pantalon = new Pantalon("Azul", "M", 50.0);
pantalon.mostrarInformacion();
Jeans jeans = new Jeans("Negro", "L", 60.0, 5);
jeans.mostrarInformacion();
}
}
```
En este ejemplo, la clase `Pantalon` es la superclase y la clase `Jeans` es la subclase que hereda de `Pantalon`. La clase `Jeans` tiene una propiedad adicional `cantidadBotones` que no existe en la clase `Pantalon`.
La encapsulación se implementa mediante los métodos `get` y `set` que permiten acceder y modificar las propiedades de los objetos de manera segura.
La herencia se implementa mediante la palabra clave `extends` que permite a la clase `Jeans` heredar las propiedades y métodos de la clase `Pantalon`. La clase `Jeans` también puede agregar nuevas propiedades y métodos que no existen en la clase `Pantalon`.
Aquí te muestro un ejemplo básico de una tienda de pantalones en Java. Esta implementación incluye una clase `Pantalon` para representar un pantalón, una clase `Tienda` para representar la tienda y sus métodos para agregar, eliminar y buscar pantalones.
```java
// Pantalon.java
public class Pantalon {
private String codigo;
private String marca;
private String modelo;
private double precio;
private int cantidad;
public Pantalon(String codigo, String marca, String modelo, double precio, int cantidad) {
this.codigo = codigo;
this.marca = marca;
this.modelo = modelo;
this.precio = precio;
this.cantidad = cantidad;
}
public String getCodigo() {
return codigo;
}
public String getMarca() {
return marca;
}
public String getModelo() {
return modelo;
}
public double getPrecio() {
return precio;
}
public int getCantidad() {
return cantidad;
}
public void setCantidad(int cantidad) {
this.cantidad = cantidad;
}
}
```
```java
// Tienda.java
import java.util.ArrayList;
import java.util.List;
public class Tienda {
private List<Pantalon> pantalones;
public Tienda() {
this.pantalones = new ArrayList<>();
}
public void agregarPantalon(Pantalon pantalon) {
pantalones.add(pantalon);
}
public void eliminarPantalon(String codigo) {
pantalones.removeIf(p -> p.getCodigo().equals(codigo));
}
public Pantalon buscarPantalon(String codigo) {
for (Pantalon pantalon : pantalones) {
if (pantalon.getCodigo().equals(codigo)) {
return pantalon;
}
}
return null;
}
public List<Pantalon> getPantalones() {
return pantalones;
}
}
```
```java
// Main.java
public class Main {
public static void main(String[] args) {
Tienda tienda = new Tienda();
Pantalon pantalon1 = new Pantalon("P01", "Nike", "Air Max", 80.99, 10);
Pantalon pantalon2 = new Pantalon("P02", "Adidas", "Superstar", 70.99, 5);
tienda.agregarPantalon(pantalon1);
tienda.agregarPantalon(pantalon2);
System.out.println("Pantalones en la tienda:");
for (Pantalon pantalon : tienda.getPantalones()) {
System.out.println(pantalon.getCodigo() + " - " + pantalon.getMarca() + " - " + pantalon.getModelo() + " - $" + pantalon.getPrecio());
}
tienda.eliminarPantalon("P01");
System.out.println("\nPantalones en la tienda después de eliminar P01:");
for (Pantalon pantalon : tienda.getPantalones()) {
System.out.println(pantalon.getCodigo() + " - " + pantalon.getMarca() + " - " + pantalon.getModelo() + " - $" + pantalon.getPrecio());
}
Pantalon pantalonBuscado = tienda.buscarPantalon("P02");
if (pantalonBuscado != null) {
System.out.println("\nPantalon P02 encontrado:");
System.out.println(pantalonBuscado.getCodigo() + " - " + pantalonBuscado.getMarca() + " - " + pantalonBuscado.getModelo() + " - $" + pantalonBuscado.getPrecio());
} else {
System.out.println("\nPantalon P02 no encontrado");
}
}
}
```
Este código crea una tienda con dos pantalones, los muestra, elimina uno de ellos y busca otro. El resultado será:
```
Pantalones en la tienda:
P01 - Nike - Air Max - $80.99
P02 - Adidas - Superstar - $70.99
Pantalones en la tienda después de eliminar P01:
P02 - Adidas - Superstar - $70.99
Pantalon P02 encontrado:
P02 - Adidas - Superstar - $70.99
```
Aquí te muestro un ejemplo de cómo podrías implementar una tienda de pantalones con los dos primeros pilares de la POO (Encapsulamiento y Abstracción) en Java:
**Pantalon.java**
```java
public class Pantalon {
private String marca;
private String talla;
private double cintura;
private boolean ajustable;
private double precio;
private String tipo;
// Constructor
public Pantalon(String marca, String talla, double cintura, boolean ajustable, double precio, String tipo) {
this.marca = marca;
this.talla = talla;
this.cintura = cintura;
this.ajustable = ajustable;
this.precio = precio;
this.tipo = tipo;
}
// Getters y setters
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getTalla() {
return talla;
}
public void setTalla(String talla) {
this.talla = talla;
}
public double getCintura() {
return cintura;
}
public void setCintura(double cintura) {
this.cintura = cintura;
}
public boolean isAjustable() {
return ajustable;
}
public void setAjustable(boolean ajustable) {
this.ajustable = ajustable;
}
public double getPrecio() {
return precio;
}
public void setPrecio(double precio) {
this.precio = precio;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
// Método para mostrar información del pantalón
public void mostrarInformacion() {
System.out.println("Marca: " + marca);
System.out.println("Talla: " + talla);
System.out.println("Cintura: " + cintura + " cm");
System.out.println("Ajustable: " + (ajustable ? "Sí" : "No"));
System.out.println("Precio: $" + precio);
System.out.println("Tipo: " + tipo);
}
}
```
**Tienda.java**
```java
import java.util.ArrayList;
import java.util.Scanner;
public class Tienda {
private ArrayList<Pantalon> pantalones;
private Scanner scanner;
// Constructor
public Tienda() {
pantalones = new ArrayList<>();
scanner = new Scanner(System.in);
}
// Método para agregar un pantalón a la tienda
public void agregarPantalón() {
System.out.println("Ingrese la marca del pantalón:");
String marca = scanner.nextLine();
System.out.println("Ingrese la talla del pantalón:");
String talla = scanner.nextLine();
System.out.println("Ingrese la cintura del pantalón (en cm):");
double cintura = Double.parseDouble(scanner.nextLine());
System.out.println("¿Es ajustable el pantalón? (S/N)");
boolean ajustable = scanner.nextLine().equalsIgnoreCase("S");
System.out.println("Ingrese el precio del pantalón:");
double precio = Double.parseDouble(scanner.nextLine());
System.out.println("Ingrese el tipo del pantalón:");
String tipo = scanner.nextLine();
Pantalon pantalón = new Pantalon(marca, talla, cintura, ajustable, precio, tipo);
pantalones.add(pantalón);
System.out.println("Pantalón agregado con éxito.");
}
// Método para mostrar el menú de la tienda
public void mostrarMenú() {
System.out.println("Menú de la tienda:");
System.out.println("1. Agregar pantalón");
System.out.println("2. Vender pantalón");
System.out.println("3. Mostrar ticket");
System.out.println("4. Salir");
}
// Método para vender un pantalón
public void venderPantalón() {
if (pantalones.isEmpty()) {
System.out.println("No hay pantalones disponibles para vender.");
return;
}
System.out.println("Pantalones disponibles:");
for (int i = 0; i < pantalones.size(); i++) {
System.out.println((i + 1) + ". " + pantalones.get(i).getMarca() + " - " + pantalones.get(i).getTalla());
}
System.out.println("Ingrese el número del pantalón que desea vender:");
int indice = Integer.parseInt(scanner.nextLine()) - 1;
if (indice < 0 || indice >= pantalones.size()) {
System.out.println("Pantalón no encontrado.");
return;
}
Pantalon pantalón = pantalones.get(indice);
System.out.println("¿Desea vender el pantalón a $" + pantalón.getPrecio() + "? (S/N)");
if (scanner.nextLine().equalsIgnoreCase("S")) {
System.out.println("Pantalón vendido con éxito.");
pantalones.remove(indice);
} else {
System.out.println("Venta cancelada.");
}
}
// Método para mostrar el ticket
public void mostrarTicket() {
if (pantalones.isEmpty()) {
System.out.println("No hay pantalones para mostrar en el ticket.");
return;
}
System.out.println("Ticket:");
for (Pantalon pantalón : pantalones) {
pantalón.mostrarInformacion();
System.out.println();
}
}
// Método principal
public void main() {
while (true) {
mostrarMenú();
System.out.println("Ingrese su opción:");
int opción = Integer.parseInt(scanner.nextLine());
switch (opción) {
case 1:
agregarPantalón();
break;
case 2:
venderPantalón();
break;
case 3:
mostrarTicket();
break;
case 4:
System.out.println("Adiós.");
return;
default:
System.out.println("Opción inválida. Por favor, inténtelo de nuevo.");
}
}
}
public static void main(String[] args) {
Tienda tienda = new Tienda();
tienda.main();
}
}
```
Este código crea una tienda de pantalones con los siguientes métodos:
* `agregarPantalón()`: Agrega un pantalón a la tienda.
* `mostrarMenú()`: Muestra el menú de la tienda.
* `venderPantalón()`: Vende un pantalón.
* `mostrarTicket()`: Muestra el ticket con los pantalones disponibles.
* `main()`: Es el método principal que ejecuta la tienda.
La tienda utiliza una lista de pantalones para almacenar los pantalones disponibles. Cada pantalón tiene los siguientes atributos:
* `marca`: La marca del pantalón.
* `talla`: La talla del pantalón.
* `cintura`: La cintura del pantalón (en cm).
* `ajustable`: Si el pantalón es ajustable.
* `precio`: El precio del pantalón.
* `tipo`: El tipo del pantalón.
La tienda utiliza un scanner para leer la entrada del usuario y un switch para manejar las opciones del menú.
Aquí te dejo un ejemplo de cómo podrías implementar una tienda de pantalones con los dos primeros pilares de la POO (Encapsulamiento y Abstracción) en Java:
**Pantalon.java**
```java
public class Pantalon {
private String marca;
private String talla;
private double cintura;
private boolean ajustable;
private double precio;
private String tipo;
public Pantalon(String marca, String talla, double cintura, boolean ajustable, double precio, String tipo) {
this.marca = marca;
this.talla = talla;
this.cintura = cintura;
this.ajustable = ajustable;
this.precio = precio;
this.tipo = tipo;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getTalla() {
return talla;
}
public void setTalla(String talla) {
this.talla = talla;
}
public double getCintura() {
return cintura;
}
public void setCintura(double cintura) {
this.cintura = cintura;
}
public boolean isAjustable() {
return ajustable;
}
public void setAjustable(boolean ajustable) {
this.ajustable = ajustable;
}
public double getPrecio() {
return precio;
}
public void setPrecio(double precio) {
this.precio = precio;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
@Override
public String toString() {
return "Pantalon{" +
"marca='" + marca + '\'' +
", talla='" + talla + '\'' +
", cintura=" + cintura +
", ajustable=" + ajustable +
", precio=" + precio +
", tipo='" + tipo + '\'' +
'}';
}
}
```
**Tienda.java**
```java
import java.util.Scanner;
public class Tienda {
private Pantalon[] pantalones;
private int cantidadPantalones;
public Tienda(int cantidadPantalones) {
this.pantalones = new Pantalon[cantidadPantalones];
this.cantidadPantalones = 0;
}
public void agregarPantalon(Pantalon pantalon) {
pantalones[cantidadPantalones] = pantalon;
cantidadPantalones++;
}
public void mostrarMenu() {
System.out.println("1. Ver pantalones");
System.out.println("2. Vender pantalón");
System.out.println("3. Ver ticket");
System.out.println("4. Salir");
}
public void mostrarPantalones() {
for (int i = 0; i < cantidadPantalones; i++) {
System.out.println(pantalones[i].toString());
}
}
public void venderPantalon() {
Scanner scanner = new Scanner(System.in);
System.out.println("Ingrese el número del pantalón que desea vender:");
int numeroPantalon = scanner.nextInt();
if (numeroPantalon > 0 && numeroPantalon <= cantidadPantalones) {
Pantalon pantalon = pantalones[numeroPantalon - 1];
System.out.println("Pantalón vendido: " + pantalon.toString());
System.out.println("Precio: " + pantalon.getPrecio());
System.out.println("Ticket:");
System.out.println("Pantalón: " + pantalon.getMarca() + " " + pantalon.getTalla());
System.out.println("Precio: " + pantalon.getPrecio());
} else {
System.out.println("Número de pantalón inválido");
}
}
public void verTicket() {
System.out.println("Ticket:");
System.out.println("Pantalón: " + pantalones[0].getMarca() + " " + pantalones[0].getTalla());
System.out.println("Precio: " + pantalones[0].getPrecio());
}
public static void main(String[] args) {
Tienda tienda = new Tienda(10);
Scanner scanner = new Scanner(System.in);
while (true) {
tienda.mostrarMenu();
System.out.println("Ingrese su opción:");
int opcion = scanner.nextInt();
switch (opcion) {
case 1:
tienda.mostrarPantalones();
break;
case 2:
tienda.venderPantalon();
break;
case 3:
tienda.verTicket();
break;
case 4:
System.out.println("Adiós");
return;
default:
System.out.println("Opción inválida");
}
}
}
}
```
En este ejemplo, la clase `Pantalon` encapsula los atributos de un pantalón y proporciona métodos para acceder y modificarlos. La clase `Tienda` encapsula la lógica de la tienda y proporciona métodos para agregar pantalones, mostrar el menú, vender pantalones y ver el ticket.
La clase `Tienda` utiliza un array de `Pantalon` para almacenar los pantalones, pero no utiliza `ArrayList`. En su lugar, utiliza un array fijo de tamaño 10, que se puede aumentar o disminuir según sea necesario.
La clase `Tienda` también utiliza un `Scanner` para leer la entrada del usuario y un `switch` para manejar las opciones del menú.
Espero que esto te ayude. ¡Si tienes alguna pregunta o necesitas más ayuda, no dudes en preguntar!
Aquí te dejo un ejemplo de cómo podrías implementar una tienda de pantalones con los dos primeros pilares de la POO (Encapsulamiento y Abstracción) en Java:
**Pantalon.java**
```java
public class Pantalon {
private String marca;
private String talla;
private double cintura;
private boolean ajustable;
private double precio;
private String tipo;
public Pantalon(String marca, String talla, double cintura, boolean ajustable, double precio, String tipo) {
this.marca = marca;
this.talla = talla;
this.cintura = cintura;
this.ajustable = ajustable;
this.precio = precio;
this.tipo = tipo;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getTalla() {
return talla;
}
public void setTalla(String talla) {
this.talla = talla;
}
public double getCintura() {
return cintura;
}
public void setCintura(double cintura) {
this.cintura = cintura;
}
public boolean isAjustable() {
return ajustable;
}
public void setAjustable(boolean ajustable) {
this.ajustable = ajustable;
}
public double getPrecio() {
return precio;
}
public void setPrecio(double precio) {
this.precio = precio;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
@Override
public String toString() {
return "Pantalon{" +
"marca='" + marca + '\'' +
", talla='" + talla + '\'' +
", cintura=" + cintura +
", ajustable=" + ajustable +
", precio=" + precio +
", tipo='" + tipo + '\'' +
'}';
}
}
```
**Tienda.java**
```java
import java.util.Scanner;
public class Tienda {
private Pantalon[] pantalones;
private int cantidadPantalones;
public Tienda(int cantidadPantalones) {
this.pantalones = new Pantalon[cantidadPantalones];
this.cantidadPantalones = 0;
}
public void agregarPantalon(Pantalon pantalon) {
pantalones[cantidadPantalones] = pantalon;
cantidadPantalones++;
}
public void mostrarMenu() {
System.out.println("1. Ver pantalones");
System.out.println("2. Vender pantalón");
System.out.println("3. Ver ticket");
System.out.println("4. Salir");
}
public void mostrarPantalones() {
for (int i = 0; i < cantidadPantalones; i++) {
System.out.println(pantalones[i].toString());
}
}
public void venderPantalon() {
Scanner scanner = new Scanner(System.in);
System.out.println("Ingrese el número del pantalón que desea vender:");
int numeroPantalon = scanner.nextInt();
if (numeroPantalon >= 1 && numeroPantalon <= cantidadPantalones) {
Pantalon pantalon = pantalones[numeroPantalon - 1];
System.out.println("Pantalón vendido: " + pantalon.toString());
System.out.println("Precio: " + pantalon.getPrecio());
} else {
System.out.println("Número de pantalón inválido");
}
}
public void verTicket() {
System.out.println("Ticket:");
for (int i = 0; i < cantidadPantalones; i++) {
Pantalon pantalon = pantalones[i];
System.out.println(pantalon.toString());
System.out.println("Precio: " + pantalon.getPrecio());
}
}
public static void main(String[] args) {
Tienda tienda = new Tienda(10);
Scanner scanner = new Scanner(System.in);
while (true) {
tienda.mostrarMenu();
System.out.println("Ingrese su opción:");
int opcion = scanner.nextInt();
switch (opcion) {
case 1:
tienda.mostrarPantalones();
break;
case 2:
tienda.venderPantalon();
break;
case 3:
tienda.verTicket();
break;
case 4:
System.out.println("Adiós");
return;
default:
System.out.println("Opción inválida");
}
}
}
}
```
En este ejemplo, la clase `Pantalon` encapsula los atributos de un pantalón y proporciona métodos para acceder y modificarlos. La clase `Tienda` encapsula la lógica de la tienda, incluyendo la gestión de pantalones, la venta de pantalones y la impresión del ticket. El método `main` del `Tienda` clase es el punto de entrada del programa y muestra el menú de opciones al usuario.
Aquí te dejo un ejemplo de cómo podrías implementar una tienda de pantalones con los dos primeros pilares de la POO (Encapsulamiento y Abstracción) en Java:
**Pantalon.java**
```java
public class Pantalon {
private String marca;
private String talla;
private double cintura;
private boolean ajustable;
private double precio;
private String tipo;
public Pantalon(String marca, String talla, double cintura, boolean ajustable, double precio, String tipo) {
this.marca = marca;
this.talla = talla;
this.cintura = cintura;
this.ajustable = ajustable;
this.precio = precio;
this.tipo = tipo;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getTalla() {
return talla;
}
public void setTalla(String talla) {
this.talla = talla;
}
public double getCintura() {
return cintura;
}
public void setCintura(double cintura) {
this.cintura = cintura;
}
public boolean isAjustable() {
return ajustable;
}
public void setAjustable(boolean ajustable) {
this.ajustable = ajustable;
}
public double getPrecio() {
return precio;
}
public void setPrecio(double precio) {
this.precio = precio;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
@Override
public String toString() {
return "Pantalon{" +
"marca='" + marca + '\'' +
", talla='" + talla + '\'' +
", cintura=" + cintura +
", ajustable=" + ajustable +
", precio=" + precio +
", tipo='" + tipo + '\'' +
'}';
}
}
```
**Tienda.java**
```java
import java.util.Scanner;
public class Tienda {
private Pantalon[] pantalones;
private int cantidadPantalones;
public Tienda(int cantidadPantalones) {
this.pantalones = new Pantalon[cantidadPantalones];
this.cantidadPantalones = 0;
}
public void agregarPantalon(Pantalon pantalon) {
pantalones[cantidadPantalones] = pantalon;
cantidadPantalones++;
}
public void mostrarMenu() {
System.out.println("1. Ver pantalones");
System.out.println("2. Vender pantalón");
System.out.println("3. Ver ticket");
System.out.println("4. Salir");
}
public void mostrarPantalones() {
for (int i = 0; i < cantidadPantalones; i++) {
System.out.println(pantalones[i].toString());
}
}
public void venderPantalon() {
Scanner scanner = new Scanner(System.in);
System.out.println("Ingrese el número del pantalón que desea vender:");
int numeroPantalon = scanner.nextInt();
if (numeroPantalon >= 1 && numeroPantalon <= cantidadPantalones) {
Pantalon pantalon = pantalones[numeroPantalon - 1];
System.out.println("Pantalón vendido: " + pantalon.toString());
System.out.println("Precio: " + pantalon.getPrecio());
} else {
System.out.println("Número de pantalón inválido");
}
}
public void verTicket() {
System.out.println("Ticket:");
for (int i = 0; i < cantidadPantalones; i++) {
Pantalon pantalon = pantalones[i];
System.out.println(pantalon.toString());
System.out.println("Precio: " + pantalon.getPrecio());
}
}
public static void main(String[] args) {
Tienda tienda = new Tienda(10);
Scanner scanner = new Scanner(System.in);
while (true) {
tienda.mostrarMenu();
System.out.println("Ingrese su opción:");
int opcion = scanner.nextInt();
switch (opcion) {
case 1:
tienda.mostrarPantalones();
break;
case 2:
tienda.venderPantalon();
break;
case 3:
tienda.verTicket();
break;
case 4:
System.out.println("Adiós");
return;
default:
System.out.println("Opción inválida");
}
}
}
}
```
En este ejemplo, la clase `Pantalon` encapsula los atributos de un pantalón y proporciona métodos para acceder y modificarlos. La clase `Tienda` encapsula la lógica de la tienda, incluyendo la gestión de pantalones, la venta de pantalones y la impresión del ticket. El método `main` del `Tienda` clase es el punto de entrada del programa y muestra el menú de opciones al usuario.