构造器可以初始化一个对象。
在java中,初始化和创建是捆绑在一起的,这个有助于减少错误,便于代码阅读。
java完全延用了c++构造器的特点,唯一不同的是java要随着new一起使用。
java完全延用了c++构造器的特点,唯一不同的是java要随着new一起使用。
构造器的特点
构造器须与类同名
每个类可以有1个以上的构造器
构造器可以有0个,1个或多个参数
构造器总是伴随着new操作
构造器须与类同名
每个类可以有1个以上的构造器
构造器可以有0个,1个或多个参数
构造器总是伴随着new操作
默认构造器
不接受任何参数的构造器;
每一个类都会自带一个默认构造器。如果类中没有构造器,则编译器会自动帮你创建一个默认构造器。
每一个类都会自带一个默认构造器。如果类中没有构造器,则编译器会自动帮你创建一个默认构造器。
带参数的构造器
由于构造器的名字由类名决定了,那么创建多种构造器的话,就需要用到重载。
如果构造器的有形如this(.....), 这个构造器会调用同一个类的另一个构造器。
比如:
public class Employee {
public Employee(double s){
this("Employee #" + 1, s); //会调用构造器Employee(String, double), 必须是第一行
}
public Employee(String s, double d){
}
}
public Employee(double s){
this("Employee #" + 1, s); //会调用构造器Employee(String, double), 必须是第一行
}
public Employee(String s, double d){
}
}
this关键字
除了上面的作用,还有,主要是引用方法的隐士参数,在方法内部使用
所以this主要用在:
1)引用本类的成员变量
public class Person {
String name;
public Person(String name){
this.name = name;
}
}
2)引用本类的其他方法
假如下面2个方法在同一个类中。其实在方法内调用另外一个方法,就不必使用this。
只有当需要明确对当前对象的引用时,才需要使用this关键字。
只有当需要明确对当前对象的引用时,才需要使用this关键字。
public String getName(){
return name;
}
public String getOtherName(){
return this.getName(); //直接使用getName()即可
}
3)引用本来的其他构造器
略
4)类的引用,将当前对象传递给其他方法
4)类的引用,将当前对象传递给其他方法
class Peeler{
Apple peel(Apple apple){
return apple;
}
}
class Apple{
public Apple get(){
Peeler peeler = new Peeler();
return peeler.peel(this);
}
}