两个小时摆脱Java小白--方法详解

1、方法的定义

为什么要有方法?
方法(又叫函数)就是一段特定功能的代码块。方法提高程序的复用性和可读性
比如,有了方法,我们可以把要重复使用的一段代码提炼出来,然后在每个需要执行这段代码的地方去调用即可。

打过飞机吗?(emmm…)
在一个打飞机的游戏中,飞机需要发射子弹,那么我们可以把发射子弹的这段代码写成方法,这样就可以避免每次重写相同的代码。

方法的格式
语法:
访问权限修饰符 [其他的修饰符 如static] 返回值类型 方法名(参数类型1 形参1,参数类型2 形参2,…){ //形参列表
//方法体
return 返回值;
}

方法的格式说明:

修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
返回值类型:就是功能结果的数据类型。
方法名:见名知意,首字母小写,遵守驼峰命名法。方便我们的调用

public class Test4{

	public static void main(String[] args){	
		biuBullet();//调用方法
		biuBullet();
		biuBullet();
		biuBullet();
	}
	
	//public 访问权限修饰符
	//static 静态修饰符,描述的方法可以直接调用
	//void 返回值(无返回值)
	//biuBullet 方法名使用驼峰命名法
	//定义一个方法,在没有调用的时是不会运行的
	public static void biuBullet(){
		System.out.println("制造一个子弹");
		System.out.println("发射子弹");
		System.out.println("biubiu");
	} 

}

你看我把发射子弹写在一个方法里,我调用的时候直接biuBullet()就可以了,避免了我写12次System了

2、方法的形参和实参

上一节我们写的打印星星的例子是打印五行,我要打印6行呢,我要打印20行呢,每次打印都得更改i的值吗?

	public static void main(String[] args){	
		//外循环控制行数
		for(int i=1;i<6;i++){
		//i和每一行的星星个数是有关系的i=当前行星星的个数
			for(int j=1;j<=i;j++){	
				System.out.print("*");
			}
			System.out.println();
		}
	}


然后我们学了方法了,把它改造一下子?

public class Test4{
	public static void main(String[] args){	
		Scanner input=new Scanner(System.in);
		System.out.println("请输入要打印星星的行数:");
		int num=input.nextInt();
		//在调用方法是传入的参数,称为实参
		printStar(num);
	}
	/**
		带参数的方法
		形参:在方法定义手撕的参数称为形参
	*/
	public static void printStar(int line){//line=num
				//外循环控制行数
		for(int i=1;i<=line;i++){
		//i和每一行的星星个数是有关系的i=当前行星星的个数
			for(int j=1;j<=i;j++){	
				System.out.print("*");
			}
			System.out.println();
		}
	} 

这样你就可以想打印几行就打印几行了。
参数:
实际参数:就是实际参与运算的。 相当于上边的num
形式参数;就是方法定义上的,用于接收实际参数的。
参数类型:就是参数的数据类型
参数名:就是变量名
方法体语句:就是完成功能的代码。

注意:
1、若当前方法中不要使用形参,那么形参列表中可以为空
2、实参和形参的类型要相互兼容,且:实参的取值范围要小于或者等于形参类型的取值范围。形参的 范围要大.形参定义的时候可不能强转…

在调用方法中,如果我们定义的方法有参数,就必须在调用方法的同时传入这个值,即给当前方法中的参数赋值,而这个传入的值我们称为实际参数,也就是实参,必须要传,如果不传,这个方法是不知道要打印几行星星,然后它就死给你看。。。
实参:传入的参数值
形参:接收实参传过来的值。
注意:实参名与形参名可以相同,也可以不同。

小结:形参就是一个变量,实参就是一个值,传参就是把一个值给一个形参赋值

3、方法的返回值

return:结束方法的。
返回值:就是功能的结果,由return带给调用者。

注意:
1、若当前方法没有返回值类型,即返回值类型是void,那么当前方法中可以不写return ,也可以写,写的话就是return语句,结束这个方法

    //输出结果为0 1 2 3 4
	public static void print(){
		for(int i=0;i<10;i++){
			if(i==5){
				return;//表示方法结束
			}
			System.out.println(i);
		}
	}

2、return即表示结束一个方法,也可以将返回值返回给调用当前方法的调用者
3、return返回值时一次只能返回一个值,不可以返回多个值
4、一个方法中可以有多个return,但被执行的只能有一个,所以需要判断

练习:
1、判断任意给定年份是否是闰年

public class Test5{

	public static void main(String[] args){	
		//调用方法
		//杯子=榨汁机(烂香蕉,红苹果,鸡蛋)
		boolean bool=isRunNian(2020);
		if(bool)
			System.out.println("闰年");
		else
			System.out.println("平年");
	}
	public static boolean isRunNian(int year){
		if((year%4==0&&year%100!=0)||year%400==0)
				return true;//return的值要和 boolean匹配
		else 
				return false;
	}

}

bool 就相当于榨出来的果汁, isRunNian相当于榨汁机,传入的年份相当于烂香蕉

4、方法的重载(OverRoading Method)

方法重载:overloading method 后面还有一个overReading的东西
在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义;
返回值不能作为重载的条件。
如:
public void method(int a){…}
public void method(char c){…}

public class Test5{

	public static void main(String[] args){	
		//调用方法
		int result=add(10.2,20.2);
		System.out.println(result);
	}
	
	public static int add(int a,int b){
		return a+b;
	}
	public static float add(float a,float b){
		return a+b;
	}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值