什么是语句块
语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句。块确定了局部变量的作用域。块中的程序代码,作为一个整体,是要被一起执行的。块可以被嵌套在另一个块中,但是不能在两个嵌套的块内声明同名的变量。语句块可以使用外部的变量,而外部不能使用语句块中定义的变量,因为语句块中定义的变量作用域只限于语句块。
*a:局部代码块
* 在方法中出现;限定变量生命周期,及早释放,提高内存利用率
* b:构造代码块 (初始化块)
* 在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
* c:静态代码块
* 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。
* 一般用于加载驱动
所谓方法,就是把具有独立功能组织称为一个小模块,在需要的时候调用。
为什么要有方法?
在开发程序中。使用方法可以提高编写的效率以及代码的重用
方法的格式
*
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
方法体语句;
return 返回值;
}
* :方法的格式说明
* 修饰符:目前就用 public static。后续我学到了在记录
* 返回值类型:就是功能结果的数据类型。
* 方法名:符合命名规则即可。方便我们的调用。
* 参数:
* 实际参数:就是实际参与运算的。
* 形式参数;就是方法定义上的,用于接收实际参数的。
* 参数类型:就是参数的数据类型
* 参数名:就是变量名
* 方法体语句:就是完成功能的代码。
* return:结束方法的。后面的代码不在执行
* 返回值:就是功能的结果,谁调用方法,return就返回给谁。
要想写好一个方法,就必须确定好2 个东西:
- 返回值类型,也就是要的结果类型
- 参数列表:也就是需要几个参数,每个参数什么类型的
/*
* 需求:键盘输入2 给数求和
*/
import java.util.Scanner;
class demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数");
int i = sc.nextInt();// 获取数据
System.out.println("请输入第二个数");
int j = sc.nextInt();
System.out.println("2个数的和结果是" + sum(i, j)); // 调用方法 i,j 实参
}
public static int sum(int i, int j) { // 定义方法 int i 和int j 是形参
return i + j;
}
}
-------------------------------------------------
请输入第一个数
12
请输入第二个数
34
2个数的和结果是46
方法的注意事项
* A:方法调用(有具体返回值)
* a:单独调用,一般来说没有意义,所以不推荐。调用的时候需要去接收它(没有返回值类型的只支持单独调用)
* b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
* c:调用后,使用一个变量去接收它,推荐使用。返回什么类型就拿什么类型的变量去接收
* B:案例演示
- * a:方法不调用不执行
- * b:方法与方法是平级关系,不能嵌套定义
- * c:方法定义的时候参数之间用逗号隔开
- * d:方法调用的时候不用在传递数据类型
- * e:如果方法有明确的返回值,一定要有return带回一个值
方法的重载
一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。
注意:
重载的方法,实际是完全不同的方法,只是名称相同而已!
构成方法重载的条件:
- 形参类型、形参个数、形参顺序不同
- 只有返回值不同不构成方法的重载
不构成方法重载,只有形参的名称不同,不构成方法的重载