Java教程

面向对象编程

本文主要是介绍面向对象编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

面向对象编程

编程思想

1.面向过程编程
	将程序的致辞那个流程化 按照程序的执行流程编写代码,解决需求问题
    eg:
        登录账号
        '''
        第一步:获取用户名密码
        第二步:比对用户数据
        第三部:比对成功允许用户登录
        '''
     过程可以理解成是流水线 执行完上一步再执行下一步 
    面向对象编程可以理解成创建一条流水线
2.面向对象编程
	对象:对象其实就是一个'容器',将数据与功能整合到一起
        符合上述含义的都可以称之为对象
    eg:
        '''
        python基础数据类型str
        str赋值后有数据,且可以通过点的方式调用其方法
        str就是一个对象
       	python文件
        py文件里面有我们定义的数据,也有我们定义的功能函数
        文件也是一个对象
        '''
    """python一切接对象!!!"""
    
"""
面向对象与面向过程并无优劣之分,具体使用要结合情况,选用最快捷的,最方便的一个编程思想进行代码编写
ps:很多时候,两种思想都是混在一起用的,只不过所占比例不同
"""

类与对象

# 类与对象概念
    对象:数据与功能的结合体
    类:诸多对象共有的特征(数据、功能)!!!
     
# 类与对象的创建
"""
在代码编程中是先有类才能有对象
"""
# 创建学生类
eg:
    # 创建学生类
    class Student:
        # 学生类公共数据
        name = 'petter'
        age = 18
        school = '家里蹲大学'

        # 学生类公共功能
        def get_class(self):
            print('学生选课系统')
'''类体代码无需调用,程序运行时就会执行,产生类的名称空间'''

# 语法结构
	class 类名:
        类体代码
    '''
    1.class是定义类的关键字,类似于函数定义关键字def
    2.类名类似于函数名,但是推荐首字母大写,用原来区分类与函数
    3.类体代码就是存放对选哪个公共数据和功能的地方
    	数据:变量名 = 变量值
    	功能:函数
    '''
    
# 查看类的名称空间的方法:__dict__
# print(Student.__dict__)  # 获取类的所有名称空间,返回dict
# print(Student.__dict__['name'])  # 获取name的名称空间
# print(Student.__dict__['get_class'])  # 获取函数get_class的名称空间
# >>>{'__module__': '__main__', 'name': 'petter', 'age': 18, 'school': '家里蹲大学', 'get_class': <function Student.get_class at 0x021E1150>, '__dict__': <attribute '__dict__' of 'Student' objects>, '__weakref__': <attribute '__weakref__' of 'Student' objects>, '__doc__': None}
# >>>petter
# >>><function Student.get_class at 0x021E1150>
'''上述方法太冗长,有简写'''
# 类获取数据和功能的简便方式:句点符
# print(Student.name)  # 获取name的名称空间
# print(Student.get_class)  # 获取函数名称空间
# >>>petter
# >>><function Student.get_class at 0x01521150>

# 通过类产生对象
'''类名加括号可以返回一个对象'''
# obj1 = Student()  # 产生一个对象命名为obj1
# print(obj1.name)
# obj1.name = 'oscar'  # 修改名字与值的对应关系
# print(obj1.name)
# >>>petter
# >>>oscar

对象的实例化

# 新建学生类
class Student:
    # 对象特有数据获取函数
    def __init__(self,name,age):
        self.name = name
        self.age = age

    # 公共的参数
    school = '家里蹲大学'

    def get_class(self):
        print('学生选课系统')

# 给对象添加独有的数据(实例化对象)
# obj1 = Student('petter',18)
# obj2 = Student('oscar',20)
# print(obj1.name)
# print(obj1.school)
# print(obj2.name)
# print(obj2.school)
# >>>petter
# >>>家里蹲大学
# >>>oscar
# >>>家里蹲大学
"""
类中的__init__方法会在类产生对象的时候自动执行
(__init__就是类的构造方法)
类产生对象的具体步骤
    1.先创建一个没有独有数据的空对象  {}
    2.将空对象和类括号内传入的数据一并交给__init__执行
        __init__的第一个参数就是对象本身
            __init__(obj,name,age,gender)
    3.将创建好的对象自动返回
给你提供这种方式能够减少代码的编写

ps:针对括号内第一个形参self其实就是一个普通的变量名而已
只不过该变量名将来专门接收对象的 所以给它起了个固定的名字叫self
"""

绑定方法

"""
在类中定义的函数默认都是绑定给对象使用的
	即对象来调 会自动将对象当做第一个参数传入
"""
class Student:
    # 对象特有数据获取函数
    # __init__方法不要自己去调用,实例化的时候自动调用
    def __init__(self,name,age):
        self.name = name
        self.age = age

    # 公共的参数
    school = '家里蹲大学'

    def get_class(self):
        print('学生选课系统')

    def func1(self):
        print('func1被%s调用'%self.name)

    def func2(self):
        print('func2被%s调用'%self.name)

# 类调用类中函数 有几个参数就需要传几个参数        
# obj1 = Student('petter',18)
# 对象调用类中函数  会将当前调用的对象当做第一个参数自动传入
# print(obj1.func1())
# print(obj1.func2())
# >>>func1被petter调用
# >>>None  # 类的默认返回值
# >>>func2被petter调用
# >>>None

这篇关于面向对象编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!