这几天学到函数重写的部分,联想到之前学到的函数重载,就拿过来进行了对比,顺便把之前学习的关于函数的知识坐下总结。
1.函数的定义:
函数是定义在类中的一段具有特定功能的独立的小程序,也称为方法。

2.声明函数的方法
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2……)
{
    执行语句;
    return 返回值;
    }
示例代码:

public int getSum(int x,int y)
{
	return x+y;
}

函数声明各个部分说明:

修饰符:目前学到的修饰符有private,方法只能在本类中被访问;public,可以从所有的类中访问到;protected,只能从本类和子类中访问;final,方法不能被子类覆盖;abstract,方法是抽象的,没有方法体,只能存在抽象类中;static,方法是静态方法,可以由类直接调用。

返回值类型:程序中代码执行后返回结果的数据类型,可以使基础数据类型,也可以是引用数据类型。要注意的是,当返回值类型是“void“的时候表明没有返回值。

函数名:自己定义,只要不和java保留字冲突就可以。尽量取有意义的函数名,如getMax,通过函数名就能确定函数的功能。

参数类型:是指形式参数的数据类型。

形式参数:是一个变量,用来存储电用函数时传入的具体参数。

return:用于返回程序运行的结果并结束方法,如果返回值类型为void,return可以省略不写。

返回值:作为方法的执行结果返回给调用者,类型必须与返回值类型一致。


3.函数的特点

a.对功能进行封装,隐藏内部细节。

b.提高了代码的复用性。

c.函数只有被调用才会运行。

d.函数中只能调用函数,而不能定义函数,也就是说函数之间是平级的关系。


4.函数定义过程中要注意的问题

在定义函数之前要明确2个问题:

一、函数返回结果的数据类型,以确定函数声明中返回值的类型。

二、明确在函数的运行过程中是否有未知的内容参与运算,以确定函数参数列表的内容(参数类型及参数个数)。


5.函数的重载和重写

函数的重载是指在同一个类中有两个或多个函数具有相同的函数的名,为了让这些函数都可以正常使用,必须确保这些同名函数的参数列表是不同的。 参数列表不同可以分为三种情况:参数个数相同,参数类型不同;参数个数不同,参数类型相同;参数个数不同,参数类型不同。并且函数是否重载与返回值类型是不关的。

重载示例:

public int compare(int a,int b){};
public int compare(short a ,double b){};
public boolean compare(int a,int b,int c){};

上面这三个函数在同一类中实现了重载,重载是实现类中多态的一种方式。


函数的重写:在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。

重写示例:

class A
{
	public void show()
	{
		int x;
		int y;
		int z=x+y;
	}
}
class B extends A
{
	public void show()
	{
		int x;
		int y;
		int z=x*y;
	}
}