方法
方法:实现某种功能的代码块;
定义格式:
修饰符 返回值类型 方法名(参数类型 参数名1;参数类型 参数名2){
方法体;
return 返回值;
}
格式解释:
1.修饰符: public:公有方法; static:静态方法可以直接通过类名直接访问;
2.返回值类型:用于限定返回值的数据类型;
3.方法名:便于调用该方法;
4.参数类型:用于限定调用方法时传入的数据的类型;
5.参数名:用于接受调用数据时传入的数据的变量;
6.方法体:完成功能的代码;
7.return:结束方法,并把返回值带给调用者;
写一个方法应该注意明确两个点:
1.返回值类型: 明确方法体结果的数据类型;
2.参数列表: 明确有几个参数以及每个参数的类型;
- 用方法求和
package Test5;
import java.util.Scanner;
public class MethodDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
int a = sc.nextInt();
System.out.println("请输入第二个数:");
int b = sc.nextInt();
System.out.println("求和结果:"+sum(a,b));
}
public static int sum(int a,int b){
return a+b;
}
}
2.用方法求三个数中的最大值
package Test5;
import java.util.Scanner;
/*
*
*用方法求三个数中的最大值
*/
public class MethodDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
int a = sc.nextInt();
System.out.println("请输入第二个数:");
int b = sc.nextInt();
System.out.println("请输入第三个数:");
int c = sc.nextInt();
System.out.println("得到最大值:"+max(a,b,c));
}
public static int max(int a,int b,int c){
if(a>b){
if(a>c){
return a;
}else{
return c;
}
}else{
if(b>c){
return b;
}else{
return c;
}
}
}
}
3.用方法求水仙花数
package Test5;
/*
*
* 用方法求水仙花数
*
*水仙花数:一个三位数 = 百位数上的数字的三次方+十位数上的数字的三次方+个位数上的数字的三次方
* abc=a*a*a+b*b*b+c*c*c
*/
public class MethodDemo3 {
public static void main(String[] args) {
flower();
}
public static void flower(){
for(int i=100;i<1000;i++){
int a = i%10;//个位
int b = i/10%10;//十位
int c = i/10/10%10;//百位
if(i==a*a*a+b*b*b+c*c*c){
System.out.println(i);
}
}
}
}
形式参数在什么情况下影响实际参数
方法的参数如果是基本数据类型,形式参数的改变不影响实际参数
方法的参数如果是引用类型,形式参数的改变不影响实际参数
形式参数:用于接受实际参数的变量;
实际参数:实际参与运算的变量;
package Test5;
/*
* 方法的参数是基本数据类型
*/
public class DifferDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a:"+a+" b:"+b);
differ(a,b);
System.out.println("a:"+a+" b:"+b);
}
public static void differ(int a,int b){
a = 100;
b = 200;
System.out.println("a:"+a+" b:"+b);
}
}
package Test5;
/*
* 形式参数是引用数据类型
*/
public class DifferDemo2 {
public static void main(String[] args) {
int[] array = {1,2,3};
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
System.out.println("............");
differ(array);
System.out.println("............");
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
public static void differ(int[] array){
array[1] = 10;
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
}