zoukankan      html  css  js  c++  java
  • 面向对象

    一.面向对象如何写代码

    二.面相对象的三大特征:封装、继承,多态

    面向对象:

    定义:

    class 类名:                    定义了一个类

      def 函数名(self)  在类中编写了一个方法

        pass

    调用:

    x1=类()        创建了一个对象,或者说是实例化了一个对象

    x1.函数名()      通过对象调用其中的一个方法

    class Account:
        def yh (sher):
            use=input("请输入用户名")
            pwd=int(input("请输入密码"))
            if use=="alex" and pwd==123:
                print("登录成功")
            else:
                print("登录失败")
    ojb= Account()
    ojb.yh()
    class LaoGou:
        def __init__(self,name,age,gender):        构造方法,把共用的一些数据放到一块打包
            self.name=name
            self.age=age
            self.gender=gender
        def kc(self):
            date="%s,性别%s,今年%s岁,喜欢上山砍柴" %(self.name ,self.age ,self.gender)
            print(date)
        def db(self):
            date="%s,性别%s,今年%s岁,喜欢开车去东北" %(self.name ,self.age ,self.gender)
            print(date)
        def bj(self):
            date="%s,性别%s,今年%s岁,喜欢大保健" %(self.name ,self.age ,self.gender)
            print(date)
    obj=LaoGou("老欧狗","",20)
    obj.kc()
    obj.db()
    obj.bj()
    
    老欧狗,性别男,今年20岁,喜欢上山砍柴
    老欧狗,性别男,今年20岁,喜欢开车去东北
    老欧狗,性别男,今年20岁,喜欢大保健

    面向对象的应用:

    1.将数据分装到对象中,以供自己在方法中方便使用

    class FileHandler:
        def __init__(self,file_pyth):
            self.filepyth=file_pyth
            self.f=open(file_pyth,mode="rb")
        def first(self):
            self.f.read()
        def last(self):
            self.f.read()
    obj=FileHandler('F:/XX/XX.log')
    obj.first()
    obj.last()

    2.将数据封装到对象中,以供其他函数调用

    def func(arg):
        arg.n1
        arg.n2
        arg.n3
    class Foo:
        def __init__(self,n1,n2,n3):
            self.n1=n1
            self.n2=n2
            self.n3=n3
    obj=Foo(1,2,3)
    func(obj)
    class UserInfo:
        def __init__(self):
            self.name=None
        def xx(self):
            print("当前用户名是%s" %(self.name))
        def zd(self):
            print("当前%s的账单是" %(self.name))
        def shopping(self):
            print("%s购买了一个抱枕" %(self.name))
        def dl(self):
            user=input("请输入用户名")
            pwd=int(input("请输入密码"))
    
            if  pwd==123:
                self.name=user
    
    
                while 1:
                    print("""
                    1. 查看用户信息
                    2. 查看用户账单
                    3. 购买抱枕
                        """)
                    num =int(input("请输入数字选择"))
    
    
    
    
                    if num==1:
                        self.xx()
                    elif num==2:
                        self.zd()
                    elif num==3:
                        self.shopping()
    
                        
                    else:
                        print("输入有误,请重新输入")
    
    
    obj=UserInfo()
    obj.dl()

    3.面向对象的代码如何编写:

      a:规则

    class Fool:

      def __init__(self,name)

        self.name=name

      def detail(self,msg)

        print(self.name,msg)

    obj=Fool()

    obj.detail()

      b:什么时候写,怎么写?

    方法1:归类+提取公共值

    方法2:

    在指定类中编写和当前类相关的所有代码+提取公共值

    4.面向对象的三大特性:封装、继承、多态

    a:封装:把相关功能封装到一个类中,把数据封装到一个对象中

    ***********************把功能封装到类中********************

    class Message:

      def email(self):pass

      def msg(self):pass

      def  weixin (self):pass

    把信息以邮件,短信,微信的方式发送

    ***********************把数据封装到对象中********************

    class Person:

    def __init__(self,name,age,gender)

      self.name = name

      self.age = age

      self.gender = gender

    obj=Person("vvv",18,"男")

    b:继承

    (1):编写继承

    (2):支持多个继承,(先找左边,再找右边)

    (3):多继承的好处:提供代码的重用性

    c:多态

    多种形态或多种状态
    鸭子模型,只要可以嘎嘎叫就是鸭子
    
    
    
  • 相关阅读:
    千个常用DOS命令全面收藏
    面向对象设计的11原则
    SQL语句判断指定的数据库、表、字段、存储过程是否存在
    ASP.NET MVC2 Areas区域新概念
    标准的 SQL 解析顺序
    Improvements to workspaces in TFS 2010
    jquery ajax return值不能取得的解决方案
    用 SQL 语句创建数据库用户(SQL Server 2005)
    简单实现.net MVC自定义错误处理页面
    自定义截图类(C#)
  • 原文地址:https://www.cnblogs.com/wqzn/p/9543340.html
Copyright © 2011-2022 走看看