• 第十九节课:面向对象的基础


      1 # 本节课大纲:
      2 '''
      3 1- 类与实例
      4 2- 实例属性与静态属性
      5 3- 实例方法与静态方法
      6 面向对象的语言 VS 面向对象的设计
      7 @面向对象的设计:是一种设计思路
      8 @面向对象的语言:提供对面向对象设计的语言支持
      9 @非面向对象的语言也能实现面向对象的设计思路
     10 '''
     11 
     12 # 1- 类与实例
     13 '''
     14 类:是一类具有相同特征的事物的统称
     15 显示不存在--是一种抽象的概念--人类,鸟类
     16 '''
     17 #python中类的定义:
     18 # class ClassName:
     19 #     'class documentation string'
     20 #     class_suite
     21 # #关键字 class,类名(通常首字母大写)
     22 # class Tiger:
     23 #     classname='tiger'
     24 # #属性(attribute):classname是一个属性.定义类的例子:
     25 # class Person:   #注意,类名首字母一定要大写
     26 #     pass        #到此就定义好了一个类
     27 '''
     28 实例:在这个类里面具体存在的个体
     29      实例是类的具体实例化体现
     30 注意:对象的概念就更大了,类和实例都包含在对象里面,一切皆可为对象
     31 '''
     32 #python中实例的创建:
     33 # python类:
     34 # class Tiger:
     35 #     classname='tiger'
     36 # # 实例化:
     37 # t1=Tiger()
     38 # # 实例化之后可以访问其属性:
     39 # t1.classname
     40 # 怎么创建实例?很简单:类名()  如:
     41 class Person:  #创建了一个类
     42     pass
     43 p1=Person()    #将类实例化,为了方便后期操作,通常用一个变量去接收实例化的类
     44 
     45 # 2- 属性:
     46 ''' 
     47 类:类的属性包含特征和行为
     48     1- 特征--俗称
     49         术语--属性
     50         本质--变量
     51     2- 行为--俗称
     52         术语--方法
     53         本质--函数
     54 属性:
     55     1-概念:本质是类里面的一个变量.俗称特征
     56     2-静态属性--这个属性是每个实例都有的,如nickname:人类
     57     3-实例属性--不同了类有不同的属性,这个叫实例属性,如张三李四王五,身高体重哪些
     58 '''
     59 # *1 创建实例:
     60 # class Person:  #创建了一个类
     61 #     name='人类'#类属性,这个类所有的实例都是一样的--共有的
     62 #     #对于实例来说,有些实例的不同实例是不一样的,实例属性属于实例,如p1是20岁,p2是30岁
     63 # p1=Person()    #将类实例化,为了方便后期操作,通常用一个变量去接收实例化的类
     64 # print(p1.name)  #调用方法:实例.属性
     65 # print(Person.name)#调用方法:类.属性
     66 # *2 静态(类)属性  调用方法: 实例.属性 ; 类.属性(上一行属于实例.属性)
     67 # class Person:  #创建了一个类
     68 #     name='人类'
     69 #     def __init__(self):  #初始化方法,创建实例会自动调用
     70 #         print('我执行啦!',self)  #打印得:我执行啦! <__main__.Person object at 0x0000014B166F9588>
     71 # p1=Person()#这里创建了p1,打印出来和定义里面的self一致,说明实例化哪个东西,哪个东西就是self本身
     72 # p2=Person()#这里创建了p2,打印出来的地址不一样,这个地址在:0x000001E335339518
     73 # # print(p1,p2) #打印得:<__main__.Person object at 0x0000014B166F9588>
     74 # class Person:  #创建了一个类
     75 #     nickname='人类'
     76 #     def __init__(self,name1,age1):  #初始化方法,创建实例会自动调用.
     77 #         self.name=name1  #注意,self作用特别大,当是用p1接收实例化,self代表p1,如果是用p2实例化,self代表p2
     78 #         self.age=age1    #这两个步骤完成了传实参
     79 # p1=Person('tom',23)
     80 # p2=Person('升职加薪',66)
     81 # # 2- 实例属性
     82 # print(p1.name)         #打印得:tom
     83 # print(p2.name,p2.age)  #打印得:升职加薪 66
     84 # # print(p1.nickname)
     85 
     86 # 3- 对象的方法:
     87 ''' 
     88 *1概念--通过定义在类里面的函数
     89 *2实例方法--每个具体实例相关的方法---本质是一个函数
     90 *3静态方法--共有的方法,与每个具体实例无关---本质是一个函数
     91 '''
     92 class Person:
     93     Nickname='人类'
     94     def __init__(self,iname,iage,iweight):
     95         self.name=iname
     96         self.age=iage
     97         self.weight=iweight
     98     def eat(self):      #创建一个实例方法
     99         self.weight +=10
    100         print(str(self.name)+'今年有'+str(self.age)+'岁了,他现在在吃饭,现在有'+str(self.weight)+'斤了')  #这里是为了调用
    101 p1=Person('张三',23,120)
    102 p2=Person('李四',24,130)
    103 print(p1.Nickname)
    104 p1.eat()#如果是p1调用,打印得:张三今年有23岁了,他现在在吃饭,现在有130斤了
    105 p2.eat()#如果是p2调用,打印得:李四今年有24岁了,他现在在吃饭,现在有140斤了
    106 # ***谁调用就执行谁,这就是实例化方法
  • 相关阅读:
    Thymeleaf使用
    关闭被占用端口
    在map、model、modelAndView中存放数据 回显
    @RequestAttribute 注解
    @PathVariable、@RequestHeader、@RequestParam、@RequestBody 注解使用
    RESTful风格请求映射
    yml文件 数据回显
    JVM垃圾回收与一次线上内存泄露问题分析和解决过程
    比较java_io_Externalizable和Serializable
    关于java中的对象序列化
  • 原文地址:https://www.cnblogs.com/66-liu/p/14059281.html
Copyright © 2020-2023  润新知