Java 方法

在这里插入图片描述
访问修饰符:方法允许被访问的权限范围
返回类型 void–表示无返回值
方法名:一个单词组成的小写即可,多个单词组成的第一个单词小写,第二个单词的首字母大写
参数列表可以省略
在这里插入图片描述

无参无返回值方法

== 方法在类的内部定义==
在这里插入图片描述

无参带返回值方法

在这里插入图片描述
导包快捷键:Ctrl+shift+O

public class Rancle {
	public int area() {
		int length=10;
		int width=4;
		int getArea=length*width;
		return getArea;
	}
	public static void main(String[] args) {
		Rancle rc=new Rancle();
		int getArea=rc.area();
		System.out.println(getArea);
	}
}

带参无返回值方法

在这里插入图片描述

带参有返回值方法

方法不能嵌套定义;

import java.util.Scanner;

public class DisCountDemo {
	public double count(float a) {
		double price;
		if(a<100) {
			price=a;
			}
			else if(a<199) {
				price=a*0.95;
			}else {price=a*0.85;
			
		}
		return price;
	}
	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		
		int costPrice=s.nextInt();
		DisCountDemo count=new DisCountDemo();
		double newPrice=count.count(costPrice);
		System.out.println("折后商品总价为:"+newPrice);
		
	}
		

	
}

关于main方法的参数

主方法main就是以数组作为方法参数的,又叫做命令行参数。命令行参数可以在执行Java程序的时候接收字符串类型的数据,下面来看一下命令行参数在命令行提示符(或终端)和Eclipse中的应用。
为什么要使用命令行?
已知如下的Java程序,args[0]和args[1]中分别接收执行程序时传入的两个数据。因为是字符串类型,所以要使用Integer.parseInt()方法转换为整型,然后再进行加法运算,最后输出结果。
在这里插入图片描述
1、首先看一下程序在终端的使用,从下图可以看到,使用java命令执行程序的时候加入了两个数据1和2,用空格隔开。这样会把第一个数据1存储到args[0]中,把第二个数据2存储到args[1]中,如果还有第三个数据,还会存储到args[2]中,以此类推。当然如果只有一个数据也可以,那么就是存储到args[0]中
在这里插入图片描述
这里注意一个问题,如果程序中需要接收两个命令行参数,而传入的数据有三个或更多,没有问题。如果执行程序时只有一个数据,就会报数组下标越界的错误,如下所示:
在这里插入图片描述
2、再来看一下如何在Eclipse中运行程序时使用命令行参数
在代码编辑区点击鼠标右键,然后选择Run As——Run Configurations…
在这里插入图片描述

在如下的窗口中,要确认选中的类是要运行的类,如果不是,点击右侧的Search…按钮进行搜索,然后添加
在这里插入图片描述
然后切换到Arguments选项卡,在Program arguments中输入1和2两个数据,两个数据之间用换行,然后点击Run就可以运行了
在这里插入图片描述

方法重载

定义:方法名相同,参数列表不同
以下两个图片中不是方法重载,以下两个方法方法名相同,参数列表也相同,不是合法的重载
在这里插入图片描述
在这里插入图片描述
圆周率:Math.PI

Java方法重载总结

一、方法重载的规则
方法名相同,参数列表不同。
参数列表不同包括,参数的个数和类型不同。如果只有参数名不同,不能算作方法重载。
如下三个方法是重载方法,它们的参数列表都是不同的。
public void display(){}
public void display(int n){}
public void display(float n){}
如下两个方法不是重载方法,两个方法只是参数名不同,不满足方法重载条件。
public void display(int n){}
public void display(int d){}
二、方法重载的应用场景
当我们实现某一个功能,比如计算两个数的加法,而此时的数据可能是int、long类型,也有可能是float和double类型,如果我们定义四个方法分别计算这四种数据类型数据的和,方法名就要有四个。如果使用方法重载,只需要一个方法名就可以了,这样使用起来也更加方便。
像我们常用的println()方法,就包括多个重载的方法,用于输出不同数据类型的数据。所以,遇到方法功能相同,只是参数类型和参数个数不同的情况,就可以使用方法的重载

参数传递问题

方法中对主方法已经赋值的参数的值进行修改,不会对主方法中原来的值产生影响,而数组中的值是可以修改的

可变参数列表

在这里插入图片描述
在这里插入图片描述
参数列表中如果有两个以上的参数,可变参数一定是在最后的
可以将数组传递给可变参数列表
数组作为参数时,是不能将多个值传递给数组的
一个方法中只能有一个可变参数

可变参数列表所在的方法是最后被访问的

可变参数列表与数组作为参数的区别

1、可变参数列表作为参数,方法调用时可以传入0个或多个参数,传入数组也可以。数组作为方法参数,方法调用时只能传入数组。
2、可变参数列表作为方法参数时,如果有多个参数,可变参数列表只能放到最后一个位置,而且不能有多个可变参数列表作为方法参数。而数组没有这个限制。
关于可变参数作为方法参数,下面的方法定义形式都是错误的:
public void method(int… m,int… n) {}//不能有多个可变参数作为方法参数
public void method(int… m,int n) {}//可变参数应该放到参数列表的最后
3、可变参数的底层实现就是数组。
4、当传入方法的参数数量不确定的时候,可以考虑使用可变参数列表。

文档注释

/** */
可以通过javadoc生成文档注释

关于javadoc命令的教辅文件

1、假设 ArgsDemo3.java 文件存储在 E:\imooc 目录下,代码如下:

/**
*  关于可变参数列表和重载的问题
* @author  imooc
* @version  1.0
*
*/
public class ArgsDemo3 {
//可变参数列表所在的方法是最后被访问的。
/*
public int plus(int a,int b){
System.out.println("不带可变参数的方法被调用!");
return a+b;
}*/
public int plus(int... a){
int  sum=0;
for(int  n:a){
sum=sum+n;
}
System.out.println("带可变参数的方法被调用!");
return  sum;
}




 
public static void main(String[] args) {
ArgsDemo3 ad=new  ArgsDemo3();
System.out.println("和为:"+ad.plus(1,2));
}
}

2、打开命令行,转到E:\imooc目录下,输入命令:javadoc –d doc ArgsDemo3.java,
会生成很多内容,如下图所示:
在这里插入图片描述
3、打开文件夹E:\imooc,会看到如下的目录
在这里插入图片描述
打开doc目录,会看到下面的内容:
在这里插入图片描述
打开index.html文件,会看到生成的文档内容了!
在这里插入图片描述

方法调试

方法的调试:按F5键可以调到方法内部执行
F7 由方法内部返回调用处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值