构造方法是类中特殊的方法,通过调用构造方法来完成对象的创建,以及对象属性的初始化 *** 作。
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都会在堆内存中创建对象,并且 对象内部的实例变量被初始化了。
五、总结:大多数方法都定义为实例方法,一般一个行为或者一个动作在发生的时候都需要对象的参与。
但是也有例外,当构造工具类的时候就不需要定义实例方法,为了就是方便调用和方便编程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)