Java的方法
1. 方法的声明和调用
什么是方法?
具备特定功能的一段独立的代码段
标准的方法格式:(注意格式的顺序)
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
方法体;
return 返回值;
}
注意:
在很多语言里面习惯叫函数,Java叫方法
总结:
如何写一个方法?
明确返回值类型,明确参数列表,定义方法名
注意事项:
方法不调用不执行
方法与方法是平级关系,不能嵌套定义
方法定义的时候参数之间用逗号隔开
方法调用的时候不用再写数据类型
如果方法有明确的返回值,一定要有return带回一个值
理解什么叫形参和什么叫实参
2. 方法的重载
方法重载
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
方法重载特点
与返回值类型无关,只看方法名和参数列表
参数的长度,参数的类型
在调用时,虚拟机通过参数列表的不同来区分同名方法
其实还有一种更好的解决方法,可变参数,后续会讲到
3. 递归(了解)
实现步骤:
1) 首先要定义一个方法
2) 找到出口条件
寻找规律,不断接近出口
4. 作业
1. 描述什么是方法重载
2. 设计一个方法,打印直角三角形,要求可以通过方法参数的形式来控制打印的图像以及高度,比如打印图像为“$”,高度为8
代码如下:
import java.util.Scanner; public class DaYin{ public static void DaYin(){ Scanner sc = new Scanner(System.in); System.out.println("请输入你要打印的图案"); String tu = sc.next(); System.out.println("请输入你要打印的图案高度"); int height = sc.nextInt(); for(int i =1;i<=height;i++){ for(int j =1;j<=i;j++){ System.out.print(tu+" "); } System.out.println(); } } public static void main(String[] args) { DaYin(); } } |
3. 设计一个方法,打印nn乘法表,n的值由方法的参数决定
代码如下:
import java.util.Scanner; public class nnCheng{ public static void nnCheng(){ Scanner sc = new Scanner(System.in); System.out.println("请输入n的值:"); int n = sc.nextInt(); for(int i =1;i<=n;i++){ for(int j =1;j<=i;j++){ System.out.print(i+"*"+j+"="+(i*j)+" "); } System.out.println(); } } public static void main(String[] args) { nnCheng(); } } |
4. 素数也叫质数.是除了1和其本身,不能被其他正整数整除的正整数.
a) 例如:2,3,5,7,11,13,17,19,23.....
a) 写一个方法判断该数是否为素数(设计成一个方法 返回类型boolean)
b) 输出某个范围内的所有素数,比如100-200之间。
代码如下:
import java.util.Scanner; public class suShu2{ public static boolean suShu(int n){ int k = (int)Math.sqrt(n); boolean flag = true; for(int i = 2;i<=k;i++){ if(n%i == 0){ flag = false; } } return flag; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入上界限:"); int min = sc.nextInt(); System.out.println("请输入下界限:"); int max = sc.nextInt(); System.out.println("此区间范围内的素数为:"); for(int n = min;n<=max;n++){ if(suShu(n)){ System.out.print(n+" "); } } } } |
5. 闰年,能被4整除而且不能被100整除,或者能被400整除就是闰年
c) 判断某个年份是否为闰年(设计成一个方法 返回类型boolean)
d) 输出一个范围内的哪些年份是闰年(从2000至2020年)
代码如下:
public class runNian{ public static boolean runNian(int year){ boolean flag = false; if(year%4 == 0&&year%100 !=0 || year%400 == 0){ flag = true; } return flag; } public static void main(String[] args) { for(int n = 2000;n<=2020;n++){ if(runNian(n)){ System.out.print(n+" "); } } } } |