Java教程

类和对象的相关知识

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

类变量就是静态变量,所有方法(对象)要用到同一个属性是,将其定义成类变量

# class Fruits:
#     discount=0.8   # 类变量, 静态变量
#     # 当所有变量都共用到一个属性时,定义成类变量
#     def __init__(self,name,price):
#         self.name=name
#         self.price=price
#         self.pri=self.price * Fruits.discount
#         print(self.pri)
#
# apple=Fruits('苹果',5)

练习,求圆的周长和面积

正解:这样后面半径修改,周长、面积也会发生变化

# from math import pi
# class Circle:
#     def __init__(self,r):
#         self.r=r
#     def leng(self):
#         self.len=2*pi*self.r
#         print('周长', self.len)
#     def s(self):
#         self.area=pi*self.r**2
#         print('面积',self.area)
#
# c1=Circle(3)
# c1.leng()
# c1.s()
# c1.r=5  # 修改半径
# c1.leng()

 

 

坑:这样写,当修改了半径后,周长、面积没有改变。因为只在c1=Circle(3)时调用了init方法,后面修改,没有发生改变

# from math import pi
# class Circle:
#     def __init__(self,r):
#         self.r=r
#         self.len=2*pi*self.r
#         self.area=pi*self.r**2
#         print('周长', self.len)
#         print('面积',self.area)
# 
# c1=Circle(3)
# c1.r=5
# print(c1.len)

 

 

总结:
    类名作用:
        1.类名可以调类中的变量Fruits.discount
        2.类名可以实例化创建一个对象Fruits()
        3.调用一个方法,类名.方法名(对象)

    对象名作用:
        查看对象的属性 对象名.属性
        调用对象的方法 对象名.方法名()

类和对象,实例和实例化?
    什么是类? Person Dog  Fruits
    什么是对象? banana  dog1 zhangsan
    什么是实例? 对象就是实例,对象就是实例的另外一种称呼
    什么是实例化? 实例化是一个动词,类创造实例的过程叫做实例化
        对象=类名() # 实例化

# class A:
#     静态变量='值'
#     def __init__(self,属性):
#         self.属性=属性
#     def show(self):  #实例方法
#         print('展示所有的属性')
#
# a=A('参数')  # 对象a

 

 

#全家的钱放在一起

# class Person:
#     sum=0   # 目前全家工资总和
#     def __init__(self):
#         self.salary=1000
#
# father=Person()
# mother=Person()
# # print(mother.sum)  #通过对象指针拿到sum
# # print(mother.salary) # salary 就在对象空间里

#实现全家的钱加在一起
# Person.sum+=father.salary
# Person.sum+=mother.salary
# print('Person.sum',Person.sum)
# print('father.sum',father.sum)
# print('mother.sum',mother.sum)

 

 

#练习
#写一个类,统计一共实例化多少个变量

#方法1
# class Person:
#     count=0
#     def __init__(self):
#         self.num=1
#
# lisir=Person()
# gonsir=Person()
# Person.count+=lisir.num
# Person.count+=gonsir.num
# print('Person.count',Person.count)
# print('lisir.count',lisir.count)
# print('gonsir.count',gonsir.count)


#方法2——老师
# class Person:
#     count=0
#     def __init__(self):
#         Person.count+=1
#
# lisir=Person()
# gonsir=Person()
# print('Person.count',Person.count)
# print('lisir.count',lisir.count)
# print('gonsir.count',gonsir.count)

 

# class A:
#     num=0
#     def __init__(self):
#         self.num+=1
#
# a1=A()
# a2=A()
# a3=A()
# print(A.num)  # 0
# print(a1.num)  #  1
# print(a2.num) #  1
# print(a3.num)  # 1


# class A:
#     lst=[]
#     def __init__(self):
#         self.lst.append(1)  # 并没有对lst赋值,用对象修改静态变量(类变量),只有用到了赋值,才相当于在自己的对象空间中新建
#
# a1=A()
# a2=A()
# a3=A()
# print(A.lst)   # [1,1,1]
# print(a1.lst)  # [1,1,1]
# print(a2.lst)  # [1,1,1]
# print(a3.lst)  # [1,1,1]



# class A:
#     lst=[0,1]
#     def __init__(self):
#         self.lst[0]+=1   # 确实时重新赋值了,赋值给lst第一个元素,并没有对列表进行重新赋值
#
# a1=A()
# a2=A()
# a3=A()
# print(A.lst)   # [3,1]
# print(a1.lst)  # [3,1]
# print(a2.lst)  # [3,1]
# print(a3.lst)  # [3,1]
# 总结:
#     操作静态变量时,如果时查看,用类或对象都可以
#     如果是修改,用类名去修改,永远不会错
#     不要在对象空间中创建一个和类变量同名的实例变量

# __dict__方法,查看类和对象空间中存储了什么

# class Student:
#     age=18
#     def __init__(self,id,name,sex,tel):
#         self.id=id
#         self.name=name
#         self.sex=sex
#         self.tel=tel
#
#
#     def choose_course(self):
#         print('选择课程')
#
#     def show_score(self):
#         print('查看分数')
#
# print(Student.__dict__)
# lw=Student(1,'老王','男',13274582657)
# print(lw.__dict__)

 


这篇关于类和对象的相关知识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!