zoukankan      html  css  js  c++  java
  • day17 面向对象-成员

    今日主要学习了:

    1 .成员 

    2. 变量 

    3. 方法

    4.属性

    5.私有 

    1. 成员 在类中你能写的所有内容都是成员

    2 .变量  

     1) 实例变量: 昨天写的就是实例变量 ,由对象去访问的变量 .

    class Person: #创建一个人的类
        def __init__(self,name,id,gender,birth): # 创建初始化方法,创建方法
            self.name=name  #定义属性
            self.id=id
            self.gender=gender
            self.birth=birth
    p=Person('alex','110','男','1989-12-12') #创建了一个人
    p.birth='1999-1-1' #修改alex的出生年月
    print('p.birth')  

      2) 类变量 , 此时这个变量属于类, 但是对象也可以访问

    class Person:
        def __init__(self,name,gender):
            self.name=name
            self.gender=gender
    p=Person('alex','男')
    p2=Person('wusir','女)
    p.country='中国' #   这里是在p这个人内部创建了一个country,并不是在外面
    print('p.country')#打印结果为中国
    Person.country='大清' # 这里是在Person中创建的国家,所以你每创建一个新的对象,他默认的country都是大清
    print(p2.country) #这里的打印结果是大清 类变量可以给对象使用
    

    3 .方法 

     1) 类方法 (默认在形参位置的参数是cls,并且加一个@classmethod)

    类方法一般用类名去访问 Person.he() #类方法

    def chi(self):
        print('人会吃')
    @classmethod#装饰器 ,此时这个方法是一个类方法
    def he(cls): #此时接收到的cls是类名
        print('人会喝')

     2) 实例方法 : 昨天学的就是实例方法

     3)静态方法 (@staticmethod)

    @staticmethod #静态方法
    def yue():
        print('今天约吗,小姐姐')
    

    静态方法可以使用对象访问.也可以使用类名访问.

    但是一般推荐使用类名访问

    P=person()  

    P.yue()

    4. 属性

    #假设我们要或取每一个人的实际年龄
    class Person:
        def __init__(self,name ,birth):
            self.name=name
            self.birth=birth
    # 年龄应该是算出来的,而不是直接储存 ,如果有14亿人,每年都要更新一次,耗时耗力很大
            @property #将一个方法变更成一个属性,每次哪的属性的时候就会自动的去执行这个方法 ,#方法的返回值就是属性值
        def age(self):
            return 2018-self.birth
    
    p1 = Person("武sir", "未知", 2000)
    print(p1.age) # 看着像一个变量一样使用, 实际上这里是调用的一个方法
    print(p1.age)
    # p1.age = 26 # 不可以的, 因为age是一个方法. 不是一个变量
    

    5 .私有(__XX就是私有) 

    class Person:
      __qie='金莲' 
      def __init__(self,name,mimi):
    
        self.name=name
        self.mimi=mimi
    def gaosu(self):
    
      print(f"把秘密告诉了太白, 第二天所有人都知道了{self.__mimi}")
    

    私有一般是在前面加'__'就表示是私有的,用途一般是保护你不想让别人看到的东西,(例如:登录的用户名和密码,你怕忘记,可以写成是私有的)

  • 相关阅读:
    印象笔记和有道云笔记竞品分析
    印象笔记需求分析文档
    ES(Elasticsearch)
    java8中optional和.stream().map()
    设计模式-builder(构造器模式)
    throw与throws
    异常java.lang.NumberFormatException解决
    Spring注解
    Spring配置数据源以及hibernate
    log4j配置文件——hibernate
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10138799.html
Copyright © 2011-2022 走看看