Java基础知识Day05

Java基础知识Day05,第1张

Java基础知识Day05

1.方法函数)的概述及基本使用

1.1 方法,也可以成为函数。它表示一段可以独立运行的代码,具有独立功能。当程序调用时,通过方法(函数)名称进行调用。

1.2方法(函数)的书写

它写在类的大括号{}中,不能写在main方法里,要和main方法在关系上属并列关系,我们自己定义的函数(方法)和main方法没有先后次序。

1.3方法(函数)的作用

抽取相同的功能代码,进行封装,成为一个新的方法(函数),提高程序中代码的复用性。

tps:复用性:指功能代码只要书写一次,就可以重复的使用(调用)。

1.3方法(函数)的格式

函数的修饰符  函数的返回值类型  函数的名( 接收的参数类型  参数名 ,  接收的参数类型  参数名  ....){

        函数体代码;//具体完成相应功能的代码。

       return  返回值; //返回值的类型必须是之前定义函数时所声明的函数的返回值类型

}

注意:如果这个函数调用完之后,不需要给调用者返回任何数据,

           这时函数的返回值类型必须写void。

注意:如果需要返回值,则用return关键字。

原则:在书写代码的时候,每段代码如果是一个独立的功能,这时需要把这些代码单独的抽离到一个函数中,不要把所有代码全部书写在一个方法中。

1.4定义函数的原则:

  1. 遵守函数的定义格式。
  2. 定义函数的时候,一定要仔细去分析需求,确定函数要不要返回值。
  3. 定义函数的时候,确定当前这个函数要不要接收参数。
  4. 当定义函数的时候,数据并不是自己功能中产生的,而是需要调用者传递进来,然后根据传递的参数进行其他的 *** 作。这时一定要在参数列表中定义接收参数。

1.5重载:函数的重载,要求必须在同一个类(程序)中,有多个同名的函数,它们的参数列表不同,这时我们称为函数的重载。

注意:

  1. 要求必须在同一个类中(程序)。
  2. 要求函数的名称必须相同
  3. 要求函数的参数列表必须不同。

    参数列表不同,主要针对的参数的个数,类型,顺序不同。

结论:重载就是在一个类中具有相同名称的函数,但是这些相同函数的参数列表不能相同。

2类名,变量名,方法名的命名规范

类名:多个单词每个单词首字母大写。

变量名:多个单词,从第二个单词开始,首字母大写。

方法名:它的书写规则和变量名一致。getSum(  ) 这是一个求和的函数、printNumber(  ) 打印数字、printArray( ) 打印数组。

3方法的形式参数是基本类

思考,为什么打印的a和b不是 6 和 10 呢?

在main方法中调用了demo方法,而在调用的时候,是把main方法中的2个变量的值复制了一份传递给demo方法中的a和b变量,这时在demo方法中对a和b进行修改,仅仅只能修改demo方法中的a和b,而对main方法中的a和b无法进行 *** 作。 

4方法的形式参数是引用类型

引用的传递:当在main方法中把arr所指数组的引用地址值传递给demo方法,那么在demo方法中的arr和main方法中的arr同时指向堆中的同一个数组空间地址值,这时不管是在main方法中还是在demo方法中通过引用都可以去修改堆中的同一个数组。

总结:

值的传递(常量值传递或者就是基本数据类型传递)和引用的传递区别:

在程序中如果把具体的一个值传递给其他的方法,那么在方法中只能 *** 作传递过来的那个值。不影响实际参数的值。

在程序中如果把某个地址传递给了其他的方法,这是在其他方法中获取到的是地址,那么通过地址就可以找到真实存放数据的空间,这是通过地址去 *** 作同一个空间。影响空间的值。

*赘述   程序的执行在内存中的表现是:

当程序开始执行,先执行的方法(main)A先进入“栈内存”,A中定义的变量sum也在“栈内存”中存储,但是方法A中new(创建)出来的(arr)对象变量,是在“堆内存”中创建并开辟的存储空间,且“堆内存”的地址值0x456会被赋值给方法A中的对象变量。

当方法(getArraySum)简称B被调用,进入“栈内存”中,定义的变量sum也在“栈内存”中存储,传递进来的(arr)对象变量,所指向的是“堆内存”的地址值0x456是和A同一个。当B方法执行完成后出栈,方法A继续执行,执行完后出栈,程序结束。

“栈内存”的特点:先进入栈内存的方法后出栈,全局和局部变量在这里存储。

“堆内存”的特点:“栈内存”的方法中new(创建)出来的对象变量,实际是在“堆内存”创建和开辟内存空间,并使对象变量指向“堆内存”地址值。

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4998990.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存