1.什么是构造器
构造器通常也叫构造方法、构造函数,构造器在每个项目中几乎无处不在。当你new一个对象时,就会调用构造器。构造器格式如下:
[修饰符,比如public] 类名 (参数列表,可以没有参数){ //这里不能有return}
1. 必须和类的名字相同
2. 必须没有返回类型,也不能写void
2.构造器的作用
1. 使用new创建对象的时候必须使用类的构造器
2. 构造器中的代码执行后,可以给对象中的属性初始化赋值
3.怎么用构造器(还是不理解)
显式参数,就是平时见到的在方法名括号中间的参数,就是所谓能看得见的参数。
隐式参数,是在类的方法中调用了类的实例域。这个被调用的实例域就是隐式参数。在
以下的这个类中调用了a.ariseSalary(100),就用到了隐式参数。
public class Abc
{
private double salary;
public Abc(){
this(100.0);
}
public Abc(double aSalary){
salary = aSalary;
}
}
Abc a = new Abc();
a.ariseSalary(100);
在上面的类中,如果调用了这个方法salary是实例域,ariseSalary方法中的salary就是隐式
参数。如果在隐式参数的前面加上this,隐式参数就更清晰:
public void ariseSalary(double em){
double employ = this.salary * em;
this.salary += employ;
}
推荐在隐式参数的前面加上this操作符。this操作符代表的是本类。
无参构造器也可称作默认的构造器
在编写类的时候没有写构造器,那么在编译之后也会自动的添加一个无参构造器,这个
无参构造器也被称为默认的构造器。
如: Student11 s11 = new Student11();
构造器重载 用this调用自身属性
public Student11(String name){
//可使用this关键字,在一个构造器中可以调用另一个构造器的代码。
this.name = name; //调用name = "tom";
this.name = "我用this.name改了name的值"; //调用name = "tom";
name = this.name;//改不了,应该要用特殊的函数才能改
下面是示例代码
public class 构造器 {
public static void main(String[] args) {
Student s = new Student();
System.out.println("输出无参构造器的值"+s.name);
Student11 s11 = new Student11();
System.out.println("输出无参构造器的值"+s11.name);
}
// 无参构造器也可称作默认的构造器
/*在编写类的时候没有写构造器,那么在编译之后也会自动的添加一个无参构造器,这个
无参构造器也被称为默认的构造器。 */
public static class Student{
private String name;
public Student(){
name = "tom";
}
}
//构造器重载 用this调用自身属性
public static class Student11{ //若Student11后加了()并定义了属性如String name,这样就不可以用Student11 s11 = new Student11();这种调用方式是无参构造器
private String name;
public Student11(){
name = "tom11";
}
public Student11(String name){
//可使用this关键字,在一个构造器中可以调用另一个构造器的代码。
this.name = name; //调用name = "tom";
this.name = "我用this.name改了name的值"; //调用name = "tom";
name = this.name;//改不了,应该要用特殊的函数才能改
}
}
}