zoukankan      html  css  js  c++  java
  • 【Day2】3.面向对象编程

    课程目标

    1. 面向对象编程
    2. 类和实例
    3. 访问限制
    4. 实例属性和类属性

    面向对象编程

    • 面向对象编程是一种程序设计思想
    • 面向对象把对象作为程序的基本单元
    • 对象包含属性方法
    • 面向过程编程为:函数的调用集合
    • 面向对象编程为:对象之间传递信息的集合
    处处皆对象

    类和实例

    • 类可以理解为图纸或者模版
    • 实例是根据类的图纸或者模版创建出来的一个一个对象
    • 类定义class,关键字self
    • 类的初始化函数__init__
    • 面向对象三大特点:继承,封装,多态
    • 属性和方法

    访问限制

    • 通过”__”两个下划线可以修饰私有变量
    • 通过编写get和set方法来修改对象的属性
    • Python中没有真正的私有属性和私有方法

    实例属性和实例方法

    实例属性
    class Student(object):
    def __init__(self, name):
    self.name = name
    s = Student('Bob')
    s.score = 90
    • 类属性
    class Student(object):
    name = 'Student'
    print(Student.name)
     
    class Student(object):
      total = 20 #类属性 公有的
    #方法 self指向创建的实例本身 __name 私有属性 def __init__(self,name,score): self.__name = name self.__score = score def print_score(self): print('%s: %s' % (self.__name,self.__score))
       def get_grade(self):
        if(self.__score >= 90):
          return 'A'
        elif(self.__score >=60):
          return 'B'
        else:
          return 'C'
      def set_score(self,score):
        if 0<=score<=100:
          self.__score=score
        else:
          raise ValueError('分数请大于0小于100')
        self.__score = score
      def get_score(self):
        return self.__score
    # 实例化对象 xiaohong = Student('xiaohong',98) xiaobai = Student('xiaobai',81)
    xiaolv = Student('xiaolv',55)
    # print(xiaohong.name,xiaohong.score) # print(xiaobai.name,xiaobai.score)
    print(xiaolv.set_score(80))
    print(xiaolv.get_score())
    print(Student.total)
    • 括号中object表示继承自哪个类
    • 类外面的是函数,类里面的是方法
    • self表示类本身
    两个相同的实例对象会有两个内存空间,占据的内存空间也可能不同
    • python没有真正的私有变量,把私有变量改成名称__Student__name
    小结
    • 面向过程和面向对象编程
    • 类由属性和方法组成
    • 对象是类的实例化
    • 属性可以封装,并声明私有属性
    • 类属性和实例属性
  • 相关阅读:
    2020.5.28.第十三周java上机练习
    2020.5.22第十二周java作业
    2020.5.21.第十二周java上机练习
    2020.5.15.java第十一周作业
    2020.5.14.第十一周上机练习
    leetcode02大数相加
    leetcode算法题01
    近期wxss总结
    近期Freecodecamp问题总结
    freecodecamp数字转化成罗马数字
  • 原文地址:https://www.cnblogs.com/zsczsc/p/11886580.html
Copyright © 2011-2022 走看看