1.什么是方法
说白了,方法就是我们其他编程语言中的函数
1.1 方法的声明
2.方法的分类
具体代码如下:
package com_imooc;
public class fangfa {
//1.无参数无返回值的方法
public void print_Star() {
System.out.println("我是无参数无返回值的方法,直接调用就可以的");
}
//2.无参数有返回值的方法
public int areo() {
int length = 10, hight = 120;
return length * hight;
}
//3.有参数无返回值的方法
public void max(float a, float b) {
if (a > b) {
System.out.println(a);
} else {
System.out.println(b);
}
}
//4.有参数有返回值的方法
public int fac(int n) {
int rel = 1;
for (int i = 1; i <= n; i++) {
rel *= i;
}
return rel;
}
//5.数组作为方法参数
public void print_array(int[] arr) {
for (int a : arr) {
System.out.println(a);
}
}
//6.判断数字是否在数组中
public boolean in_array(int[] arr, int a) {
for (int aa : arr) {
if (aa == a) {
return true;
}
}
return false;
}
public static void main(String[] vvv) {
//先声明fangfa类的对象是myfangfa
fangfa myfangfa = new fangfa();
//调用方法print_Star,输出小星星
myfangfa.print_Star();
//调用方法areo,求面积
System.out.println("长方形的S:" + myfangfa.areo());
//调用方法max,求最大值
myfangfa.max(3.2f, 6.7f);
//调用方法fac,求阶乘
System.out.println("阶乘" + myfangfa.fac(5));
//调用方法print_array,打印出数组的值
int[] arr = {14, 85, 88, 99, 234};
myfangfa.print_array(arr);
//调用方法in_array,判断数字是否在数组中
int a = 14;
System.out.println("数字:" + a + ",是否在集合arr中?" + myfangfa.in_array(arr, a));
}
}
3.方法重载
只要是方法名字相同,方法的参数列表不同就可以认定是方法的重载;
例题如:
除了第二条中和hello()的参数均为空,以及最后一条hello1()的方法名称不同以外,其余的均可以说是hello()方法的重载
package com_imooc;
public class fangfa {
//7.方法的重载(定义3个方法,实现int,double和数组类型的和)
public int sum(int a, int b) {
return a + b;
}
public double sum(double a, double b) {
return a + b;
}
public int sum(int[] a) {
int sum = 0;
for (int vv : a) {
sum += vv;
}
return sum;
}
public static void main(String[] vvv) {
//先声明fangfa类的对象是myfangfa
fangfa myfangfa = new fangfa();
int[] arr = {14, 85, 88, 99, 234};
//调用重载的方法
System.out.println("int的类型和"+myfangfa.sum(2,7));
System.out.println("double的类型和"+myfangfa.sum(2f,7.5));
System.out.println("array的类型和"+myfangfa.sum(arr));
}
}
4.可变参数列表
对于这种不确定参数有多少个的方法,可以用如上图一样的写法,"count(int...n){}",需要注意的是有两点:
1.可变参数一定是在最后边的;
2.可变参数的方法是最后才能被访问;
5.代码练习
package com_imooc;
import java.util.Scanner;
public class fangfazuoye {
public void hello() {
System.out.println("*************************");
System.out.println(" 1--插入数据");
System.out.println(" 2--显示所有数据");
System.out.println(" 3--指定位置插入数据");
System.out.println(" 0--退出");
System.out.println("*************************");
System.out.println("请输入对应的数字进行操作:");
}
//监视键盘的输入
public int jiandu() {
Scanner s = new Scanner(System.in);
return s.nextInt();
}
//添加
/**
* @param arr 数组
* @param a 值
* @param i 健
*/
public void add_array(int[] arr, int a, int i) {
arr[i] = a;
}
//遍历
public void for_array(int[] arr) {
System.out.print("添加数组为:");
for (int v : arr) {
System.out.print(" " + v);
}
System.out.println();
}
public static void main(String[] vvv) {
//定义新的对象
fangfazuoye zuoye = new fangfazuoye();
int[] arr = new int[5];
while (true) {
//欢迎页
zuoye.hello();
//监督键盘的输入
int n = zuoye.jiandu();
if (n == 1) {
for (int i = 1; i < arr.length + 1; i++) {
System.out.print("请输入第" + i + "个参数:");
int a = zuoye.jiandu();
zuoye.add_array(arr, a, i - 1);
}
zuoye.for_array(arr);
} else if (n == 2) {
zuoye.for_array(arr);
} else if (n == 3) {
System.out.println("请输入插入的位置:");
int i = zuoye.jiandu();
System.out.println("请输入的值:");
int a = zuoye.jiandu();
zuoye.add_array(arr, a, i);
zuoye.for_array(arr);
} else if (n == 0){
System.out.println("退出成功");
break;
}
}
}
}