构造方法
作用:创建对象,初始化对象
如果没有定义构造方法,系统会帮我们声明一个无参的构造方法
构造方法语句:public
有参的构造方法:创建对象的同时并为对象进行赋值
package string;
public class Not {
// 成员变量
int numb1;
int numb2;
int numb3;
// 无参构造方法:可以不写,系统会帮我们声明一个无参的构造方法
// 但是如果声明了有参构造方法,系统就不会帮我们生成无参构造方法
// 所以我们要在创建构造方法时两种构造方法一起声明
public Not() {
super();
}
// 有参构造方法
public Not(int numb1, int numb2, int numb3) {
super();
this.numb1 = numb1;
this.numb2 = numb2;
this.numb3 = numb3;
}
// 打印输入的数值
public void read(){
System.out.println(numb1+","+numb2+","+numb3);
}
}
package string;
public class Yes {
public static void main(String[] args) {
// 无参构造方法需要一个一个调用赋值
Not mc1 = new Not();
mc1.numb1 = 10;
mc1.numb2 = 20;
mc1.numb3 = 30;
// 输出:10,20,30
mc1.read();
// 有参构造可以直接在括号内直接赋值
Not mc2 = new Not(40,50,60);
// 输出:40,50,60
mc2.read();
}
}
特点:
1、无参构造方法,与类同名,不含返回类型。如果类中没有显示的构造方法,系统会给出默认的无参构造方法。
2、构造方法一般都是public的,才能被系统调用。
3、无参构造在给对象属性赋值时比较麻烦,可以定义有参的构造方法。
当成员变量(属性)和方法参数同名时,一般使用this表示当前对象,如:this.name = name;
4、构造方法经常用于程序初始化工作,例如:人出生要“洗澡”,就可以在人的构造方法时加入完成“洗澡”的程序代码,程序就不必每个人出时一个一个地告诉他们要“洗澡”了。
5、当类有了带参构造方法之后,系统不再自动生成默认的无参构造方法,若使用需重新定义
要求:如果一个类中有带参数的构造方法时,必须要定义无参的构造方法
6、构造方法只能用于创建对象时,不能在程序中像调用其他方法一样调用它,但是可以用this()的形式在其他构造方法中调用它,注意this()必须在第一行。
构造方法和普通方法的区别:
构造方法访问修饰符一般是public, 一般方法根据实际情况选择修饰符
构造方法没有返回值类型,一般方法要么无返回值-void,要么有返回值
方法名与类同名,一般方法见名思意,遵循驼峰命名规则
构造方法的方法体是对象的初始化代码,一般方法是功能的实现
调用方式不一致,普通方法需要使用对象来调用,构造方法是new, this, super