property 特性 什么是特性property property 是一种特殊的属性,访问它时会执行一段功能(函数),然后返回值 例如 BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法,如果我们将其做成一个属性,更便于理解) 成人的BMI数值: 过轻:低于18. 正常:18.5-23.9 过重:- 肥胖:- 非常肥胖, 高于32 体质指数(BMI)=体重(kg)÷身高^(m) EX:70kg÷(1.75×1.75)=22.86 ''' class People: def _…
类的封装 就是把数据或者方法封装起来 为什么要封装 封装数据的主要原因是:保护隐私 封装方法的主要原因是:隔离复杂度(快门就是傻瓜相机为傻瓜们提供的方法,该方法将内部复杂的照相功能都隐藏起来了,比如你不必知道你自己的尿是怎么流出来的,你直接掏出自己的接口就能用尿这个功能) 在编程语言里,对外提供的接口(接口可理解为了一个入口),就是函数,称为接口函数,这与接口的概念还不一样,接口代表一组接口函数的集合体. 两个层面的封装 第一个层面 第一个层面的封装(什么都不用做):创建类和对象会分别创建二者的…
不可以.静态成员不能调用非静态成员. 非static方法属于对象,必须创建一个对象后,才可以在通过该对象来调用static方法.而static方法调用时不需要创建对象,通过类就可以调用该方法.也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果允许从一个static方法中调用非static方法的调用,那个非static方法是没有调用对象的.因此Java不允许static方法内部调用非static方法.…
封装 # class Room:# def __init__(self,name,length,width):# self.__name = name# self.__length = length# self.__width = width# def get_name(self):#C++的编码习惯,一个get和一个set# return self.__name# def set_name(self,newName):# if type(newName) is str and newName.…
Queue是什么 队列,是一种数据结构.除了优先级队列和LIFO队列外,队列都是以FIFO(先进先出)的方式对各个元素进行排序的.无论使用哪种排序方式,队列的头都是调用remove()或poll()移除元素的.在FIFO队列中,所有新元素都插入队列的末尾.队列都是线程安全的,内部已经实现安全措施,不用我们担心 Queue中的方法 Queue中的方法不难理解,6个,每2对是一个也就是总共3对.看一下JDK API就知道了: 注意一点就好,Queue通常不允许插入Null,尽管某些实现(比如Link…
java的calss中,在public static void main(String[] args) { }方法中调用非static的方法:在main方法中创建该calss的对象,用对象调用非static方法 public class Test{ public void testaction(){ //方法体 } public static void main(String[] args) { Test test = new Test(); test.testaction(); } }…
多态 what: 同一个事物有不同的形态. 多态的目的:在不知道对象具体类型的情况下,统一对象调用方法的规范.(通俗讲,即规定实现同样功能的方法,一定要起同样的名字). 多态的表现形式之一就是继承,先抽象再继承. 多态的父类:定制一套统一的规范,子类中重写该方法,并使用这个方法名. python中不会强制限制子类一定要用父类规定的方法名,所以出现了抽象类. 抽象类 what:python中内置了abc模块中有抽象类   import abc 抽象类的作用:让子类必须遵循父类的编写规范. 抽象类不…
上节课复习:1.编程思想    面向过程        核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么后干什么        基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式        优点:复杂的问题流程化,进而简单化        缺点:可扩展性差 面向对象        核心是对象二字,对象是特征(变量)与技能(函数)的结合体        基于该思想编写程序就好比在创造一个世界,世界是由一个个对象组成的,在上帝眼里所有存在的事物都是对象,任何不存在的事物…
property property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值:就是把一个函数属性的访问方式变成像访问数据属性的方式一样. 我们首先来看一个对比效果 例一:在调用 bmi 函数的时候需要加括号的,可是我们往往需要另一种调用方法——不想加括号 class people(): def __init__(self, name, height, weight): self.name = name self.height = height self.weight = weig…
目录 类的封装 如果真的要拿 类的property特性 setter & deleter 类属性用法 类与对象的绑定方法和非绑定方法 对象方法&类方法&静态方法 隐藏模块内的函数 封装的三个等级(课外了解) 类的封装 封装:把一些属性,方法打包封装在一个对象中. 对属性封装:保护隐私,类内部的属性不想让其他人访问 对方法封装:对外隐藏内部具体的实现细节,外部只要根据内部提供的接口去用就可以了. 封装分为两个层面 对象能拿到类的东西,但类能拿到对象的东西吗? class Foo: x…