Objectivo
Desarrolla un programa Python con las siguientes clases:
- Casa: Crea una clase llamada "Casa" con un atributo para "área". Incluye un constructor para establecer el área y un método "MostrarDatos" que imprimirá una declaración como "Soy una casa, mi área es de 200 m2" (reemplazando 200 con el área real). Implementa métodos getter y setter para el área.
- Puerta: Una casa tiene una puerta con un atributo "color" (una cadena). La puerta tendrá un método "MostrarDatos" que muestra algo como "Soy una puerta, mi color es marrón" (usando el color real). Proporciona métodos getter y setter para el color de la puerta. Además, crea un método "GetDoor" en la clase Casa para recuperar la puerta.
- PequeñoApartamento: Esta es una subclase de Casa, que tendrá un área predefinida de 50 m2.
- Persona: Crea una clase "Persona" que contenga un atributo "nombre" (cadena) y tenga una casa. El método "ShowData" de una persona imprimirá su nombre, seguido de los detalles de su casa y la puerta.
- Función principal: Escriba una función "Principal" para crear una instancia de un "SmallApartment" y una "Person" que viva en él. La función principal debe mostrar los datos de la persona, incluida la información de su casa y puerta.
Ejemplo de ejercicio de Python
Mostrar código Python
# Class for Door
class Door:
def __init__(self, color):
self._color = color # Color attribute of the door
# Getter method for color
def get_color(self):
return self._color
# Setter method for color
def set_color(self, color):
self._color = color
# Method to display door information
def show_data(self):
print(f"I am a door, my color is {self._color}")
# Class for House
class House:
def __init__(self, area):
self._area = area # Area of the house
self.door = Door("brown") # Default door color
# You can customize the door color if needed using setter
# Getter method for area
def get_area(self):
return self._area
# Setter method for area
def set_area(self, area):
self._area = area
# Method to display house information
def show_data(self):
print(f"I am a house, my area is {self._area} m2")
# Method to get the door
def get_door(self):
return self.door
# SmallApartment class (subclass of House)
class SmallApartment(House):
def __init__(self):
super().__init__(50) # Default area for SmallApartment is 50 m2
# Class for Person
class Person:
def __init__(self, name, house):
self._name = name # Name of the person
self.house = house # The house that the person owns
# Method to display person's data including house and door information
def show_data(self):
print(f"My name is {self._name}.")
self.house.show_data() # Show house data
self.house.get_door().show_data() # Show door data
# Main function to test the classes
def main():
# Create a SmallApartment object
apartment = SmallApartment()
# Create a Person object who lives in the SmallApartment
person = Person("John", apartment)
# Display the person's data, including house and door info
person.show_data()
# Call the main function to run the program
if __name__ == "__main__":
main()
Output
My name is John.
I am a house, my area is 50 m2
I am a door, my color is brown
Código de ejemplo copiado
Comparte este ejercicio de Python