方法
1:概念:存在独立的功能的代码块
2:格式:
权限修饰符 返回值类型 方法名(数据类型1 参数名1,数据类型2 参数名2….){
return 结果;
}
注:小括号里面:形式参数列表
解释:
权限修饰符:public + static(静态修饰) :暂时先这样写权限修饰符
返回类型:最终计算的结果是什么样的数据类型: (结果是什么数据类型,就用该类型去接收结果)
方法名:就是给这个功能的代码块起名字:命名规则:一个单词字母全小写;多个单词:第一个单词小写,第二个单词开始首字母大写
形式参数列表:形式参数的数据类型(四类八种) 形式参数名(变量名)
return:在方法中出线,表示带回一个结果
如何调用:针对有返回值类型的方法的调用:
* 1)单独调用,没有任何意义,没有输出
* 2)输出调用,虽然可以得到一个结果,但是不够好,不能对结果进行下一步操作!
* 3)赋值调用,可以对结果下一步操作!(又返回值类型的方法调用)
代码:求两个数据之和;
public class FunctionDemo {
public static void main(String[] args){
//定义两个变量
int a = 10 ; // 实际参数
int b = 20 ;
//写一个功能:求和的功能
//如何调用
// 1)单独调用
// sum(a, b) ;
// 2)输出调用
// System.out.println(sum(a, b));
//Sop(30) ;
//3)赋值调用
int result = sum(a, b) ;
System.out.println("result:"+result);
}
public static int sum(int a,int b){
//返回一个结果
// int c = a + b ;
// return c ;
//优化:c是代表a+b
//直接返回
return a + b ;
}
}
3:方法重载(Overload):在同一个类中,出现相同的方法名,参数列表不同,它与返回值没有关系
参数列表不同:
1)参数个数不同
2)参数的数据类型不同
public class FunctionDemo4 {
public static void main(String[] args) {
//jvm根据不同的方法区调用不同的参数
//输出调用
System.out.println(sum(30,40));
System.out.println(sum(30,40,50));
System.out.println(sum(30,40,50,60));
System.out.println(sum(12.34F,3.14F));
}
//求两个数据之和的方法
public static int sum(int a,int b){
return a + b;
}
public static int sum(int a,int b,int c){
return a+b+c;
}
public static int sum(int a,int b, int c, int d){
return a+ b+ c+d ;
}
public static float sum(float a,float b){
return a + b ;
}
}
键盘录入两个数据,求两个数据是否相等.(写一个功能)
public class FunctionTest2 {
public static void main(String[] args){
//1)创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//2)录入并接收数据
System.out.println("请输入第一个数据:");
int firstNumber = sc.nextInt();
System.out.println("请输入第二个数据:");
int secondNumber = sc.nextInt() ;
//调用比较的方法
boolean flag = compare(firstNumber,secondNumber) ;
System.out.println("flag:" +flag);
}
public static boolean compare(int a,int b){
return a==b ;
}
键盘录入一个数据n(1<=n<=9),输出对应的nn乘法表
public class FunctionTest5 {
public static void main(String[] args) {
//1)创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//2)录入并接收数据
System.out.println("请您输入n的值(1~9):");
int n = sc.nextInt() ;
//调用方法
printNN(n) ;
}
public static void printNN(int n){
//nn乘法表
for(int x = 1 ;x <= n ; x ++){
for(int y = 1 ; y<=x ;y++){
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
}