标签:style blog http color 使用 java ar strong 2014
构造函数:
2.多个构造函数是以重载的形式存在的
代码演示:
class man
{
private int age;
private String name;
man()//定义一个man类的构造函数
{
System.out.println("sun");
}
public void fun()
{
System.out.println(name+" "+age);
}
}
public class Main
{
public static void main(String[] args)
{
man jo = new man();
}
}
打印 sun、
如果在类中定义了指定的构造函数,那么类中的默认构造函数就没有了
特别注意:如果定义了有参的构造函数,那么默认构造函数的形式也构造,编译器不再自动生成
实际上:默认的空参数函数是:man(){}
比如一个类:
class test
{
}
什么也没有,但是实际上里面有一个test(){},编译器编译时会先判断有没有写构造函数,没有自动添加,有就删除默认的构造函数
构造函数,是在一创建对象的同时被调用了
一般函数和构造函数的区别:
1.构造函数:对象创建时,就会调用与之对应的构造函数,并对该对象进行初始化
一般函数: 创建对象后,需要进行函数的调用的时候才会被调用
2.构造函数,对象创建时,只调用一次
一般函数:对象创建后,想调用几次就调用几次
什么时候使用构造函数?
在描述某一事物时,该事物存在一些内容,这些内容都定义在构造函数里。
如:对象一创建,就有一个默认的年龄、姓名
示例代码:
class man
{
private int age;
private String name;
man()//定义一个man类的构造函数
{
age = 20;
name = "john";
}
public void fun()
{
System.out.println(name+" "+age);
}
}
public class Main
{
public static void main(String[] args)
{
man jo = new man();
jo.fun();
}
}class man
{
private int age;
private String name;
man()//定义一个man类的构造函数--------------- |
{ |
age = 20; |
name = "john"; |
} |
// 对象在创建前就有年龄,名字 |
|
man (int a,String s) |-------->重载
{ |
age = a; |
name =s; |
} |
man (String s) |
{ |
name =s; |
} ---------------|
public void fun()
{
System.out.println(name+" "+age);
}
}
public class Main
{
public static void main(String[] args)
{
man jo = new man();
jo.fun();
man jj = new man(1,"BLF");
jj.fun();
man jjj = new man("BLF2");
jj.fun();//打印BLF 0
}
}
构造函数细节:
构造函数,为了方便日后修改信息,所以要加set
构造函数的名前,不可加void等,加了之后就不是构造函数,而变成一般函数了(构造函数的特点2)
错误代码示例
class man
{
private int age;
private String name;
man(int a)
{
age = a;
}
// 对象在创建前就有年龄,名字
man (int a,String s)
{
age = a;
name =s;
fun();
}
public void set(String s)
{
name = s;
}
public void fun()
{
System.out.println(name+" "+age);
}
}
public class Main
{
public static void main(String[] args)
{
man jo = new man();
jo.set("BLF2");
jo.fun();
}
}因为没有定义构造函数。
默认的构造函数是代码没有创建构造函数时自动添加,但是上述代码有构造函数了,但是没有man(){}找一个类型的构造函数,所以报错
标签:style blog http color 使用 java ar strong 2014
原文地址:http://blog.csdn.net/wjw0130/article/details/39138587