1.什么是构造方法——在一个类中定义一个与本类同名的方法就叫构造方法
2.构造方法有什么特点:
(1)方法名必须和本类同名
(2)没有返回类型(就连void最好也不要写)
(3)方法体里面不要有return
(4)修饰词一般用public
3.构造方法的功能是什么
主要用于对象的初始化
4.怎么调用构造方法
构造方法不能直接调用,它只能在new操作符之后调用
比如Student stu=new Student ();这样就算调用Student 的构造方法了
5.我们没有写构造方法为什么也可以实例化对象
当我们没有写构造方法的时候,系统会给我们自定义一个构造方法,这个方法没有参数,没有方法体,也就是说我们在实例化的时候也就是在调用构造方法,只是不是我们自己写的,当然当我们自己写了构造方法之后,无论我们有没有参数,系统都不会给我们建立构造方法
6.构造方法与普通方法的区别
普通方法是要通过建立对象,通过**对象+.来实现调用,但是构造方法其实是在你建立对象(实例化对象)的时候就已经调用了
原因是:普通方法需要程序员自己调用,也就是说对象+.**来实现调用,但是构造方法不能被程序员直接调用
7.构造方法重载
和重载意思差不多,就是同样是构造方法,两个方法的参数的个数可能不同,就算参数个数相同,但是参数的数据类型也不尽相同
比如:
package cn.edu.dgut.test2_1;
public class Student {
//Student类里面有两个属性name和score
private String name;
private double score;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
//建立无参的构造方法
public Student(){
}
//建立有参的构造方法
public Student(String name,double score) {
this.name=name;
this.score=score;
}
//建立一个展示的普通方法
public void show() {
System.out.println(name+"的成绩是"+score);
}
}
上面是第一个Student类
下面是测试类
package cn.edu.dgut.test2_1;
public class Train {
/**
* 测试类,对Student类进行测试
* @param args
*/
public static void main(String[] args) {
//实例化对象——用来调用无参的构造方法
Student student1=new Student();
//初始化
student1.setName("小明");
student1.setScore(90.0);
//输出
student1.show();
//实例化第二个对象——用来调用有参的构造方法
Student student2=new Student("小芳",60.0);
student2.show();
}
}