类的定义与使用

'''
类的定义与使用:
    1.基于class关键字实现对类的定义。如果类中没有任何东西,可以用pass代替
    2.类具备有方法和属性:
        属性:其实就是变量。单独使用叫做变量,在类中使用叫做属性。
        方法:单独封装的叫做函数。在类中封装叫做方法
    在类之中定义的方法,默认都会有self参数存在。self表示实例化对象自己。包含有self参数
    的也叫做实例化方法。必须通过实例化对象进行调用。
    类的静态方法,不需要通过self来实现调用,也就是不需要实例化,可以直接调用。
    类中的属性无法通过实例化对象直接进行修改。

类的调用:
    类默认都是基于实例化的行为来实现调用。如果要调用类中的属性或者方法,默认只能通过实例化对象来嗲用
    类的方法和属性的调用都是基于名称来实现的。通过类名或者对象名加上.来进行获取。区别在于属性没有(),方法有()

类的构造方法:
    每个类默认都有自己的构造方法,你可以不定义,也可以自定义。
    构造方法可以帮助我们在实例化操作时,初始化我们的对象。
    类只有一个构造方法,基于__init__(self)定义。

类中定义的方法和属性的作用域只在当前类中,出了类,除非是实例化对象或者类名,否则无法被调用
'''


# 类的示例
class Dog:
    # 属性示例
    attr_01 = '毛发'
    attr_02 = '尖牙'

    # 构造方法的定义:主要用于对类进行实例化时,特定的内容的初始化行为
    # def __init__(self, name):
    #     self.name = name  # self.name相当于实例化对象的属性name

    # 方法示例
    def eat(self):
        print('饿了就吃饭')

    def walk(self):
        print('出门就跑')
        self.eat()  # 方法中调用方法,也是通过self.来调用

    def info(self):
        # print('狗叫' + self.name)  # 方法调用类属性通过self.来进行调用
        print('狗叫')
    @staticmethod  # 静态方法需要添加该装饰器
    def sleep():  # 静态方法不需要self参数
        print('安静睡觉')

# 实例化对象
# dog = Dog('三') #Dog()创建一个实例化对象,赋值给变量dog
# dog.eat()   #类中方法的调用
# print(dog.attr_01)  #类中属性的调用
# dog.sleep() #实例化对象可以调用静态方法
# Dog.sleep() #通过类名也可以直接调用静态方法。
# print(dog.name)

# dog.attr_01 = '金色的毛发' #修改实例化属性,只会对当前被修改对象有效,对其余对象和类本身无效
# print(dog.attr_01)  #实例化对象属性
# print(Dog.attr_01)  #类属性

# Dog.attr_01 = '红色的毛发' #修改类属性,会对所有实例化对象以及类本身都有效
# print(dog.attr_01)
# print(Dog.attr_01)

# 实例化的误区:此处的三个dog对象,都不是同一个对象。时三个不同的对象。
Dog().eat() #创建一个Dog实例化对象,然后调用eat方法
Dog().walk() #创建一个Dog实例化对象,然后调用walk方法
Dog().info() #创建一个Dog实例化对象,然后调用info方法

#这是同一个对象嗲用三个不同的方法
dog = Dog()
dog.eat()
dog.walk()
dog.info()

 

posted @ 2024-12-05 21:31  mafei666  阅读(38)  评论(0)    收藏  举报