函数初了解

来源:互联网 发布:什么是淘宝直通车图片 编辑:程序博客网 时间:2024/06/03 22:41
一、函数(用来解决一类问题的代码的有序组合,是一个功能模块
1.格式:修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)
{
执行语句;
return 返回值;
}
2.修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用
3.返回值类型:方法运行后的结果的数据类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值
4.参数类型:是形式参数的数据类型。
5.形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
6.实际参数:传递给形式参数的具体数值,基本数据类型。
如果参数是基本数据类型就存放在栈内存中,如果是对象就存放在堆内存中。
7.return:用于结束函数。
* return和break以及continue的区别?
* return是结束方法
* break是跳出循环
* continue是终止本次循环继续下次循环
8.返回值:该函数运算的结果,该结果会返回给调用者
9.注意点:当函数没有返回值时,调用函数时不能使用变量去接收。
没有返回值的函数在函数末尾可以加上return,如果不加,虚拟机会自动加上(任何一个函数对于虚拟机来说都是有返回值的)。
10.函数是并级的,函数不能嵌套,不能放在类外面。
11.void 的返回值是空的,所以可以不用return
其他的在定义函数时都要return+函数名(放最后),在输出时需要用一个变量来接收,int 变量名 = 函数名()。
boolean 类型的在定义是默认为false, (boolean isEuqals = false;)
12.return 语句结束方法的运行、返回值
方法里只有值传递 没有引用传递
13.函数的特点:
*定义函数可以将功能代码进行封装
*便于对该功能进行复用
*函数只有被调用才会被执行
*函数的出现提高了代码的复用性
*对于函数没有返回值的情况,返回值类型用关键字void 修饰,那么该函数中return语句如果在最后一行可以省略不写
*函数中只能调用函数,不能在函数内部定义函数
*定义函数时,函数的结果应该返回给调用者,交给调用者处理。
14.两个明确:
*明确要定义的功能最后的结果是什么?
*明确在定义该功能的过程中,是否需要未知内容参与运算
15.设计函数的原则:方法的本意是功能块,
* a:方法不调用不执行
* b:方法与方法是平级关系,不能嵌套定义
* c:方法定义的时候参数之间用逗号隔开
* d:方法调用的时候不用在传递数据类型
* e:如果方法有明确的返回值,一定要有return带回一个值


二、函数的应用
1.无参无返回值
当需要调用方法执行某个操作时,可以先创建类的对象,然后通过  对象名.方法名();  来实现
2.无参带返回值
由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理。
只能有一个返回值,且类型必须兼容(如果返回值类型为int 则不能返回String类型)
3.带参无返回值
 调用带参方法时,必须保证实参的数量、类型、顺序与形参一一对应
调用方法时,实参不需要指定数据类型
 方法的参数可以是基本数据类型,如 int、double 等,也可以是引用数据类型,如 String、数组等
当方法参数有多个时,多个参数间以逗号分隔
4.带参带返回值
带参数方法的返回值可以为 void


三、函数的重载
1.概念:同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。
当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。
2.判断方法重载的依据:
a. 必须是在同一个类中
b.方法名相同
c.方法参数的个数、顺序或类型不同
d.与方法的修饰符或返回值没有关系
3.特点:与返回值类型无关,只看参数列表,没有返回值的函数不能重载
4.好处:方便于阅读,优化了程序设计。
Math.random() 生成 0--1 的浮点数。

四、Scanner(从键盘录入数据到控制台)
1.位置:java.until .Scanner (扫描控制录入数据)
2.参数:System.in
3.获取int 类型: s.nextInt()
4.导入:import java.util.Scanner;
创建Scanner对象:Scanner input=new Scanner(System.in);
输入信息:System.out.println("");
获取值:int score =input.nextInt();
5.获取字符串:s. nextLine()
6. 申明一个函数只能用一种类型的Scanner

五、Java中的内存分配以及栈和堆的区别
* A:栈(掌握)
* 存储局部变量 (用于存储函数里面的局部变量,当数据用完的时候,所占的空间会立即自动释放)
* B:堆(掌握)
* 存储new出来的数组或对象 (存储的是对象,数组等,等对象失去)
* C:方法区
* 面向对象部分讲解 (应用程序可以直接操作的)
* D:本地方法区
* 和系统相关
* E:寄存器
* 给CPU使用

原创粉丝点击