javaee论坛

普通会员

225648

帖子

334

回复

348

积分

楼主
发表于 2019-11-15 13:35:47 | 查看: 302 | 回复: 2

面向对象编程是最有效的软件编写方法之一。基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。根据类来创建对象被称为实例化,这让你能够使用类的实例特的个性

一、如何创建和使用类?

语法:

classStudent(Object):passclass类不带参数classDemo:defsetName(self,name):self.name=namedefgetName(self):print("我叫%s,你是谁?"%(self.name))a=Demo()a.setName("小明")a.getName()b=Demo()b.setName("小龙")b.getName()输出结果为"我是小明,你是谁?"     “我是小龙,你是谁?”

实例

#定义了一个名为Demo的类classStudent():#__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它#每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法def__init__(self,id,name):#self.id=id获取存储在形参id中的值,并将其存储到变量id中,然后该变量被关联到当前创建的实例#self.name也是一样#python中的self类似于java中的this关键字self.id=idself.name=namedefprint(self):print("idis"+str(self.id)+""+"nameis"+self.name)#打印输出学生信息student=Student(1,'lisa')#创建一个id为1的name为'lisa'学生,传入的值会被self接收,会自动的返回一个学生的实例student.print()#调用Student类中的print()方法

如何创建多个实例

很简单,只需要再传进一个学生就可以

student=Student(1,'lisa')#创建一个id为1的name为'lisa'学生,传入的值会被self接收,会自动的返回一个学生的实例student1=Student(2,'Jhon')student.print()#调用Student类中的print()方法student1.print()

有返回值类型的的类#定义了一个名为Demo的类classStudent():#__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它#每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法def__init__(self,id,name):#self.id=id获取存储在形参id中的值,并将其存储到变量id中,然后该变量被关联到当前创建的实例#self.name也是一样#python中的self类似于java中的this关键字self.id=idself.name=namedefprint(self):student_info=("idis"+str(self.id)+""+"nameis"+self.name)#定义一个student_info来接收一下学生信息returnstudent_info#返回学生信息student=Student(1,'lisa')#创建一个id为1的name为'lisa'学生,传入的值会被self接收,会自动的返回一个学生的实例print(student.print())

修改属性值classStudent():def__init__(self,id,name):self.id=2#指定属性值self.name='张三'#指定属性值defprint(self):student_info=("idis"+str(self.id)+""+"nameis"+self.name)#returnstudent_infostudent=Student(1,'lisa')#如果在__init__函数中指定了属性值,那么在这里传入的值就不会被引用print(student.print())

二、面向对象中的继承

首先先创建一个Student类,如下:

classStudent():#父类def__init__(self,name,course):self.name=nameself.course=coursedefprint(self):student_info=(self.name+""+self.course)returnstudent_info

再创建一个Student_list类

classStudent_list(Student):def__init__(self,name,course):super().__init__(name,course)student_list=Student_list('lisa','math')print(student_list.print())

完整代码:

classStudent():def__init__(self,name,course):self.name=nameself.course=coursedefprint(self):student_info=(self.name+""+self.course)returnstudent_infoclassStudent_list(Student):#定义子类时,必须在括号内指定父类的名称def__init__(self,name,course):#方法__init__()接受创建Student实例所需的信息super().__init__(name,course)#super()是一个特殊函数,可以将将父类和子类关联起来student_list=Student_list('lisa','math')#像平时创建类实例一样print(student_list.print())

重写方法classSuperClass():defget_superclass(self):print("thisisSuperClassmethod")classSubClass(SuperClass):defget_superclass(self):print("thisisSubClassmethod")sub_class=SubClass()sub_class.get_superclass()

正在尝试写博客,如写的不好,请指点一下,谢谢!


普通会员

0

帖子

306

回复

318

积分
沙发
发表于 2023-09-28 21:08:07

还是很厉害的

普通会员

1

帖子

283

回复

293

积分
板凳
发表于 2023-11-18 21:08:31

谢谢楼主分享

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017