八、函数

函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。
函数的格式:
修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,...)
{
执行语句;
return返回值;
}

返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该函数运算后的结果,该结果会返回给调用者。

 



// 示例1
01. publicstaticintadd(inta,intb){
02. returna+b;
03. }



// 示例2
01. publicstaticvoidadd(inta,intb){
02. System.out.println(a+b);
03. }



看了上面的两个示例,在函数的应用方面可以得出以下两个明确:

两个明确:
明确要定义的功能最后的结果是什么?
明确在定义该功能的过程中,是否需要未知内容参与运算。
问题1:
需求:定义一个功能,完成两个整数的和的获取。
思路:既然定义功能,就可以用函数来体现。
通过两个明确来完成:
明确一:这个功能的结果是什么?是和。是功能的结果,所以该功能的返回值类型是int。其实,就是在明确
        函数的返回值类型。
明确二:这个功能实现过程中是否需要未知内容参与运算?有,加数和被加数。这就是函数的参数列表(参
             数的个数,参数的类型)。其实,就是在明确参数列表。

  •  函数的重载

重载的概念:
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
重载的好处:
方便于阅读,优化了程序设计。



01. class FunctionDemo{
02. public static void main(String[] args){
03. System.out.println(add(3,4));
04. System.out.println(add(3.0,4.0));
05. System.out.println(add(3,4,5));
06. }
07.
08. //加法运算,两个整数的和
09. public static int add(int a, int b){
10. return a + b;
11. }
12.
13. //加法运算,两个小数的和
14. public static double add(double a, double b){
15. return a + b;
16. }
17.
18. //加法运算,三个整数的和
19. public static int add(int a, int b,int c){
20. return add(a,b) + c;
21. }
22. }



P.S.
1、重载与返回值类型无关,只看参数列表。
2、java是严谨性语言,如果函数调用出现不确定性,会编译失败。

  • 九、数组

概念:
同一种类型数据的集合。其实,数组就是一个容器。
数组的好处:
可以自动给数组中的元素从0开始编号,方便操作这些元素



格式1:
元素类型[]数组名=new元素类型[元素个数或数组长度];
   int[]arr=newint[5];

格式2:需要一个容器,存储已知的具体数据。
元素类型[]数组名=new元素类型[]{元素,元素,……};
   int[]arr=newint[]{3,5,1,7};



  • 数组的内存分配及特点

int[]arr=newint[4];

  内存分配图:

java 函数返回值 反射 java函数返回值类型_java 函数返回值 反射

 

Java程序在运行时,需要在内存中分配空间。为了提高运算效率,又对空间进行了不同区域的划分,因为每
一片区域都有特定的处理数据方式和内存管理方式。

内存的划分:
1.寄存器。
2.本地方法区。
3.方法区。
4.栈内存。
5.堆内存。
栈内存:
用于存储局部变量,当变量所属的作用域一旦结束,所占空间会自动释放。
堆内存:
数组和对象,通过new建立的实例都存放在堆内存中。
每一个实体都有内存地址值。
实体中的变量都有默认初始化值,根据类型的不同而不同。整数类型是0,小数类型是0.0或0.0f,boolean类
型是false,char类型是'\u0000'。
如果将数组的引用实体设置为null,也就是实体不再被使用,那么会在不确定的时间内被垃圾回收器回收。

示例1:通过定义变量记录较大的值的方式实现。



01. class ArrayDemo{
02.     public static void main(String[] args) {
03.         int[] arr= {89,34,-270,17,3,100};
04.         int max = getMax(arr);
05.         System.out.println("max = " + max);
06.     }
07.
08.     public static int getMax(int[] arr){
09.         int maxElement = arr[0];
10.         for(int x = 1; x < arr.length; x++){
11.             if(arr[x] > maxElement)
12.             maxElement = arr[x];
13.         }
14.         return maxElement;
15.     }
16. }



 

结语:至此,java基础语法部分大部分应该都包含进来了。接下来,就是就要进入java核心的部分,面向对象!