Java方法
简述:方法就是一段代码块,不调用就不执行。
定义:方法必须创建之后才能使用,这个过程称之为方法定义。
调用:方法定义好之后需要手动的去调用才可以执行,这个过程叫做方法调用。
方法定义的格式:
public static void 方法名(){
代码块...
}
方法和方法之间是平级关系,不能嵌套使用
众所周知,这个是主方法
public static void main(String[] args) {
代码块...
}
所以格式为
public static void main(String[] args) {
代码块...
}
public static void 方法名(){
代码块...
}
调用就更加的简单了
public static void main(String[] args) {
ico();
// 这里调用方法,输出结果:方法的输出
}
public static void ico(){
System.err.println("方法的输出");
}
方法中使用方法。
public static void main(String[] args) {
ico();
// 这里调用方法,输出结果:
// student方法的输出
// ico方法的输出,
}
public static void ico(){
student();
System.err.println("ico方法的输出");
}
public static void student(){
System.err.println("student方法的输出");
}
带参数的方法的定义和调用
格式
public static void 方法名(类型 参数名){
代码块...
}
public static void 方法名(类型 参数名,类型 参数名...){
代码块...
}
需要注意的是,只要这个方法定义的时候带有参数,那么调用的时候就必须要有参数传进来,不然就会报错。
public static void main(String[] args) {
ico(); // 会出错
ico(10); // 这里调用方法,输出结果:10
}
public static void ico(int num){
System.err.println(num);
}
- 形参:全程形式的参数,是指方法定义的参数。
- 实参:全程实际参数,方法调用中的参数。
带返回值的方法的定义和调用
我们经常会根据一个方法产出的结果,去组织另外一段代码逻辑,为了这个方法产出的结果,就需要定义带有返回值的方法。
格式
public static 数据类型 方法名(类型 参数名){
return 数据;
}
// 例:
public static int Num(int b){
int a = b + 1;
return a;
}
注意点:方法定义时return后面的返回值与方法定义上的数据类型要相匹配,否则程序将会报错。
例:这里将两个数值传进方法,计算结果
public static void main(String[] args) {
// 声名一个变量来接收结果
int num = ico(12,23);
System.out.println(num);
// 或者直接输出
System.out.println(ico(10, 23));
}
public static int ico(int num, int num1){
// 返回的类型要和方法上的l
return num + num1;
}
方法的返回值一般都会用一个变量来接收,否则毫无意义。
方法的注意事项
- 方法不能嵌套使用。
- 方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句,如果要编写return语句,那么return后面不能编写具体的数值。例:return 100.这样是错误的写法。
- 在同一个作用域里,return语句下面,不可以再次编写代码,因为执行不到,所以是属于无效的代码。
- return:可以用于结束方法,也就是将方法从栈内存中弹出去,这个过程称之为方法的弹栈。
方法的重载
- 在同一个类中,定义了多个同名的方法,但每个方法都具有不同的参数类型或者参数个数。就构成了重载的关系。
- 简单的说法:同一个方法,参数不同的方法。
- 参数不同:数量不同,类型不同,顺序不同。
例:
public static void ico(){
方法体...
}
public static void ico(int num){
方法体...
}
// 数量不同
public static void ico(int num,int num1){
方法体...
}
// 类型不同
public static void ico(Boolean bool){
方法体...
}
// 顺序不同(后面两个作比较)
public static void ico(int num,Boolean bool){
方法体...
}
public static void ico(Boolean bool,int num){
方法体...
}
以上所有的方法都已经构成了重载。
是否构成饿了重载关系,只看参数的数量、类型和顺序,和返回值没有任何关系。
方法的参数传递
- 方法传递为基本数据类型,传入方法中的是在具体的数值。
- 方法传递为引用数据类型,传入方法中的是内存地址。