面向对象编程——1.初步了解

本文介绍了面向对象编程的基本概念,强调其与面向过程的区别。文章详细阐述了面向对象的特点,如类的定义、调用,包括类的属性和方法,并讨论了类的继承与多态。面向对象编程通过封装数据和方法,提高了代码组织和抽象能力,适用于大型项目。作者建议在解决复杂问题时,先确定名词并构建类,以实现对现实世界的模拟。
摘要由CSDN通过智能技术生成

一、引言

学习python已有5个月了,小论文初步完成。虽然在学习之初,就听视频里的老师强调面向对象编程的重要性。但在实际用编程解决问题的过程中,面向过程可以明晰解决问题的思路,潜意识下就自然的使用面向过程解决问题了。不过,面向过程在模拟现实世界的人、物、事方面有缺陷,为了get到面向对象的精髓,实现用机器语言来模拟现实世界的静态属性与动态方法。因此,重新进行了梳理。
将从以下方面进行展开:

  • 面向对象的特点
  • 类的定义与调用
  • 类的属性和方法的定义
  • 类的继承

二、面向对象的特点

面向对象符合人类对客观世界的抽象与理解

  • 生活中一切皆对象,python中一切皆对象。
  • 一切对象皆有自己的内在属性 - 属性
  • 一切对象皆有自己的行为 - 方法

我们可以把一类对象的公共特征抽象出来,创建通用的类,类是对象的载体。
面向对象编程将数据与操作方法(属性与方法)封装到对象中,组织代码与数据的方式更接近于人的思维,提高了编程效率。面向过程思维主要关注程序的逻辑流程,适合编写小规模的程序。面向对象编程关注对象之间的关系,是从设计者的角度来关注问题,适合编写大规模程序。但两者不是相互对立的,而是相辅相成的。面向对象离不开面向过程。因此,在碰到问题时,面向对象可以帮助我们从整体上、宏观上分析,在实现每一部分时,我们仍然可以通过面向过程去处理。
面向对象的思考方式:遇到复杂问题时,先从问题中找名词,然后确定这些名词哪些可以作为类,再确定类之间的关系,再根据问题需求确定每一个类的属性与方法。

三、类的定义与调用

1.类的定义

三要素:类名、属性、方法

  • 类的命名——需要有实际意义;驼峰命名法(雷鸣单词首字母大写)
  • 类的属性——相当于内部变量,def init(self,参数) # 初始化类属性
  • 类的方法——相当于类内部定义的函数
"""类前空两行"""


# 定义一个简单的类
class Car():
    """模拟汽车"""
    def __init__(self,brand,model,year):# __init__(self,[])构造函数  # self指当前的实例对象
        """初始化汽车属性"""
        self.brand = brand   # 品牌
        self.model = model   # 型号
        self.year = year     # 出厂年份
        self.mileage = 0     # 里程碑数
    
    def get_main_information(self):  # self不能省
        """获取汽车主要信息"""
        print("品牌:{},型号:{},出厂年份:{}"
              .format(self.brand,self.model,self.year))
    def get_all_mileage(self):
        """获取总里程数"""
        return "行车总里程:{}公里".format(self.mileage)
    
    
"""类后空两行"""
2.类的调用
  • 创建实例
  • 访问属性
  • 调用方法
# 实例的创建-实例化过程中,传入相应的参数
# 通过  类名(参数列表)  来调用构造函数__init__(),调用后将创建好的对象返回给相应的变量
my_new_car = Car("Audi","A6",2018)

# 访问属性
print(my_new_car.brand)
print(my_new_car.model)
print(my_new_car.year)

# 调用方法-实例名.方法名(必要的参数)
my_new_car.get_main_information()
s = my_new_car.get_all_mileage()
print(s)
  • 修改属性
# 修改属性-先访问后修改
# 创建实例
my_old_car = Car("BYD","宋",2016)
# 先访问后修改
print(my_old_car.mileage)
my_old_car.mileage = 12000
print(my_old_car.mileage)

# 0、12000
# 通过方法修改属性
class Car():
    """模拟汽车"""
    def __init__(self,brand,model,year):
        """初始化汽车属性"""
        self.brand = brand   # 品牌
        self.model = model   # 型号
        self.year = year     # 出厂年份
        self.mileage = 0     # 里程碑数
    
    def get_main_information(self):  # self不能省
        """获取汽车主要信息"""
        print("品牌:{},型号:{},出厂年份:{}"
               .format(self.brand,self.model,self.year))
    def get_all_mileage(self):
        """获取总里程数"""
        return "行车总里程:{}公里".format(self.mileage)
    
    def 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值