使用面向对象的思想,编写自定义描述狗的信息。设定属性包括:品种,年龄,心情,名字;方法包括:叫,跑。 要求: 1) 设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问 2) 限定心情只能有“心情好”和“心情不好”两种情况,如果无效输入进行提示,默认设置“心情好”。 3) 设置构造函数实现对属性赋值 4) 叫和跑的方法,需要根据心情好坏,描述不同的行为方式。 5) 编写测试类,测试狗类的对象及相关方法(测试数据信息自定义)
时间: 2023-05-10 19:56:09 浏览: 161
以下是狗类的代码:
```python
class Dog:
def __init__(self, breed, age, mood, name):
self.__breed = breed
self.__age = age
self.__mood = mood
self.__name = name
def get_breed(self):
return self.__breed
def set_breed(self, breed):
self.__breed = breed
def get_age(self):
return self.__age
def set_age(self, age):
self.__age = age
def get_mood(self):
return self.__mood
def set_mood(self, mood):
if mood == "心情好" or mood == "心情不好":
self.__mood = mood
else:
print("无效输入,心情默认为好")
self.__mood = "心情好"
def get_name(self):
return self.__name
def set_name(self, name):
self.__name = name
def bark(self):
if self.__mood == "心情好":
print(self.__name + "汪汪叫")
else:
print(self.__name + "低声吼")
def run(self):
if self.__mood == "心情好":
print(self.__name + "快乐地跑")
else:
print(self.__name + "慢慢地走")
```
以下是测试类的代码:
```python
class TestDog:
def test_dog(self):
dog1 = Dog("金毛", 2, "心情好", "小黄")
dog2 = Dog("柯基", 3, "心情不好", "小黑")
dog1.bark()
dog1.run()
dog2.bark()
dog2.run()
dog1.set_mood("心情不好")
dog1.bark()
dog1.run()
dog2.set_age(4)
print(dog2.get_age())
test = TestDog()
test.test_dog()
```
输出结果:
```
小黄汪汪叫
小黄快乐地跑
小黑低声吼
小黑慢慢地走
小黄低声吼
小黄慢慢地走
4
```
阅读全文