java方法
方法概述和格式说明
为什么要有方法:
为了解决代码重复编写的问题,可以将代码提取到一个{}中,并为这段代码起个名字。所提取出来的代码可以看做是程序中定义的一个方法。
什么是方法:
方法就是完成特定功能的代码块。
在很多语言中都有函数的定义,但是在java语言中,我们将其称之为方法。
方法的格式:
修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数2.....){
方法体;
return 返回值
}
方法的格式详细说明:
1.修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
2.返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操 作,但没有返回值。在这种情况下,returnValueType 是关键字void。
3.方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
4.参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指 方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
5.参数名:是一个变量,接收调用方法时传入的参数这个参数其实有一个专业的名词,被称之为形式参数,它的作 用是用来接收实际参数的.
6.方法体:方法体包含具体的语句,定义该方法的功能。
7.return:结束方法以及返回方法指定类型的值。
8.返回值:功能的结果,由return带回,带回给调用者。
如何写一个方法
两个明确
1.返回值类型 明确功能结果的数据类型
2.参数列表 你要传递几个参数,以及每一个参数的数据类型
方法调用(有明确返回值的调用)
1.单独调用,一般来说没有意义,所以不推荐。
2.赋值调用,推荐方案。
3.输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
方法的注意事项
1.方法不调用不执行。
2.方法与方法是平级关系,不能嵌套定义。
3.方法定义时,参数之间用逗号隔开。
4.方法调用的时候不用在传递数据类型。
5.如果方法有明确的返回值,一定要由return带回一个值。
主方法理解:
main方法是被 JVM 调用的,除此之外,main 方法和其它方法没什么区别。
main 方法的头部是不变的,带修饰符 public 和 static,返回 void 类型值,方法名字是 main,此外带个一 个 String[] 类型参数。String[] 表明参数是字符串数组。
方法的重载
上面使用的max方法仅仅适用于int型数据。但如果你想得到两个浮点类型数据的最大值呢?
解决方法是创建另一个有相同名字但参数不同的方法,如下面代码所示:
public static double max(double num1, double num2) {
if (num1 > num2)
return num1;
else
return num2;
}
如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用;
如果传递的是double型参数,则double类型的max方法体会被调用,这叫做方法重载;
就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。
Java编译器根据方法签名判断哪个方法应该被调用。
方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。
重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法
案例及其调用
需求:
判断输入的两个数是否相等
代码:
package morning;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import jdk.nashorn.internal.ir.WhileNode;
import java.util.Scanner;
public class Dome2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入第一个数:");
double i = sc.nextDouble();
System.out.print("请输入第二个数:");
double j = sc.nextDouble();
boolean b = ps(i, j);
System.out.println(b);
}
public static boolean ps(double a ,double b) {
boolean f=a==b?true:false;
return f;
}
}
需求:打印出需要的规格的乘法表
代码:
package morning;
import java.util.Scanner;
public class Dome21 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您想要的乘法表规格:");
int i = sc.nextInt();
Cfb(i);
}
public static void Cfb (int i) {
for (int a = 1; a <= i; a++) {
for (int b = 1; b <= a; b++) {
System.out.print(b + "*" + a + "=" + a * b + "\t");
}
System.out.print("\n");
}
}
}
需求:打印出指定高宽的'*'图形;
代码:
package morning;
import java.util.Scanner;
public class Dome22 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要的XX规格行高");
int i = sc.nextInt();
System.out.println("请输入你要的XX规格列数");
int j = sc.nextInt();
XX(i ,j);
}
public static void XX(int i ,int j) {
for (int a = 1; a <= i; a++) {
for (int b = 1; b <= j; b++) {
System.out.print("*");
}
System.out.print("\n");
}
}
}