您的位置:首页 > 编程语言 > Java开发

Java菜鸟学习笔记--面向对象篇(三):构造器&重载

2013-07-15 17:16 495 查看

Java构造器

构造方法是一种特殊的方法,具有以下特点。

(1)构造方法的方法名必须与类名相同。

(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。

(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。如果已经写了任何有参构造器,编译器将不再添加任何构造代码。

(5)构造方法可以重载,以参数的个数,类型,或排列顺序区分。

示例

1.在创建对象时候完成初始化

class A
{
private int age;
private String name;

public A(){}//无参构造函数,如果都不写系统会自动生成这个,但是如果写了任何构造函数,系统将不会自动生成
public A(int a,String b)//构造函数,与类名相同,不写的话系统默认生成。没有返回值
{
System.out.println("构造函数被调用!");
age=a;
name=b;
}
public void show()//输出接口
{
System.out.print("age= "+age);
System.out.print("name= "+name);
System.out.println();
}

}
public class ConstTest
{
public static void main(String[] agrs)
{
A one=new A(21,"yanggan");//1.new会创建并返回一个对象,然后调用构造函数。但是构造函数没有返回值
one.show();
}
/*输出:
构造函数被调用!
age= 21name= yanggan
*/
}


Java方法重载

重载方法是函数的一种特殊情况,为方便使用,Java允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同(每一个重载的方法都必须有独一无二的参数列表,这是编译器判断的依据),也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。

重载函数不能通过返回值判断!两个重载函数必须在下列一个或两个方面有所区别:

1.、函数有不同参数。

2、函数有不同参数类型

示例.

1.运用重载函数与非重载进行对比

//测试函数重载和非重载情况下
class A//不采用函数重载的类
{
public int add2(int a,int b)
{
return a+b;
}
public int add3(int a,int b,int c)
{
return a+b+c;
}
public int add4(int a,int b,int c,int d)
{
return a+b+c+d;
}
public double add2double(double a,double b)
{
return a+b;
}

}
class B//采用函数重载
{
public int add(int a,int b)
{
return a+b;
}
public int add(int a,int b,int c)
{
return a+b+c;
}
public int add(int a,int b,int c,int d)
{
return a+b+c+d;
}
public double add(double a,double b)
{
return a+b;
}

}
public class ConstTest
{
public static void main(String[] agrs)
{
A one=new A();

System.out.println("1+2= "+one.add2(1,2));
System.out.println("1+2+3= "+one.add3(1,2,3));
System.out.println("1+2+3+4= "+one.add4(1,2,3,4));
System.out.println("1.2+2.3= "+one.add2double(1.2,2.3) );
//在访问方法时候容易混乱,刚刚在编码中甚至写错了add4与add2double~

B two=new B();

System.out.println("----------运用函数重载--------");
System.out.println("1+2= "+two.add(1,2));
System.out.println("1+2+3= "+two.add(1,2,3));
System.out.println("1+2+3+4= "+two.add(1,2,3,4));
System.out.println("1.2+3.5= "+two.add(1.2,3.5));
//运用函数重载的优点不言而喻,相似功能函数名统一,

}
/*输出:
1+2= 3
1+2+3= 6
1+2+3+4= 10
1.2+2.3= 3.5
----------运用函数重载--------
1+2= 3
1+2+3= 6
1+2+3+4= 10
1.2+3.5= 4.7

*/
}


作者:YangGan

出处:http://blog.csdn.net/incyanggan

本文基于署名
2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: