1.方法概述和格式说明
- A:为什么要有方法:提高代码的复用性
- B:什么是方法:完成特定功能的代码块。
-
C:方法的格式
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方法体语句; return 返回值; }
-
D:方法的格式说明
- 修饰符:目前就用 public(权限修饰符) static(状态修饰符)。后面我们再详细的讲解其他的修饰符。
- 返回值类型:就是功能(方法)结果的数据类型。void(没有返回值类型),返回值决定返回值类型;
- 方法名:符合命名规则即可。方便我们的调用。main(主要的)
-
参数:
* 形式参数;就是方法定义的,用于接收实际参数的。 (a,b) * 实际参数:就是实际参与运算的。(10,20)
- 参数类型:就是参数的数据类型(基本数据类型:四类八种)
- 参数名:就是变量名(合法的标识符)
- 方法体语句:就是完成功能的代码。(System.out.println("Method");)
- return:结束方法的。
- 返回值:就是功能的结果,由return带给调用者:返回值是什么类型,返回值类型就是该类型。 void可省略。
public class JavaMethod {
public static void main(String args []){
System.out.println("Method");
}
}
2.方法之求和案例及其调用(方法的注意事项)
- A:写一个方法:1,明确返回值类型2,明确参数列表
- B:案例:求两个数据之和的案例
- C:方法调用图解
- 一个类如果有主方法,我们称之为测试类
-
D:方法调用(有具体返回值)
- a:单独调用,一般来说没有意义,所以不推荐。
- b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
- c:赋值调用,推荐方案。
-
E:案例演示
- a:方法不调用不执行
- b:方法与方法是平级关系,不能嵌套定义
- c:方法定义的时候参数之间用逗号隔开
- d:方法调用的时候不用在传递数据类型
- e:如果方法有明确的返回值,一定要由return带回一个值
public class JavaMethod {
public static void main(String args []){
int sum = add(10,20); //第一步:赋值调用,调用了add方法,并传入了实际参数10,20分别传给形式参数,将sum赋值给s
System.out.println("sum = " + sum); //第五步:上下两个方法中的sum非同一个sum,不能互相访问
//add(30,40); //单独调用,一般来说没有意义,所以不推荐。
//System.out.println(add(30,40)); //输出调用,一般不推荐
int sum2 = add(30,40);
System.out.println("sum2 = " + sum2);
}
//返回值类型int;明确参数列表int a,int b
public static int add(int a,int b) { //第二步:将10和20,分别传给a,b
//int sum = a + b; //第三步:执行语句:将a和b相加后的结果,赋值给sum
//return sum; //第四步:由return将sum返回给调用者
return a + b;
}
}
3.方法的练习
-
A:案例演示
- 需求:键盘录入两个数据,返回两个数中的较大值
import java.util.Scanner;
public class JavaMethod {
public static void main(String args []){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数");
int x = sc.nextInt();
System.out.println("请输入第二个整数");
int y = sc.nextInt();
int max = getMax(x,y);
System.out.println("max = " + max);
}
//返回值类型int;参数列表int a,int b
public static int getMax(int a,int b) {
int max = (a > b)? a : b;
return max;
//return a > b ? a : b;
}
}
-
B:案例演示
-
需求:键盘录入两个数据,比较两个数是否相等
import java.util.Scanner;
public class JavaMethod {public static void main(String args []){ Scanner sc = new Scanner(System.in); System.out.println("请输入第一个整数"); int x = sc.nextInt(); System.out.println("请输入第二个整数"); int y = sc.nextInt(); boolean b = isEquals(x,y); System.out.println(b); } //返回值类型boolean;参数列表int a,int b public static boolean isEquals(int a,int b) { //isEquals是否相等 return a == b; }
}
-
4.方法之输出矩形星形及其调用
-
A:案例演示
- 需求:根据键盘录入的行数和列数,在控制台输出矩形星形
-
B:方法调用:(无具体返回值类型的,用void来接收)
- 单独调用
- 输出调用(错误)
- 赋值调用(错误)
- ~注意:如果返回值类型是void,return可以省略,即使省略,系统也会默认给加上,形式是: return;
import java.util.Scanner;
class MethodDemo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数:");
int row = sc.nextInt();
System.out.println("请输入列数:");
int column = sc.nextInt();
printStar(row,column); //返回值类型是void的方法,要单独调用
//void v = printStar(row,column); //赋值调用不可以
//System.out.println(printStar(row,column)); //输出调用也是不可以的void
}
/*
在控制台输出打印矩形星型
1.明确返回值类型(因为是在控制台打印输出,经分析没有具体的返回值类型) void
2.明确参数列表 int a,int b
*/
public static void printStar(int a,int b) {
for (int i = 1;i <=a ; i++ ) { //外循环控制行数
for (int j = 1;j <= b ;j ++ ) { //内循环控制列数
System.out.print("*");
}
System.out.println();
}
return;
}
}
5.方法的练习
-
A:案例演示
- 需求:根据键盘录入的数据输出对应的乘法表
import java.util.Scanner;
class MethodDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数,范围在1-9");
int num = sc.nextInt();
/*
1.明确返回值类型 void
2.参数列表 int a
*/
print99(num);
public static void print99(int a) {
for (int i = 1;i <= a ; i ++ ) {
for (int j = 1; j <= i ; j ++ ) {
System.out.print(j + "*" + i + "=" + j * i + "\t");
}
System.out.println();
}
}
}
6.方法重载概述和基本使用
A:方法重载概述
* 求和案例
* 2个整数
* 3个整数
* 4个整数
B:方法重载:
* 在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
* 参数列表不同:
* A:参数个数不同
* B:参数类型不同
* C:参数的顺序不同(算重载,但是在开发中不用)
class OverLoad{
public static void main(String[] args) {
int sum1 = add(10,20);
System.out.println(sum1);
int sum2 = add(10,20,30);
System.out.println(sum2);
double sum3 = add(11.2,15.2,18.5);
System.out.println(sum3);
}
/*
求两个整数的和
1.返回值类型 int
2.参数列表 int a,int b
*/
public static int add(int a,int b) {
return a + b;
}
/*
求两个整数的和
1.返回值类型 int
2.参数列表 int a,int b,int c
*/
public static int add(int a,int b,int c) {
return a + b + c;
}
/*
求两个小数的和
1.返回值类型 double
2.参数列表 double a,double b,double c
*/
public static double add(double a,double b,double c) {
return a + b + c;
}
}
7.方法重载练习比较数据是否相等
A:案例演示
* 需求:比较两个数据是否相等。
* 参数类型分别为两个int类型,两个double类型,并在main方法中进行测试
class OverLoad4{
public static void main(String[] args) {
boolean b1 = isEquals(10,10);
System.out.println(b1);
}
/*
求两个整数的和
1.返回值类型 boolean
2.参数列表 int a,int b
*/
public static boolean isEquals(int a,int b) {
return a == b;
}
/*
求两个整数的和
1.返回值类型 boolean
2.参数列表 double a,double b
*/
public static boolean isEquals(double a,double b) {
return a == b;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。