Java 基础 方法
一、方法概念
方法: 就是一部分代码, 通过调用方法, 来执行代码
可以通过方法的定义以及方法的调用, 实现代码的重复使用
二、定义⽅法的格式详解
修饰符 返回值类型 ⽅法名(参数列表) { // 代码省略… return 结果; }
修饰符:public static 固定写法
返回值类型:表示⽅法运⾏的结果的数据类型,⽅法执⾏后将结果返回到调⽤者
方法名:起名随意但是要通俗易懂,首字母小写, 后面驼峰命名法
参数列表:⽅法在运算过程中的未知数据,调⽤者调⽤⽅法时传递
return:将⽅法执⾏后的结果带给调⽤者,⽅法执⾏到 return ,整体⽅法运⾏结束
return 结果; 这⾥的"结果"在开发中,我们正确的叫法成为⽅法的返回值
三.定义⽅法的两个明确
1.明确返回值类型
2.明确参数列表
四.调⽤⽅法的流程图解
例题*
计算1+2+3…+100的和
分析:定义⽅法实现功能,需要有两个明确,即 返回值 和 参数 。
明确返回值:1~100的求和,计算后必然还是整数,返回值类型是int
明确参数:需求中已知到计算的数据,没有未知的数据,不定义参数
public class Method_Demo4 {
public static void main(String[] args) {
// 调⽤⽅法getSum
// 并接收⽅法计算后的结果,整数
int sum = getSum();
System.out.println(sum);
}
/*
* 定义计算1~100的求和⽅法
* 返回值类型,计算结果整数int
* 参数:没有不确定数据
*/
public static int getSum() {
// 定义变量保存求和
int sum = 0;
// 从1开始循环,到100结束
for (int i = 1; i <= 100; i++) {
sum = sum + i;
}
return sum;
}
}
五. 定义⽅法的注意事项
(1).定义位置,类中方法外面
(2).返回类型,必须要和return 语句返回打的类型相同,否则编译失败
// 返回值类型要求是int
public static int getSum() {
return 5; // 正确,int类型
return 1.2; // 错误,类型不匹配
return true; // 错误,类型不匹配
}
不能reurn后面写代码,return意味着方法结束,所有后面的代码永远不会执行,属于无效代码
public static int getSum (int a,int b) {
return a + b;
System.out.println("Hello"); // 错误,return已经结束,这⾥不会执⾏,⽆效代
码}
六.调⽤⽅法的三种形式
1. 直接调用 直接写方法名调用
public static void main(String[] args) {
print();
}
public static void print() {
System.out.println("⽅法被调⽤");
}
注意:直接方法名调用 需要写成静态方法 关键字 static
2. 赋值调用 调用方法,在方法前面定义变量,接收方法返回值
public static void main(String[] args) {
int sum = getSum(5,6);
System.out.println(sum);
}
public static int getSum(int a,int b) {
return a + b; }
3. 输出语句调用
在输出语句中调⽤⽅法, System.out.println(⽅法名()) 。
public static void main(String[] args) {
System.out.println(getSum(5,6));
}
public static int getSum(int a,int b) {
return a + b; }
不能⽤输出语句调⽤ void 类型的⽅法。因为⽅法执⾏后没有结果,也就打印不出任何
内容。
public static void main(String[] args) {
System.out.println(printHello()); // 错误,不能输出语句调⽤void类型⽅
法}
public static void printHello() {
System.out.println("Hello");
}
七、方法重载
1.⽅法重载:指在同一个类中,允许存在一个以上的同名方法,只要他们的参数列表不同即可,与修饰符和返回值类型无关
2.参数列表:个数不同,数据类型不同,顺序不同
3.重载⽅法调⽤:JVM通过⽅法的参数列表,调⽤不同的⽅法。
4.方法能够在同一个类中或者在一个子类中被重载
例如:
public class Demo {
//一个普通得方法,不带参数,无返回值
public void add(){
//method body
}
//重载上面的方法,并且带了一个整形参数,无返回值
public void add(int a){
//method body
}
//重载上面的方法,并且带了两个整型参数,返回值为int型
public int add(int a,int b){
//method body
return 0;
}
}