现代编程语言,构造器
构造器,或者说构造函数,是一个很基础的概念,在Java和C++中,它们的存在形式和类的名称相同,通过改变参数列表来定义一些需要初始化的量
在创建对象的同时为成员变量赋值
1.构造器,也称构造方法、构造函数。作用是构造出来一个类的实例,确保对象得到初始化。
2.构造器的格式: 权限修饰符 类名(无参/有参){}。
3.根据有无参数,可分为无参构造 和有参构造。
构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。如果想改变这种默认的初始化,就可以通过自定义构造器来实现。
构造器可以用来在初始化对象时初始化数据成员,一个类可以有多个构造器。一个类的构造器的名称必须与该类的名称一致。
##构造器的特性
1.与一般方法名不同的是,构造方法名必须和类名保持一致,并且没有返回值,甚至连void都没有。
2.Java编译器会自动创建无参构造函数,因此在类中,无参构造即使没有,我们也可省略不写。实例化对象时无需赋值在。
而c++中类的构造函数不会自动初始化类的变量,它们的值将取决于内存中读取的值,所以,在构造函数中,建议对成员变量赋上初值.
当为一个类设定了有参数的constructor之后,编译器将不会为类提供默认的构造函数
3.倘若类中已存在有参构造函数,则编译器不再提供默认无参构造。实例化对象时需赋值,不然报错。
4.当类实例化一个对象时会自动调用构造方法。
5.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承
6.每个类可以有零个或多个构造方法.
python中的‘构造器’
在python中其实也有构造器这个概念,至少它被定义为了一种魔法方法。
1 | self.p1 = p1 |
其中self这个很有意思,它指代的是实例化之后的数据体本身,代表“我有这种属性”
在本类中调用某一个属性的时候,用self.xxx来使用,这样可以和类外的同名方法区分开来
静态方法
这里厘清一个重要的概念,静态方法,在Java中,在实例化之前就能使用静态方法
@staticmethod
静态方法只是名义上归属类管理,但是不能使用类变量和实例变量,是类的工具包
放在函数前(该函数不传入self或者cls),所以不能访问类属性和实例属性