减少代码,实现代码复用;方便后期维护.
实现特定功能的一段独立代码块.
访问修饰符 扩展修饰符[static/abstract/final] 返回值类型 方法名
(数据类型1 参数1,数据类型2 参数2...){
方法体(代码块);
return 结果;
}
[public/protected/default/private],一般用public修饰符.
作用限制方法 使用权限.
方法执行完后想返回给调用者的结果的数据类型.
java中任何数据类型都可以作为方法的返回值类型.
如果方法执行完后不想返回任何结果给调用者void.
采用驼峰式命名法.
方法名后台小括号中内容就是参数.执行这个功能需要的材料.参数可以由0个到多个参数,参数之间用逗号隔开.方法声明时参数前面一定要带数据类型.
在方法中,将声明的参数当作已知的局部变量来用.
//eg:/**
*无参无返回值的方法
*/
public static void printline(){
System.out.println("---------");
}
//eg:/**
*有参无返回值的方法
*/
public static void showMyself(String name,int age){
System.out.println("大家好,我叫"+name+",年龄"+age);
}
//eg:/**
*无参有返回值的方法
*/
public static String sweepup(){
System.out.println("大家在大扫除");
return "地扫得很干净";
}
//eg:/**
*声明有参有返回值的方法,计算两数之和
*/
public static double sum1(double num1,double num2){
double sum=num1+num2;
return sum;
}
eg://无参无返回值的方法的调用
//printline();
//有参无返回值的方法的调用
//showMyself("张三",18);
//无参有返回值的方法的调用
String result2= sweepup();
System.out.println("大扫除的结果为:"+result2);
//有参有返回值方法的调用
//double result= sum1(1,1);
//System.out.println("两数之和为:"+result);
形参:方法声明时的参数叫形参.形参的参数前面一定要写数据类型.
实参:方法调用时的参数叫实参.实参传具体的值,实参前不可以写数据类型.
传参:把实参的数据传给形参.
注意: 对同一个方法来说,它的形参和实参的参数个数相同,类型要一致,参数顺序要匹配.
题目1:抽出一个方法打印一个5行直角三角形,打印的图形从键盘上接收.
题目2:抽出一个方法打印一个直角三角形,打印的图形和行数从键盘上接收.
eg:public class MethodTest2{
/**
*程序的入口方法
*/
public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
System.out.println("请输入你要打印的直角三角形的图形:");
String s=input.next();
System.out.println("请输入你要打印的行数:");
int row=input.nextInt();
//调用打印直角三角形的方法
printTriangle(s);
}
/**
*题目1:打印一个5行直角三角形,打印的图形从键盘上接收.
*/
public static void printTriangle(String sign){
System.out.println("-----------一个参数-----------");
//外层循环控制行数
for(int i=1;i<=5;i++){
//内层循环控制每个打印图形个数
for(int j=1;j<=i;j++){
System.out.print(sign);
}
System.out.println();
}
}
}
/**
*题目2:抽出一个方法打印一个直角三角形,打印的图形和行数从键盘上接收.
*/
public static void printTriangle(String sign,int row){
System.out.println("----------两个参数------------");
//外层循环控制行数
for(int i=1;i<=row;i++){
//内层循环控制每个打印图形个数
for(int j=1;j<=i;j++){
System.out.print(sign);
}
System.out.println();
}
}
解决在同一个类中,功能相同的方法的命名问题和调用问题.
程序根据重载方法的参数列表来判断调用哪个方法.
方法自身调用自身.
//eg:
public class DiGuiTest1{
/**
*程序的入口方法
*/
public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
System.out.println("请输入一个正整数:");
int count=input.nextInt();
if(count>=1){
int result2=factorial(count);
System.out.println(count+"的阶乘结果为:"+result2);
}else{
System.out.println("你的输入有误!");
}
}
/**
*计算一个数的阶乘,返回当前这个数的阶乘结果
*/
public static int factorial(int num){
int result=0;
if(num==1){
result=1;
}else{
//方法自身调用自身
result=num*factorial(num-1);
}
return result;
}
}
简单的问题能用递归解决的,也可以用循环结构解决;复杂问题能用递归解决的,不一定能用循环结构.
个人笔记,思路,仅供参考