package com.math;
import java.util.Scanner;
/*
* 方法其实就是完成特定功能的代码块
* 定义格式
* 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型,参数值2,){
* 方法体;
* return 返回值;
* }
*/
public class MethodDemo {
public static void main(String[] args) {
// TODO 简单的调用方法
int i=10;
int j=20;
//三种调用方法-1-单独调用,2-输出调用,3-赋值调用
System.out.println(sum(i,j));
//返回最大值
int max=getMax(3,5);
System.out.println(max);
//判断函数是否相等
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个数字:");
int x=sc.nextInt();
System.out.println("请输入第二个数字:");
int y=sc.nextInt();
boolean result=compare(x,y);
System.out.println(result);
//三个数最大值
System.out.println("请输入第一个数字:");
int m=sc.nextInt();
System.out.println("请输入第二个数字:");
int n=sc.nextInt();
System.out.println("请输入第三个数字:");
int q=sc.nextInt();
int max1=compareMax(m,n,q);
System.out.println(max1);
}
//求和方法
public static int sum(int a,int b) {
int c=a+b;
return c;
}
//返回最大值方法
public static int getMax(int a,int b) {
if(a>b) {
return a;
}else {
return b;
}
}
//判断两个数是否相等
public static boolean compare(int a,int b) {
if (a==b) {
return true;
}else {
return false;
}
}
//三个数中的最大值
public static int compareMax(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;
}
}
}
}
训练2-void修饰方法的调用
package com.math;
import java.util.Scanner;
/*
* void修饰方法的调用-只能单独调用
*/
public class MethodTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
printWord();
}
public static void printWord(){
System.out.println("请输入打印的次数:");
Scanner sc=new Scanner(System.in);
int i=sc.nextInt();
System.out.println("请输入要打印的语句:");
String j=sc.next();
for (int x=0;x<i;x++) {
System.out.println(j);
}
}
}
训练3-打印水仙花数
package com.math;
/*
* 打印水仙花数
*/
public class MethodTest1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
printFlower();
}
public static void printFlower() {
for (int x=100;x<1000;x++) {
int ge=x%10;
int shi=x/10%10;
int bai=x/10/10%10;
if ((ge*ge*ge+shi*shi*shi+bai*bai*bai)==x) {
System.out.println(x);
}
}
}
}
训练4-方法的重载
package com.math;
/*
* 方法的重载-在同一个类中允许方法名相同的情况,只是参数类型或者参数个数不同,与返回值无关
*/
public class MethodTest2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=10;
int j=20;
int m=30;
//三个数的和,重载使用
int result = sum(i,j,m);
}
//求和方法
public static int sum(int a,int b) {
int c=a+b;
return c;
}
public static int sum(int a,int b,int c) {
int he=a+b+c;
return he;
}
}
// 方法的参数如果是基本数据类型,形式参数的改变不影响实际参数。
//形式参数-用于接收实际参数的变量
//实际参数-实际参与运算的变量
训练5-传参问题(形式参数和实际参数)
package com.math;
/*
* 方法的参数如果是基本数据类型,形式参数的改变不影响实际参数。
形式参数-用于接收实际参数的变量
实际参数-实际参与运算的变量
* 如果参数是引用数据类型,形式参数的改变直接影响实际参数
*/
public class MethodTest3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = {1,2,3,4,5};
for (int x=0;x<arr.length;x++) {
System.out.println(arr[x]);
}
change(arr);
for (int x=0;x<arr.length;x++) {
System.out.println(arr[x]);
}
}
public static void change(int[] arr) {
for(int x=0;x<arr.length;x++) {
if(arr[x]%2==0) {
arr[x]*=2;
}
}
}
}
训练5-编写简单的函数对数组进行操作
package com.math;
/*
* 函数对数组进行操作
*/
public class MethodTest4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = {1,2,3,4,5};
browe(arr);
//最值
int max = getMax(arr);
System.out.println(max);
//求和
int sum = sum(arr);
System.out.println(sum);
}
//遍历数组方法
public static void browe(int[] arr) {
for (int x=0;x<arr.length;x++) {
System.out.println(arr[x]);
}
}
//方法求数组的最值
public static int getMax(int[] arr) {
int max=arr[0];
for (int x=1;x<arr.length;x++) {
if (arr[x]>max) {
max=arr[x];
}
}
return max;
}
//方法对数组求和
public static int sum(int[] arr) {
int sum=0;
for (int x=0;x<arr.length;x++) {
sum+=arr[x];
}
return sum;
}
}