黑马程序员——java语言基本组成3
来源:互联网 发布:pe砧板 知乎 编辑:程序博客网 时间:2024/06/03 17:36
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
< 今日心情 >今天太阳比我起得早o(╯□╰)o
一、 函数
1.函数的定义
函数就是定义在类中的具有特定功能的一段独立小程序。
函数也称为方法。
函数的格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2)
{执行语句;return 返回值;}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。其实,函数就是将一部分代码摘取出来放到一处特殊的空间中,只有被调用的时候才会运行。当调用者需要这部分代码处理一些它不知道的数据时,就需要传值给它,此时它就需要有被传值的功能(就好比聋子会说话却无法回答别人的问题一样)当调用者需要知道这部分代码最后处理的结果时,就需要它返回(return)一个结果,所以函数需要一个返回值类型。(void代表不需要返回)那么如何定义一个函数呢?
1,既然函数是一个独立的功能,那么该功能的运算结果是什么先明确
因为这是在明确函数的返回值类型。
2,在明确在定义该功能的过程中是否需要未知的内容参与运算。
因为是在明确函数的参数列表(参数的类型和参数的个数)。
示例代码:将判断一个整数是否能被2整除的代码封装当一个函数中后,只要遇到这种判断,调用这个函数就可以了,不需要使用者会计算,可以直接拿来使用
2.函数的特点:
定义函数可以将功能代码进行封装;函数只有被调用才会被执行;函数的出现提高了代码的复用性;对于函数没有具体返回值的情况,返回值类型用关键 字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
3.函数的重载
将判断一个整数能否被2整除进行封装后,我们发现当我们判断的数字是比int更大的long型数据时,jvm会报错。
这个时候,不需要再重新定义一个函数,我们可以这么做:
这个就是函数的重载。
函数重载的概念:
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。重载的特点:
与返回值类型无关,只看参数列表。重载的好处:
方便于阅读,优化了程序设计。
二、数组
1.数组的定义
概念:同一种类型数据的集合。其实数组就是一个容器。
数组也可以看成可以存储许多小盒子的大盒子。数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
数组中每一个元素都有对应的下角标。格式:
1.元素类型[] 数组名= new 元素类型[元素个数或数组长度];
2.元素类型[] 数组名= new 元素类型[]{元素,元素,……};示例:int[] arr = new int[5];
int[] arr = new int[]{3,5,1,7};int[] arr = {3,5,1,7};
2.数组内存中的结构
Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。数组在内存中的结构如图:栈内存:
堆内存:用于存储局部变量,当数据使用完,所占空间会自动释放。
方法区,本地方法区,寄存器数组和对象,通过new建立的实例都存放在堆内存中;每一个实体都有内存地址值;实体中的变量都有默认初始化值;
实体不在被使用,会在不确定的时间内被垃圾回收器回收。
数组做形参和整形变量做形参的区别:chang是两个整数交换的重载函数。通过比较结果发现,int型变量做形参时,虽然两个数做了交换动作,但是结果没有发生变化。数组做形参时即发生了交换动作,也改变了结果。这是因为,change(int x,int y)中的x,y是在栈内存中开辟了新空间,main中的x,y的数据复制给了新空间供给change函数操作,无论操作结果如何,main中的x,y都不受影响。而change(int[] n,int i,int j)中,n也是在栈中开辟的新空间,但是调用方法时,是把main中n的地址给了新空间的n,change根据地址操作了堆内存中具体的数据。
3.数组的应用
3.多维数组
多维数组其实就是在数组中存储新数组的地址。格式:
1:int[][] arr = new int[3][2];2:int[][] arr = new int[3][];
arr[0]=new int[3];
arr[1]=new int[1];
arr[2]=new int[2];
赋值:
arr[0][0]=1;
注:给数组赋值脚标必须小于其所在维的长度。如arr是int[3][2]数组,则第一个脚标必须小于3大于等于0,第二个脚标必须小于2大于等于0。
0 0
- 黑马程序员——java语言基本组成3
- 黑马程序员——java语言基本组成1
- 黑马程序员——java语言基本组成2
- 黑马程序员--Java语言的基本组成
- 黑马程序员--java语言基本组成
- 黑马程序员-Java语言的基本组成
- 黑马程序员---Java基础---java语言基本组成
- 黑马程序员---Java基础---java语言基本组成:语句
- 黑马程序员——Java基础---基本组成
- 黑马程序员—Java入门及Java语言基础组成
- 黑马程序员_03. java语言的基本组成
- 黑马程序员——java语言基础组成
- 黑马程序员——Java语言基础组成(一)
- 黑马程序员——Java语言的基础组成
- 黑马程序员——JAVA基础之语言组成
- 黑马程序员——Java语言基础组成
- 黑马程序员——Java语言基础组成(一)
- 黑马程序员——java语言基础组成(一)
- 分布式通信的几种方式(EJB、RMI、RPC、JMS、web service杂谈)
- 通过包名启动一个activity
- 如何解决FPS/RTS/赛车类游戏的同步问题
- Zookeeper3.4.6安装配置文档
- 设计模式-状态模式State-电梯状态
- 黑马程序员——java语言基本组成3
- Java Selenium起步
- Visio 2007 画大括号
- 第11题
- He Blackhawks (48-25-6) had already jersey
- 从服务端加载图片(Volley框架+Gson框架+PullToRefresh框架)
- Java中静态成员变量
- 模版方法设计模式
- jsp taglib