构造方法是类中特殊的方法,通过调用构造方法来完成对象的创建,以及对象属性的初始化操作。
2、作用: 1、创建对象
2、给实例对象赋值
3、所有的构造方法在执行过程中没有给对象的属性手动赋值,系统则自动赋默认值,实际上大部分情况下我们需要在构造方法中手动的给属性赋值,这本来就是构造方法的主要的职责。
例子:
public class Test01 {
public static void main(String[] args) {
new FangFa();
FangFa f1=new FangFa(20);
System.out.println(f1.getNo());
FangFa f2=new FangFa(10,"陈绪杰");
System.out.println("学号:"+f2.getNo()+"姓名;"+f2.getName());
}
}
class FangFa {
private int no;
private String name;
//构造无参数的方法
public FangFa(){
System.out.println("无参数的构造方法");
}
//构造有参数的构造方法
public FangFa(int a){
no=a;
System.out.println("有参数的构造方法");
}
public FangFa(int a,String b){
no=a;
name=b;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
输出:无参数的构造方法
有参数的构造方法
20
学号:10姓名;陈绪杰
3、定义格式:
[修饰符列表] 构造方法名(形式参数){
构造方法体
}
例子:
//有参数的构造方法
public FangFa(int a){
no=a;
System.out.println("有参数的构造方法");
}
//构造无参数的方法
public FangFa(){
System.out.println("无参数的构造方法");
}
调用:new 构造方法名(实际参数列表);
例子;
new FangFa(); FangFa f1=new FangFa(20); FangFa f2=new FangFa(10,"陈绪杰");4、注意:
1、构造方法名和类名一致。
2、构造方法用来创建对象,以及完成属性初始化操作。
3、构造方法返回值类型不需要写,写上就报错,包括 void 也不能写。
4、 构造方法的返回值类型实际上是当前类的类型。
5、一个类中可以定义多个构造方法,这些构造方法构成方法重载。
6、带static的方法调用的时候是 类名.方法名(实际参数) 不带static的方法调用的时候是 引用.方法名(实际参数)。
public class Test02 {
public static void main(String[] args) {
dosum();
//系统默认给构造的一个无参数的构造方法
Test02 t1=new Test02();
t1.dum();
}
public static void dosum(){
System.out.println("有static修饰符的方法");
}
public void dum(){
System.out.println("无static修饰符的方法");
}
}
7、当一个类没有显示的定义任何构造方法的时候,系统默认提供无参数构造方法,当显示的定义构造方法之后,系统则不再提供无参数构造方法。
8、构造方法的作用是专门用来创建对象同时给属性赋值的,它的 语法很简单,比普通方法还要简单,因为构造方法名和类名一致,还不需要写返回值类型,使 用 new 就可以调用了。在一个类当中可以同时定义多个构造方法,它们之间构成重载关系。 这样就做到了在 java 中你想要什么就 new什么,每一次 new都会在堆内存中创建对象,并且 对象内部的实例变量被初始化了。
五、总结:大多数方法都定义为实例方法,一般一个行为或者一个动作在发生的时候都需要对象的参与。
但是也有例外,当构造工具类的时候就不需要定义实例方法,为了就是方便调用和方便编程。



