方法
作用:可以达到抽取的效果,使代码更加清晰
格式:
public static void 方法名称{
方法体
}
方法名称的命名规则和变量一样,使用小驼峰
利用方法改进下面的代码
public class A{
public static void main(String[] args)
{
//农民伯伯
System.out.println("播种");
System.out.println("浇水");
System.out.println("施肥");
System.out.println("除虫");
System.out.println("收割");
System.out.println("卖给小商贩");
//小商贩
System.out.println("运输到农贸市场");
System.out.println("抬高价格");
System.out.println("吆喝");
System.out.println("卖给厨子");
//厨子
System.out.println("洗菜");
System.out.println("切菜");
System.out.println("炒菜");
System.out.println("装盘");
//我
System.out.println("吃");
}
}
改进以后
-
方法的定义不能嵌套
例如me的方法不能放进farmer里面 -
调用方法
方法名称();
public static void me()
{
//我
System.out.println("吃");
}
public class A{
public static void farmer(){
//农民伯伯
System.out.println("播种");
System.out.println("浇水");
System.out.println("施肥");
System.out.println("除虫");
System.out.println("收割");
System.out.println("卖给小商贩");
}
public static void seller()
{
//小商贩
System.out.println("运输到农贸市场");
System.out.println("抬高价格");
System.out.println("吆喝");
System.out.println("卖给厨子");
}
public static void cook()
{
//厨子
System.out.println("洗菜");
System.out.println("切菜");
System.out.println("炒菜");
System.out.println("装盘");
}
public static void me()
{
//我
System.out.println("吃");
}
public static void main(String[] args)
{
//注意调用方法的先后顺序就好
//调用农民的方法
farmer();
//调用商贩的方法
seller();
//调用cook的方法
cook();
//调用我自己的方法
me();
}
}
重载
根据实际的情况,对原来的方法进行重载。即方法的名称一样,但是参数列表不一样,即名称统一
注意
- 参数个数不同
- 参数类型不同
- 与返回值类型无关
相加
public class a{
public staic int sumTwo(int a,int b)
{
return a+b;
}
public staic int sumThree(int a,int b,int c)
{
return a+b+c;
}
public staic int sumFour(int a,int b,int c,int d)
{
return a+b+c+d;
}
public static void main(String[] args)
{
System.out.println(sumTwo(10,20));
System.out.println(sumThree(10,20,30));
System.out.println(sumFour(10,20,30,40));
}
}
利用方法重载改进
public class a{
//两个参数
public staic int sum(int a,int b)
{
return a+b;
}
##报错,与返回值类型无关,同参数类型,同方法名称,和上面的重复了
public staic double sum(int a,int b)
{
return a+b+0.0;
}
//两个参数 参数类型不同
public staic int sum(double a,double b)
{
//强制类型转换
return (int)(a+b);
}
//三个参数
public staic int sum(int a,int b,int c)
{
return a+b+c;
}
//四个参数
public staic int sum(int a,int b,int c,int d)
{
return a+b+c+d;
}
public static void main(String[] args)
{
System.out.println(sum(10,20));
System.out.println(sum(10,20,30));
System.out.println(sum(10,20,30,40));
System.out.println(sum(10,20,30,40,50));//报错
}
}
复习
利用*打印矩形
public class a{
public static void main(String[] args)
{
for(int i=0;i<5;i++)
{
for(int j=0;j<20;j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
利用方法改进
public class a{
public static void printMethod()
{
for(int i=0;i<5;i++)
{
for(int j=0;j<20;j++)
{
System.out.print("*");
}
System.out.println();
}
}
public static void main(String[] args)
{
printMethod();
}
}
方法就是若干语句的功能集合
方法可以看做是一个工厂
如蒙牛工厂 原料:奶牛、材料、水
产出物:奶制品
钢铁工厂 原料:铁矿石,煤炭
产出物:钢铁建材
可以把,方法里的参数看成是原料,返回值看成是产出物,其中中间的内容就是进行工厂加工
方法的完整定义
修饰符 返回值类型 方法名称(参数类型 参数名称,…)
{
方法体
return 返回值;
}
修饰符:现阶段 public static
返回值类型:int double…
方法名称:小驼峰
参数类型:进入方法的数据是什么类型
return:将后面的返回值还给调用处
注意
return后面的返回值,必须和方法名称前面的返回值类型,保持对应
方法的三种调用格式
- 单独调用
- 打印调用
- 赋值调用
public class a{
public static void sum(int a,int b)
{
int result=a+b;
return result;
}
public static void main(String[] args)
{
//单独调用
sum(10,20);
//打印调用
System.out.println(sum(10,20));
//赋值调用
int c=sum(10,20);
}
}
//例1
//定义一个方法判断两个数字是否相同
public class a{
public static void compare(int a,int b)
{
if(a==b)
{
System.out.println("相同");
}
else
{
System.out.println("不同");
}
}
public static void main(String[] args)
{
int a=21;
int b=22;
compare(a;b);
}
}
优化代码
public class a{
public static boolean compare(int a,int b)
{
//a==b就是boolean类型
return a==b;
}
public static void main(String[] args)
{
System.out.println(compare(10,20));
System.out.println(compare(20,20));
}
}
//输出值
false
true
//无需参数的方法
//例2,求和,求1到100间数字的和
public class a{
public static void sum()
{
int total=0;
for(int i=1;i<=100;i++)
{
total=total+i;
}
return total;
}
public static void main(String[] args)
{
int c=sum();
}
}
//例3,指定打印次数的HelloWorld
public class a{
public static void print(int ci)
{
for(int i=1;i<=ci;i++)
{
System.out.println("HelloWorld");
}
}
public static void main(String[] args)
{
c=print(5);
}
}