本文内容:
- 什么是函数
- 函数的定义格式
- 函数的重载(overload):
- 函数的调用使用注意
- 关于形式参数的使用
首发时间:2017-06-23
修改时间:2018-03-21:修改了布局,修改了一些标题名称,小修改了一些文字描述
什么是函数
- 在java中函数是定义在类中的具有特定功能的一段代码【由于java是完全面向对象的,函数也可以认为是一个对象\类的行为】
- 函数也可以称为方法
函数的定义格式:
- 格式:
- 介绍:
- 修饰符:
- 访问权限修饰符 :
- public:函数是公共的,不同包的其他类也可以访问
- 友好权限:默认是不填,同一个包下的类能够访问,不同包的不能访问
- protect:保护的函数,自己以及子类可以访问,但其他类不能访问
- private:私有的函数,其他类不能访问
- 类型修饰:
- static:函数是静态的,当类初始化就生成,可以直接使用类来调用
- 访问权限修饰符 :
- 返回值类型:函数返回值的类型,是数据类型
- 函数名:函数的名称
- 参数类型 形式参数:形式参数用于传入指定参数来执行操作
- 返回值:函数可以返回一个值,比如a=函数名(),那么a可以赋值为函数的返回值
- 修饰符:
package function_usage; public class Demo { static void function2(int a) { System.out.println("function2,"+a); } void functio1() { System.out.println("function1"); } public static void main(String args[]) { function2(5); } } /** 修饰符 返回值类型 函数名 ([参数类型 形式参数1,参数类型 形式参数2......]){ 执行语句 [return 返回值] } public static void main(String args[]){ System.out.println("hello world"); System.out.println("hello world"); } */
函数的重载(overload):
- 可以有多个同名的函数,但参数个数或参数类型不同,称为函数重载。
- 重载方便了程序的设计,比如:要设计一个加法函数,名字都可以定义为add,但重载使add可以根据参数的不同来选择不同的重载函数,当形式参数为三个int时,会选择add(int a,int b,int c),而不是add(int a,int b)
package function_usage; class Calc{ int add(int a,int b) { return a+b; } int add(int a,int b ,int c) { return a+b+c; } double add(double a ,double b) { return a+b; } } public class Overload_usage { public static void main(String args[]) { Calc c=new Calc(); int a=c.add(1,2); int b=c.add(1, 2,3); double d=c.add(1.2,3.4); System.out.println(a);//3 System.out.println(b);//6 System.out.println(d);//4.6 } }
重载函数的格式:
- 1.同返回值类型,不同参数。
- int add(int x,int y)
- int add(int x,int y,int z)
- int add(double x,double y)
- 2.不同返回值类型,不同参数。
- int add(int x,int y)
- double add(int x,int y,int z)
- 总而言之--必须不同参数(个数或数据类型不同)。
- 注意:不同返回值类型,同参数。//不行,因为可能会引起调用的不确定性。
- 比如:
- int add(int x,int y)
- double add(int x,int y)
- 那么究竟是使用哪个呢,无法确定。
函数的调用使用注意:
1.实例函数既能对类变量操作也能对实例变量操作,而类函数(static)只能对类变量进行操作。
因为它们生命周期不同。 类方法类创建的时候就创建了,而实例变量只有实例对象创建时才创建。
2.实例函数可以调用该类中的其他函数包括类函数,类中的类函数只能调用该类的类函数。
关于形式参数的使用:
数据类型转换:
参数中,可以把小的类型的值传给大的类型作为参数
1.基本数据类型:对于基本数据类型的参数,向该参数传递的值类型级别不可以大于该参数的类型级别(不可以向int传递float,可以向double传递float)
2.引用类型:引用类型可以传递成它的父类或祖先类,比如Object是所有类的父类,所有类对象都可以使用Object类型的形式参数来接收
可变参数情况:
在最后一个形参的类型之后增加三点...,则表明该形参可以接受多个参数值,多个参数值被当成数组传入。
但个数可变的形参,只能处于形参列表的最后一项,所以一个方法中最多只能有一个长度可变的形参
如: