一、有参数有返回值的方法
1、有参数有返回值方法的语法及调用
(1)语法:权限修饰符 返回值类型 方法名(形式参数列表){//方法体;return 表达式;}
(2)方法调用:数据类型 变量 = 对象名.方法名(实际参数列表);
【实例】
写一个方法,计算两个整数的和。要求:定义方法实现求和,并返回和。
1 public class Demo001 {
2 public int add(int a,int b) {
3 int sum = a+b;
4 return sum;
5 }
6
7 public static void main(String[] args) {
8 Demo001 demo = new Demo001();
9 //调用方法接收到返回值
10 int sum1 = demo.add(20, 30);
11 System.out.println(sum1);
12 }
13 }
2、return语句的作用
(1)返回方法指定类型的值
1 public int add(int a,int b) {
2 int sum = a+b;3 return sum;
4 }
(2)方法的结束
1 public class Demo002 {
2 public static void main(String[] args) {
3 System.out.println("王飞");
4 return;
5 System.out.println("杨瑜"); //报错
6 }
7 }
【实例】
编写程序,在控制台输入一个年份,判断该年份是否为闰年并输出结果。要求定义方法实现闰年的
判断,并返回判断结果。
1 import java.util.Scanner;
2 public class Demo003 {
3 //判断闰年
4 public boolean isYear(int year) {
5 if((year%4==0&&year%100!=0)||(year%400==0)) {
6 return true;
7 } else {
8 return false;
9 }
10 }
11
12 public static void main(String[] args) {
13 Scanner input = new Scanner(System.in);
14 Demo003 demo = new Demo003();
15 System.out.println("请输入一个年份:");
16 int year1 = input.nextInt();
17 boolean result = demo.isYear(year1);
18 if (result == true) {
19 System.out.println(year1 + "是闰年");
20 } else {
21 System.out.println(year1 + "是平年");
22 }
23 }
24 }
3、方法返回值的注意事项
(1)方法可以没有返回值,也可以存在返回值,但最多只能存在一个返回值。(2)方法的返回值可以为变量、常量以及表达式。1 return a;2 return 1;3 return a+b;(3)在有返回值方法中,方法体中必须包含“return 表达式;”语句。(4)方法体中返回值的数据类型必须与方法中定义时指定的返回值类型相匹配。(5)使用条件结构时,必须保证每一个分支都包含返回值。
二、参数的数据类型
1、值类型的参数
当方法内代码完成形参值的改变时,实参不会同步改变。
1 public class Demo005 {
2 public void test(int number) {
3 number = number+1;
4 }
5 public static void main(String[] args) {
6 int num = 100;
7 Demo005 demo = new Demo005();
8 demo.test(num);
9 System.out.println(num); //100
10 }
11 }
2、引用类型的参数
变量里存放的是对象的内存地址,所以形参和实参实际是同一个对象,改变实参的值,形参也会改
变。
1 public class Demo005 {
2 public static void main(String[] args) {
3 Demo005 demo = new Demo005();
4 System.out.println(demo); //com.bmg.C1903.Demo005@70dea4e
5 }
6 }
三、方法使用
1、判断水仙花数
用户在控制台输入一个三位数字,判断该数字是否为水仙花数。要求:使用方法判断水仙花数。
1 import java.util.Scanner;
2 public class Demo006 {3 //判断水仙花数的方法
4 public boolean isNarcissus(int number) {
5 if(number>=100&&number<=999) {
6 int ge = number%10;
7 int shi = number/10%10;
8 int bai = number/100;
9 if ((ge*ge*ge+shi*shi*shi+bai*bai*bai)==number) {
10 return true;
11 }
12 }
13 return false;
14 }
15
16 public static void main(String[] args) {
17 Scanner input = new Scanner(System.in);
18 System.out.println("请输入有个三位数:");
19 int num = input.nextInt();
20 //创建对象
21 Demo006 demo = new Demo006();
22 boolean result = demo.isNarcissus(num);
23 if (result == true) {
24 System.out.println(num + "是水仙花数");
25 } else {
26 System.out.println(num + "不是水仙花数");
27 }
28 }
29 }
2、质数判断
在控制台中输出50-100之间的所有质数。要求:判断质数使用方法实现。
1 public class Demo007 {
2 //判断质数的方法
3 public boolean isPrimeNumber(int number) {
4 //声明一个变量,标记是否为质数
5 boolean result = true; //初始默认传入的值是质数
6 for(int i=2;i<=number‐1;i++) {
7 if(number%i==0) {
8 result = false;
9 break;
10 }
11 }12 return result;
13 }
14
15 public static void main(String[] args) {
16 Demo007 demo = new Demo007();
17 System.out.println("50‐100之间所有的质数:");
18 for(int i=50;i<=100;i++) {
19 boolean result = demo.isPrimeNumber(i);
20 if(result == true) {
21 System.out.println(i);
22 }
23 }
24 }
25 }
1157

被折叠的 条评论
为什么被折叠?



