如果我们每次创建一个对象的时候,都要执行某一个方法。
我们也可以每次都调用这个方法,但是如果忘记调用这个方法了呢。
而构造函数就是每次创建对象的时候,都会自动调用这一个函数。
package 没有构造函数;
public class page {
int dir=90;
String name = "Delta Kilo";
int speed = (int)(Math.random()*150);
void init(){
System.out.println("A good way to init an object");
}
public static void main(String[] args) {
page m = new page();
m.init();
System.out.println(m.name+" is running "+m.dir+" as "+m.speed);
}
}
如 void init 。我们需要每次创建对象都要执行 init,但是我们可能忘记m.init。
所以,构造函数应运而生。
但需要注意的是:
(1)方法的名字就是类的名字
(2)不能有返回类型,也不能够返回任何值
(3)创建对象会被自动调用,而且无法制止
(4)不能通过对象或者类的"."进行直接调用
package 存在构造函数;
public class page1 {
int dir=90;
String name = "Delta Kilo";
int speed = (int)(Math.random()*150);
page(){this.dir=99;}
public static void main(String[] args) {
page m = new page();
System.out.println(m.name+" is running "+m.dir+" as "+m.speed);}}
这里的
void init()
换成了
page()
而且,构造函数中往往可以存在参数。我们用这些参数来设定初始值。这样不同的对象就会有不同的初始值。
public class page1{
int m;
page1(int m){
this.m =m;
}
void name(){
System.out.println("小明一共拥有"+m+"$");
}
public static void main(String[] args)
{
page1 c = new page1(2);
page1 d = new page1(666);
c.name();
d.name();
}
}
输出结果是:
小明一共拥有2$
小明一共拥有666$