面向对象编程,类和对象

面向对象编程,类和对象

一、面向对象

1、什么是面向对象

? 面向对象是一种编程思想,是前辈们总结出的经验,指导程序员如何编写出更好的程序 ,

核心是对象,程序就是一系列对象的集合, 程序员负责调度控制这些对象来交互着完成任务。

2、几个案例

案例1:把大象装进冰箱 ?

? 面向过程:

? 1.打开冰箱

? 2.装入大象

? 3.关闭冰箱

? 面向对象:

? 找个具备装大象的技能的对象

总结:在面向对象中程序员的角度发生改变,从具体的操作者变成了指挥者

强调:对象不是凭空产生的,需要我们自己设计

案例2::西天取经

? 如来有一堆破书要传出去,他没有自己干,而是找了五个对象帮他去干

? 如来只要负责控制调度的对象即可

如果某个对象发生变化,也不会影响其他的对象 , 扩展性

案例3::曹操吟诗,命手下将所作之诗刻于木板之上

? 第一天:喝酒吃肉,人生真爽

? 第二天:喝酒吃肉,人生几何

? 第三天:对酒当歌,人生几何

3、面向对象的三大优点

? 1.扩展性

? 2.灵活性

? 3.重用性

缺点:

? 1.程序的复杂度提高了

? 2.无法准确预知结果

4、使用场景

对扩展性要求较高的程序 ,通常是直接面向 用户的,例如:qq,微信

二、面向过程编程思想

1、关注的核心是过程

? 过程就是一步一步的执行步骤,既先干啥在干啥

2、优缺点

优点:逻辑清晰 , 复杂问题简单化,流程化

缺点: 扩展性差,可维护性差

3、使用场景

对扩展性要求较低的程序例如:系统内核,git,计算器

记住:不是所有程序都要面向对象,得分析具体需求

三、类和对象(这是OOP中的最核心的两个概念)

1、类

既类型,类别 ,是一种抽象概念

是一系列具备相同特征和相同行为的对象的集合

2、对象

就是具体存在的某个事物,具备自己的特征和行为

对象就是特征和技能的结合体

3、类和对象的关系

类包含一系列对象

对象属于某个类

在生活中是先有对象再有类

而在程序中是先有类才能有对象,我们必须先告诉计算机这类的对象有什么特征有什么行为

总结出一个结论:在使用面向对象编程时,第一步就是思考需要什么样的对象,对象具备什么样的特征和行为,从而根据这些信息总结出需要的类型

4、创建类和对象

定义类的语法

class 类的名称:
    # 类中的内容 描述属性和技能
    #描述属性用变量
    #描述行为用函数 

#类名称 书写规范  首先是见名知意 名称是大驼峰命名法
#驼峰就是单词首字母大写 , 大驼峰是第一个字母大写,小驼峰是第一个字母小写

创建对象的语法:

class Person:
    pass

#创建对象
p = Person()

属性的写法:

# 属性可以写在类中
# 类中的属性,是所有对象公共的 

# 也可以写在对象中
# 对象中的属性,是每个对象独特的(不一样的)

# 如果类中和对象中存在同样的属性,先访问对象 如果没有在访问类 

# 练习: 描述一个老师类 需要包含 一个公共属性和 一个独特的属性 

class Teacher:
    school = "oldboy"

t1 = Teacher()
t1.name = "jack"
t1.age = 28

属性的增删改查

# 增加属性
# 对象变量名称.属性名称 = 属性值

# 删除属性
del 对象的变量名称.属性名称 

# 修改
对象.属性 = 新的值 

# 查看属性  访问的是对象的所有属性
print(对象.__dict__)

# 访问对象的类信息
print(对象.__class__)

5、init方法

叫做初始化方法,本质上就是一个函数

特点1: 当实例化对象时,会自动执行init方法

特点2:会自动将对象作为第一个参数传入,参数名称位self ,self可以是别的名字,但不建议改

功能:用户给对象赋初始值

练习:创建一个类具备几个属性,通过初始化方法来给他设置属性

class Dog:
    def __init__(self,kind,color,age):
        self.kind = kind
        self.color = color
        self.age = age

d1 = Dog("二哈","黑白",1)
d1 = Dog("泰迪","棕色",2)

注意:该函数不能有任何返回值/.... 只能是None  规定如此..

对象的精髓就是将数据和处理数据的函数整合到一起 ,这样一来拿到一个对象就同时拿到了需要处理的数据以及处理数据的函数

6、对象的绑定方法

默认情况下类中的方法都是对象绑定方法

其特殊之处在于,

当使用对象调用该函数时会自动传入对象本身,作为第一个参数

当使用类名来调用时他就是一个普通函数,有几个参数就得传几个参数

