编程语言中面向对象和类的概念是什么
admin
2023-07-19 19:42:16
0
#一、面向对象
#面向过程与面向对象
#面向过程:过程即解决问题的过程,就是有逻辑顺序,基于该思想写程序。如设计流程图,是一种机械式的思维方式。
#优点:复杂的过程流程化,进而简单化
#缺点:扩展性差

#面向对象:对象是特征与技能的结合体,基于该思想编写程序比如创造一个世界,世界是由一个个对象组成
#优点:可扩展性强
#缺点:编程复杂高,容易出现过度设计

#二、类
#对象是特征与技能的结合体,类是一系列对象相似的特征与技能的结合体。
#在实现中:一定是先有的一个个具体的对象,后总结出的类。如(人,人类)
#在程序中:一定是先定义类,后产生对象。

#类的格式: class 类名:
#类体内的代码在类的定义阶段就会立即执行,
#如:
class sut:
    sc='dagschool'
    def learn(self):
        print('is learing')

    def __init__(self,name,sex,age):   #__init__在调用类时会自动触发
        self.Name=name
        self.Sex=sex
        self.Age=age

        #self.Name='李'
        #self.Sex='男'
        #self.Age=18

    def choose_cou(self):
        print('choose')

#类的查看属性
print(sut.__dict__)  #__dict__查看类的名称空间
print(sut.sc)    #访问类的名称空间,"."访问前面名称空间的属性。
print(sut.learn)  #learn类的函数属性

#类的增加属性
sut.counttry='china'
print(sut.counttry)

#类的修改属性
sut.sc='DAGSCHOOL'
print(sut.sc)

#类的删除属性
del sut.counttry
print(sut.counttry)

#类函数的调用,必须传参
sut.learn('ss')

#调用类的过程又称之为实例化
#1.得到的返回值,即是一个对象,该对象是一个空对象。
#2.把空对象,连同调用类时类括号参数,把它拼接成一堆参数,其中空对象本身要当成第一个参数,然后传给初始化的函数__init__。如:sut.__init__(sut1,'李','男',18)
sut1=sut('李','男',18)  #sut1就是一个对象
print(sut1.__dict__)
print(sut1.Name,sut1.Sex,sut1.Age)

#类中定义的函数是绑定给对象使用的,不同的对象就是不同的绑定方法,绑定给谁,就应该由谁来调用。谁来调用,就会谁当做第一个参数传给对象的函数。
class sut:
    sc='dagschool'
    def learn(self,x,y):
        print('%s is learing' %self.Name)
        print(x,y)
    def __init__(self, name, sex, age):  # __init__在调用类时会自动触发
        self.Name=name
        self.Sex=sex
        self.Age=age

sut1=sut('李','男',18)   #sut1就是一个对象
print(sut1.__dict__)
print(sut1.Name,sut1.Sex,sut1.Age)
sut2=sut('罗','男',8)
sut3=sut('候','男',181)

print(sut.learn)
print(sut1.learn)
print(sut2.learn)
print(sut3.learn)

sut1.learn(1,2)
sut.learn(sut1,1,2) #结果相同

#在类内部定义的函数,都应该默认有一个参数。

例:
class Teac:
    schoo='oldboy'
    count=0
    def __init__(self,name,sex,age,level,salary):
        self.name=name
        self.sex=sex
        self.age=age
        self.level=level
        self.salary=salary
        Teacher.count+=1

    def teach(self):
        print('%s is tacahing' %self.name)

t1=Teac('ii','sdf',19,56,20)
t2=Teac('tr','tf',58,60,1000)
t3=Teac('hg','aop',68,40,100)

print(t1.count)

#类及类型
g=[1,2,3,4] #g=list([1,2,3,4])
g1=list([1,2,3,4])
g2=list([1,2,3,4])

g1.append(5)
#等于
list.append(g1,5)  #g1相当于默认参数self
print(g1)

#绑定方法的理解
g1.append('a')
g2.append('b')

相关内容

热门资讯

新纪录,0数据!对手忘记了C罗... 澎湃新闻记者 陈均射门3次0射正,关键传球、成功过人0次,被对手犯规0次,地面一对一争抢0次成功,抢...
即使霍尔木兹海峡现在重开,全球... 澎湃新闻记者 陈良贤 王亚赛央视新闻在当地时间6月17日获悉,两名美国官员透露,美国和伊朗已远程签署...
微软Copilot AI高危漏... IT之家 6 月 18 日消息,科技媒体 Ars Technica 于 6 月 16 日发布博文,报...
指尖问诊、送药上门,厦门智慧中... 通过手机即可复诊开方、预约检查,中药配送到家且医保实时结算,便捷的智慧中医服务已成为厦门市民就医常态...
价格战退潮,极兔困在沙滩上 「核心提示」 靠闪电战抢下市场份额的极兔,如今面临安全合规、盈利能力、市场竞争等多重压力的考验...
美伊为何突然选择提前签署谅解备... 美伊双方此前已经确定将于6月19日在瑞士会晤时举行签署仪式,为什么又突然选择进行远程签署?这次签署的...
俄军缴获乌军新型电子战系统,可... 凤凰卫视记者卢宇光从顿涅茨克发回最新报道:俄军6月17日在康斯坦丁诺夫卡突破乌军防线,城北巷战激烈,...
12岁男孩偷开邻居车高速狂飙6... 极目新闻评论员 屈旌12岁男孩凌晨偷邻居车,在高速路狂飙6小时。收费站工作人员纳闷:驾驶座怎么坐着个...
台军一名中士持训练枪追射士兵,... 【环球网报道 记者 徐思琦】据联合新闻网、TVBS新闻网等台媒17日报道,台中成功岭营区“步兵302...
《5G时代》一本影响产业走向的... 我们通信人,信奉多做少说,做了也不说。所以做了很多事,也不敢出来多说,最近杨学志那一套对我有点启发,...