【安卓学习笔记】JAVA基础Lesson4-函数重载与构造函数

1、函数重载

所谓的函数重载:在一个类当中,允许函数重名现象的出现。其具有下面三个特征:

1.两个或多个函数处于同一个类当中

2.函数的名相同

3.函数的参数列表不同

例如,文件Lesson4.java代码如下:

class Lesson4{
	void funA(){
		System.out.println("funA()");
	}
	
	void funA(int i){
		System.out.println("funA(int i)");
	}
	
	void funA(int i,double j){
		System.out.println("funA(int i,double j)");
	}
} 

文件Lesson4_2.java代码如下:

class Lesson4_2{
	public static void main(String args []){
		Lesson4 A = new Lesson4();     
		A.funA();
		A.funA(10);
		A.funA(1,2.0);
	}
}

测试结果如下:

D:\Android\src>javac Lesson4.java

D:\Android\src>javac Lesson4_2.java

D:\Android\src>java Lesson4_2

funA()
funA(int i)
funA(int i,double j)

D:\Android\src>


在使用的过程中根据传入的参数,就可以调用对应的函数。

2、构造函数的作用

例如 Lesson4_2 A = new Lesson4();

上述的new后面的 类名(); 就是所谓的构造函数,但是构造函数不是成员函数,它的基本特征如下:

1.构造函数没有返回值

2.构造函数的名称必须和类名相同

3.在编译器编译的时候后编译器会检查类里面是否有构造函数,如果没有的话,编译器会加上一个无参数内容为空的构造函数,有的话就不会添加。

如:

Lesson4(){
	
}

测试的时候修改Lesson4.java文件如下:

class Lesson4{
	
	Lesson4(){
		System.out.println("I am Lesson4()");
	}
	
	
	void funA(){
		System.out.println("funA()");
	}
	
	void funA(int i){
		System.out.println("funA(int i)");
	}
	
	void funA(int i,double j){
		System.out.println("funA(int i,double j)");
	}
}

修改Lesson4_2.java代码如下:

class Lesson4_2{
	public static void main(String args []){
		Lesson4 A = new Lesson4();
	}
}

编译后执行,结果如下:

D:\Android\src>javac Lesson4.java

D:\Android\src>javac Lesson4_2.java

D:\Android\src>java Lesson4_2
I am Lesson4()

D:\Android\src>

在这里先总结构造函数的两个用途:

1.作用一:使用new调用构造函数,可以生成一个对象这就说明了一点,构造函数的调用不同于成员函数,成员函数是通过类名来调用的,而构造函数是通过 new 类名();的方式来调用的,其结果就是生成一个类的对象。

2.作用二:自己编写构造函数,为成员变量赋初始值。

例如,修改Lesson4.java代码如下:

class Lesson4{
	String name;
	int age;
}

当Lesson4_2.java中需要生成很多个对象,或者类里面的成员变量较多的时候,对变量进行赋值就会相当的麻烦,如:

Lesson4 A = new Lesson4();
A.name = "A";
A.age = 1;

Lesson4 B = new Lesson4();
B.name = "B";
B.age = 2;

Lesson4 C = new Lesson4();
C.name = "C";
C.age = 3;

.....

修改Lesson4.java代码后如下:

class Lesson4{
	
	Lesson4(){
	}
	
	Lesson4(String n,int a){
		name = n;
		age = a;
	}
	String name;
	int age;
}

同样实现生成对象和赋值操作就可以很简单:

Lesson4 A = new Lesson4("A",1);
Lesson4 B = new Lesson4("B",2);
Lesson4 C = new Lesson4("C",3);
....


同时这里很容易发现,构造函数也是可以重载的。
By Urien 2017年8月25日 20:34:23

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值