美文网首页
面向对象伊始

面向对象伊始

作者: 云Shen不知处 | 来源:发表于2017-07-29 17:03 被阅读0次

    类的定义

    面向对象:就是将生活中的对象抽象到程序中
    生活中的对象,就得把生活中的思想抽象到程序中

    • 1.面向对象:类和对象、类的方法的使用

    • 2.面向对象的第一个特征:封装

    • 3.面向对象第二个特征:继承

    • 4.面向对象第三个特征:多态

    # 定义一个用户类
    class Users:
        def __init__(self,username, password, nickname):
            self.username = username
            self.password = password
            self.nickname = nickname
    
        def eat(self):
            print(self.nickname + "在吃饭")
    
        def sleep(self):
            print(self.nickname + "去开房了...")
    
        def play_game(self):
            print(self.nickname + "去玩耍了....")
    
    # 创建类型对应的实际存在的物体:创建对象
    u1 = Users("admin", "admin", "old_wang")
    print(type(u1))
    print(u1.username, u1.password, u1.nickname)
    u1.eat()
    u1.sleep()
    u1.play_game()
    
    u2 = Users("manager", "manager", "old_li")
    print(u2.username, u2.password, u2.nickname)
    u2.eat()
    u2.sleep()
    u2.play_game()
    

    对象的创建过程

    • 1对象的创建,通常情况先调用new()函数,来创建一个对象【*基本不用】再调用__init()函数,来初始化对象中的数据【****常用】

    • 2.一切皆对象
      所以,正常情况下,创建一个类,需要显示的指定,这个类型是个对象

    • 3.了解:什么是对象【类 VS 对象】
      对象的创建过程【类--(new() init())-->对象】
      newinit哪里来的?
      对象的由来——一切皆对象

    #class Users:
    class Users(object):
        def __new__(cls, *args):# new创建
            print("__new__()函数执行了...")
            return super(Users, cls).__new__(cls)
    
        def __init__(self, name):# init: initalization 初始化
            print("__init__()函数执行了...")
            self.name = name
    
    u = Users("tom")
    

    案例

    #定义一个类型
    
    
    class Person(object):
        def __init__(self,name,sex,age):
            self.name = name
            self.sex = sex
            self.age = age
            self.consort = None #
            self.type = None #娶妻? 入赘?
    
        def __str__(self):
            return "姓名:%s;性别:%s;年龄:%s;配偶:[%s];婚姻类型:%s;"%(self.name,\
                                        self.sex,self.age,self.consort,self.type)
    
        #定义一个结婚的方法
        def marry(self,person):
            if self.sex == "男":
                self.type = "娶妻"
            else:
                self.type="人赘"
    
            self.consort = person
            person.consort = self.name
            person.type = self.type
    
    
    #创建对象
    jack = Person("杰克","男","23")
    rose = Person("露丝","女","22")
    
    jack.marry(rose)
    print(jack)
    #rose.marry(jack)
    #print(rose)
    

    相关文章

      网友评论

          本文标题:面向对象伊始

          本文链接:https://www.haomeiwen.com/subject/fddclxtx.html