`
incyanggan
  • 浏览: 32416 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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(包含链接).


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics