1、在我们的日常生活中,方法可以理解为为了解决某一种问题而采取的一种方式手段。
2、java语言中方法,具有特定功能的代码段。
就是用来完成解决某件事情或者实现某个功能的方式。
3、在代码中,对于一些经常使用,或者某些代码可以解决一类的问题,将这段代码用大括号括起来,起个名字,以后使用这 个名字来代替这段代码,实现该代码所具有的功能。
4、好处:
提高了代码的复用性
提高了代码的封装性,大括号中的内容,其他调用者看不到也无法直接访问。
简化代码的设计思维难度
package com. ujiuye. demos;
public class Demo_5 {
public static void main ( String[ ] args) {
int a = 10 ;
int b = 20 ;
getSum ( a, b) ;
int c = 10 ;
int d = 20 ;
getSum ( c, d) ;
}
public static void getSum ( int a , int b) {
int sum = a + b;
System. out. println ( sum) ;
}
}
方法的定义
1、方法定义的格式
修饰符 返回值类型 方法名称(参数列表){
方法体语句;
return语句;
}
2、详细解释
(1)修饰符: 目前先全写为 public static
(2)返回值类型:方法具有一些功能,有可能会有一些数据的产出,将数据返回给调用者,调用者要知道生产出来的数据是什么类型。(return后返回的是什么类型的数据,返回值类型就写什么类型)
(3)方法名称:给这段代码起个名字,只要是一个合法的标识符即可。小驼峰命名法。eg:getName
(4)参数列表:这段代码要完成功能,可能会从外界接收一些数据。在参数列表中,需要定义一些变量,在调用方法的时候,会由外界传入具体的数值,赋值给定义的变量,就可以在方法体中去对外界的数据进行操作。
(5)方法体语句:真正要完成该方法功能的执行逻辑。
(6)return语句:最终生产出来的结果,要返回给调用者,使用return语句返回,如果没有生产任何的数据,就可以直接写个return;,用于表示方法的结束
package com. ujiuye. demos;
public class Demo_6 {
public static void main ( String[ ] args) {
}
public static void getSum ( ) {
int a = 10 ;
int b = 20 ;
System. out. println ( a + b) ;
return ;
}
public static int getSum1 ( int a , int b) {
int sum = a + b;
return sum;
}
}
方法的调用
1、格式:直接书写方法名称即可
方法名称(实际参数);
2、形式参数和实际参数
形式参数:方法小括号中只有变量的声明,没有变量的赋值
实际参数:在调用方法的时候,在方法的小括号中传入具体的数据,而不再是变量的声明。
3、方法的调用三种形式:
(1)直接调用:方法没有返回值,只是表示某些内容的执行,没有生产数据。
(2)输出调用:方法有返回值,需要打印,如果这个方法只需要打印不需要后续对数据的处理,就是用输出调用即可。
(3)赋值调用:方法的返回值,使用一个变量进行接收,后续可以对这个数据进行处理
4、方法不调用就不执行
package com. ujiuye. demos;
public class Demo_6 {
public static void main ( String[ ] args) {
getSum ( ) ;
System. out. println ( getSum1 ( 100 , 200 ) ) ;
int sum = getSum1 ( 90 , 80 ) ;
sum += 10 ;
System. out. println ( sum) ;
}
public static void getSum ( ) {
int a = 10 ;
到的数据
int b = 20 ;
System. out. println ( a + b) ;
}
public static int getSum1 ( int a , int b) {
int sum = a + b;
return sum;
}
}
方法的注意事项
1、方法的定义
(1)方法不能嵌套定义
(2)方法的先后是没有区别的
(3)方法的定义都是平级的关系
(4)方法是可以嵌套调用的,注意不要无节制的递归调用
2、参数列表
(1)形式参数:定义方法时使用,方法小括号中只有变量的声明,没有变量的赋值,如果要定义多个形式参数,使用逗号分隔。
(2)实际参数:在方法调用的时候使用,不能加上数据类型的参数,本质上是对形式参数的赋值,各个参数之间也使用逗号分隔,实际参数的顺序和形式参数的顺序要保持一致。
3、return语句
(1)语句表示方法产出的内容,或者是方法的结束
(2)如果方法没有具体的返回内容,可以写return;或者就不写return;语句,返回值类型必须为void
(3)如果方法有具体的返回内容,那么return后面就需要加上返回的那个数据。返回值类型必须和return后的语句的数据类型保持一致
package com. ujiuye. demos;
public class Demo_7 {
public static void main ( String[ ] args) {
test_1 ( ) ;
test_3 ( 100 , "java" , 12.12 ) ;
}
public static String test_3 ( int a, String str, double d) {
String s = a + str + d;
return s;
}
public static void test_1 ( ) {
test_2 ( ) ;
System. out. println ( "test_1" ) ;
}
public static void test_2 ( ) {
test_1 ( ) ;
System. out. println ( "test_2" ) ;
}
}
定义一个方法,可以打印指定行数和列数的星星矩阵
行数和列数是通过键盘录入的。键盘录入两个整数,作为行数和列数,调用方法打印对应的矩阵
package com. ujiuye. demos;
import java. util. Scanner;
public class Demo_8 {
public static void main ( String[ ] args) {
Scanner scanner = new Scanner ( System. in) ;
System. out. println ( "请输入行数" ) ;
int hang = scanner. nextInt ( ) ;
System. out. println ( "请输入列数" ) ;
int lie = scanner. nextInt ( ) ;
xingXing ( hang, lie) ;
}
public static void xingXing ( int hang , int lie) {
for ( int i = 1 ; i <= hang; i++ ) {
for ( int j = 1 ; j <= lie; j++ ) {
System. out. print ( "*" ) ;
}
System. out. println ( ) ;
}
}
}
方法的重载
1、重载:overload
2、方法的重载:
在同一个类中,方法名相同,参数列表不同,与返回值类型无关。
3、说明:
(1)在同一个类中,不同的类中,是不可能有方法的重载
(2)方法名相同:方法名称必须完全一模一样
(3)参数列表不同:体现在三个不同。1、参数类型不同2、参数的个数3、参数的顺序不同
跟参数的名称没有关系
(4)与返回值类型无关。方法时候重载,返回值是没有关系的。
如果方法的名称和参数列表都一样了,即使返回值类型不同,也不算重载。属于方法的重复定义。
4、方法重载的好处
没有重载,相同逻辑的代码,需要定义很多个名称,在记忆名称的时候,比较麻烦,有了重载,只需要记忆一个方法的名称
5、常见的方法的重载:
println方法就是方法的重载
package com. ujiuye. demos;
public class Demo_9 {
public static void main ( String[ ] args) {
int sum = getSum ( 12 , 13 ) ;
System. out. println ( sum) ;
double sum2 = getSum ( 12.23 , 13 ) ;
System. out. println ( sum2) ;
}
public static int getSum ( int a, int b) {
return a + b;
}
public static double getSum ( double d1, int d2) {
return d1 + d2;
}
public static double getSum ( int d1, double d2) {
return d1 + d2;
}
public static int getSum ( int a, int b, int c) {
return a + b + c;
}
public static double getSum ( double d1 , double d2) {
return d1 + d2;
}
}
三、数组