方法
什么是方法
- 方法是一段可以被重复利用的代码片段
- 一个方法一般都是一个独立的功能
- 在C语言中叫做函数(Function)
演示代码
package chapter2;
/*
方法本质上就是一段可以被重复利用的代码片段
*/
public class method01 {
public static void main(String[] args) {
//调用sum方法,完成求和功能
sum(100,200);
}
//单独定义一个方法。这个方法完成一个具体的功能,求和功能
public static void sum(int a, int b){
int c = a + b;
System.out.println(a + "+" +b + "=" + c);
}
}
方法的定义
语法格式
[修饰符列表] 返回值类型 方法名(形式参数列表){
方法体;
}
修饰符列表
访问修饰符(Access Modifiers):
- public:可以被任何类访问。
- protected:可以被同一包内的类和子类访问。
- private:只能被同一类内部访问。
非访问修饰符(Non-access Modifiers):
- final:表示最终的、不可更改的。
- static:表示静态的,属于类而不是实例。
- abstract:表示抽象的,只能被用作父类。
- synchronized:表示同步的,用于多线程同步。
- volatile:表示易变的,用于多线程共享变量。
- transient:表示瞬态的,用于不需要持久化的字段。
- native:表示本地的,与本地机器相关的方法。
- strictfp:表示精确浮点的,用于浮点运算的一致性。
返回值类型
切记 : 不能空着不写
基本类型(Primitive Types):
void:如果方法执行结束的时候没有返回任何数据给调用者,返回值的类型写void
boolean:表示返回一个布尔值,true或false。
byte:表示返回一个8位有符号整数。
short:表示返回一个16位有符号整数。
int:表示返回一个32位有符号整数。
long:表示返回一个64位有符号整数。
float:表示返回一个32位浮点数。
double:表示返回一个64位浮点数。
char:表示返回一个16位Unicode字符。
引用类型(Reference Types):
任何类、接口、数组类型:例如String、List、int[]等。
当返回值类型不是void时,方法在结束的时候必须使用return 值;
语句来完成数据的返回
package chapter2;
public class method02 {
public static void main(String[] args) {
}
//方法报错
//因为返回值类型是int ,那么结束时必须要返回一个整数,到那时没有写return返回语句来完成数据的返回
/*
public static int sum (int a, int b){
}
*/
//解决错误,添加了返回语句
public static int sum(int a, int b){
return 0;
}
public static boolean m1(){
//不兼容的类型:int无法转为boolean
//return 1;
//修改
return true;
}
}
return语句有两种写法
- return 值;
- return;
不管那种return,只要return语句执行,方法必然结束
当返回值类型是void时
不能编写“return 值 ;”
可以编写 “ return;” 主要用来终止方法的执行
也可以不编写,看具体的业务
方法的调用
当调用一个返回值类型不是void方法时,方法结束的时候会返回值,这个值可以采用变量接收,注意变量的类型
变量的类型一定要和返回值类型一致,或者能够自动类型转换,或者强制类型转换
方法执行结束有返回值,但是对于调用者来说,可以选择接收也可以选择不接受
package chapter2;
public class method02 {
public static void main(String[] args) {
int res = sum(1,2);
System.out.println(res);String content = concat("hello" , "jack"); System.out.println(content); } //方法报错 //因为返回值类型是int ,那么结束时必须要返回一个整数,到那时没有写return返回语句来完成数据的返回 /* public static int sum (int a, int b){ } */ //解决错误,添加了返回语句 public static int sum(int a, int b){ return a + b; } public static boolean m1(){ //不兼容的类型:int无法转为boolean //return 1; //修改 return true; } public static String concat(String x, String y){ String z = x + y; return z; } }