python之面向对象练习题(七)
- 1、 该程序中有类:Lader、Circle,具体要求如下:
- 2、按要求编写程序。
- 3、按要求编程序。
- 4、编写应用程序
- 5、创建一个Point类,有属性x,y,方法getX(),setX(),还有一个构造方法初始化x和y。创建对象测试它
- 6、编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表。
- 7、按要求编写一个应用程序:
- 8、要求编写一个应用程序:
1、 该程序中有类:Lader、Circle,具体要求如下:
Lader类具有上底、下底、高、面积属性,具有返回面积的功能,构造方法对上底、下底、高进行初始化。
Circle类具半径、周长和面积属性,具有返回周长、面积的功能,构造方法对半径进行初始化
class Lader:
def __init__(self, upper, lower, high):
self.upper = upper
self.lower = lower
self.high = high
def square(self):
s = (self.upper + self.lower) * self.high / 2
return s
l = Lader(1, 2, 3)
print(l.square())
class Circle:
def __init__(self, r):
self.r = r
def zc(self):
c = 2 * 3.14 * self.r
return c
def square(self):
s = 3.14 * pow(self.r, 2)
return s
c = Circle(1)
print(c.zc())
print(c.square())
运行结果:
4.5
6.28
3.14
2、按要求编写程序。
(1)建立一个名叫Cat的类:
属性:姓名、毛色、年龄
行为:显示姓名、喊叫
(2)创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输
出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。
class Cat:
def __init__(self, name, color, age): # 对属性进行初始化
self.name = name
self.color = color
self.age = age
# 显示姓名的函数
def showName(self):
print('姓名:', self.name)
# 显示叫喊的函数
def showJh(self):
print('喵喵喵...')
c = Cat('妮妮', '灰色', 2)
print(c.color, c.age)
c.showName()
c.showJh()
运行结果:
灰色 2
姓名: 妮妮
喵喵喵...
3、按要求编程序。
(1)创建一个叫做People的类:
属性:姓名、年龄、性别、身高
行为:说话、计算加法、改名
编写能为所有属性赋值的构造方法;
(2)创建一个对象:名叫“张三”,性别“男”,年龄18岁,身高1.80;
让该对象调用成员方法:
说出“你好!”
计算23+45的值
将名字改为“李四”
class People:
def __init__(self, name, age, sex, high):
self.name = name
self.age = age
self.sex = sex
self.high = high
def speak(self):
print('你好!')
def addSum(self, a, b):
return a + b
def reName(self, name):
self.name = name
zs = People('张三', 18, '男', 1.8)
zs.speak()
print(zs.addSum(23, 45))
zs.reName('李四')
print(zs.name)
运行结果:
你好!
68
李四
4、编写应用程序
首先,定义描述学生的类——Student,包括学号、姓名、年龄等属性;outPut()用于输出学生信息。
创建多个Student类的对象,使用这些对象来测试Student类的功能。
class Student:
# 构造方法,实现对属性的初始化
def __init__(self, sno, sname, sage):
self.sno = sno
self.sname = sname
self.sage = sage
def outPut(self):
return f'学生学号:{self.sno}, 学生姓名:{self.sname}, 学生年龄:{self.sage}'
z = Student(1, '张三', 17)
print(z.outPut())
l = Student(2, '李四', 18)
print(l.outPut())
运行结果:
学生学号:1, 学生姓名:张三, 学生年龄:17
学生学号:2, 学生姓名:李四, 学生年龄:18
5、创建一个Point类,有属性x,y,方法getX(),setX(),还有一个构造方法初始化x和y。创建对象测试它
class Point:
def __init__(self, x, y):
self.__x = x
self.y = y
def getX(self):
return self.__x
def setX(self, x):
if x > 0:
self.__x = x
else:
self.__x = 0
p = Point(1, 2)
print(p.getX())
print(p.y)
运行结果:
1
2
6、编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表。
然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法f输出小写的英文字母表,而且可以调用子类新增的方法g输出大写的英文字母表。测试类A与类B
class A:
def f(self):
for i in range(ord('a'), ord('z')+1):
print(chr(i), end=' ')
print()
class B(A):
def g(self):
for i in range(ord('a'), ord('z')+1):
print(chr(i).upper(), end=' ')
# for i in range(ord('A'), ord('Z')+1):
# print(chr(i), end=' ')
b = B()
b.f()
b.g()
运行结果:
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
7、按要求编写一个应用程序:
(1)定义一个类,描述一个矩形,包含有长、宽两种属性和计算面积方法。
(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性和计算体积的方法。
(3)创建一个长方体,定义其长、宽、高,输出其面积和体积
class A:
def __init__(self, c, k):
self.c = c
self.k = k
def s(self):
return self.c * self.k
class B(A):
def g(self, h):
return self.c * self.k * h
c = B(1, 2)
print(c.s())
print(c.g(3))
运行结果:
2
6
8、要求编写一个应用程序:
定义类Circle(圆),属性有半径,构造方法可以为属性初始化,返回圆的面积
定义类Cylinder(圆柱),属性有半径,高;返回圆柱的体积
class Circle:
def __init__(self, r):
self.r = r
def s(self):
return 3.14 * pow(self.r, 2)
class Cylinder(Circle):
def t(self, h):
return 3.14 * pow(self.r, 2) * h
c = Cylinder(1)
print(c.s())
print(c.t(1))
运行结果:
3.14
3.14