练习:写一个学生类,具备一个打招呼的技能 要能输出自己的名字信息

class Student:

    def __init__(self,name):
        self.name = name

    def say_hi(self):
        print("hello my name is %s" % self.name)

7、类绑定方法

类绑定方法用@classmethod来装饰

特殊之处:不管用类还是对象调用,都会自动传入类本身,作为第一个参数

什么时候绑定给对象:当函数逻辑需要访问对象中的数据时

什么时候绑定给类:当函数逻辑需要访问类中的数据时

8、非绑定方法

或叫做静态方法,就是即不需访问类的数据,.也不需要访问对象的数据

语法:@staticmethod

不常用

原文地址:https://www.cnblogs.com/DcentMan/p/11247336.html

时间: 2024-10-12 12:55:22

面向对象编程,类和对象的相关文章

Day16:面向对象编程——类和对象

一.面向对象的程序设计 在此之前用到的事面向过程的程序设计,它的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比设计好一条流水线,考虑周全什么时候处理什么东西. 优点:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的程序设计的核心是对象.程

Day28:面向对象编程——类和对象

一.面向对象的程序设计 在此之前用到的事面向过程的程序设计,它的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比设计好一条流水线,考虑周全什么时候处理什么东西. 优点:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的程序设计的核心是对象.程

C#面向对象基础--类与对象

1.类与对象 类是面向对象编程的基本单元:类造出来的变量叫对象. 一个类包含俩种成员:字段与方法. 字段即变量,方法即函数. 面向对象思想:教给我们如何合理的运用类的规则去编写代码. 2.类的字段 字段代表了类中的数据.在变量之前可以加上public.private和protected表示字段的访问权限. 3.类的方法 (1).函数的概念 表达式: 返回值类型  方法名(参数列表) { 语句1: 语句2: ..... return 表达式: } 函数需要向外界返回一个值,由return语句实现.

面向对象基础——类和对象

Java是面向对象的编程语言,类和对象是面向对象编程的重要概念.从今日起陆续把过去落下的知识一点点补回来,且把这当作一种笔记吧. 1. 类的声明.属性的使用.对象的声明和使用(无参构造方法): 1 class Person 2 { 3 String name;//声明属性,即成员变量,Field又称为字段或域 4 int age; 5 public void talk()//公有方法method 6 { 7 System.out.println("我是"+name+",今年&

Python 面向对象编程——类和实例

1        面向对象编程 面向对象编程: 面向对象编程--Object OrientedProgramming OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消

PHP面向对象编程学习之对象基础

php虽然是一门学习起来非常简单的语言,但是这门语言也包含了对面向对象编程的支持.尤其是随着php5的发布,php对面向对象的支持有了很大的进步.最近学习了一下php的面向对象编程,不禁感慨,面向对象真的是一种非常优雅的编程,最主要的是真的很难! 学习面向对象,当然首先就要了解什么是类,什么是对象,类和对象有什么关系?类和对象的定义就不在这里赘述了,相信大家对类和对象都有一个基本的认识.还是主要说一下类和对象的关系:类是用于生成对象的模板,而对象是类的实例.如何定义类和实例化对象就不多说了,这都

Python 面向对象(创建类和对象,面向对象的三大特性是指:封装、继承和多态,多态性)

概念:                                                                                                                                                     ·        面向过程:根据业务逻辑从上到下写垒代码 ·        函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 ·        面向对象:对函数进行分类和封装,

面向对象编程——类(class)1

一.函数式编程 与 面向对象编程 def 函数名(参数): pass class 类名: def 函数名(self,参数): # self必填 pass z1 = 类名() # 这时,调用对象 z1,self参数即为 z1 例1: class bar: def foo(self,arg): print(self,arg) z1 = bar() print(z1) # <__main__.bar object at 0x0000019BC3088D30> z1.foo('wjz') # <

Python 2019/7/24 面向对象概念 类和对象 对象初始化__init__ 绑定与非绑定

面向对象 (Object Oriented Programming,简称OOP) 1.什么是面向对象:面向对象编程是一种思想,它指导程序员如何编写出更好的程序.它的核心是对象,此时程序员从操作者变成了指挥者. 2.为什么使用面向对象编程:当今时代背景下,通常应用程序对扩展性和维护性要求都是非常高的,为什么?想想qq,微信,是不是不断的在添加新功能?,也就是说一款应用程序诞生后,都需要不断的更新维护. 3.面向对象优缺点: 优点:拓展性  灵活性 重用性     缺点: 程序的复杂度提高了   无

Chapter 1. 面向对象(类、对象、字段、方法、属性、构造函数)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 面向对象 { //创建person类 public class person { //Fields:字段 private string _name; private int _age; private char _gender; //Properties:属性 public string Name { ge