一、概念
1.方法的定义: 在类中的具有特定功能的一段独立程序。 个人理解:相当于把会重复使用的一段功能打个包取个名字,需要用时在主方法中调用,使代码简洁,层次清晰。 2.方法的分类:
3.方法的编码规范与规则: 编码规范:写一个方法时,在方法前必须加一段文档注释,描述方法的作用。 编码规则: 1.如果是有参方法,调用时必须填写入参 2.方法之间是独立的,不同方法里面的变量名可以重复
二、基本语法
语法1-无参方法的构造:
public class Lesson01 {
public static void main(String[] args) {
调用定义的方法fun1
fun1();
}
/**
* 定义一个方法叫fun1
* 这个方法被调用会在控制台输出hello world!
*/
public static void fun1() {
System.out.println("hello world!");
}
}
运行结果:略
语法2-有参方法的构造:
public class Lesson02 {
public static void main(String[] args) {
//调用方法fun1,直接传入两个参数
fun1("world",1);
Scanner input = new Scanner(System.in);
System.out.println("请输入三角形的底长:");
int length = input.nextInt();
System.out.println("请输入三角形的高:");
int hight = input.nextInt();
//调用方法triangle,传入两个由用户键盘输入的参数
triangle(length,hight);
System.out.println("请输入正方形的边长:");
int sideLength = input.nextInt();
//调用方法square,传入一个由用户键盘输入的参数
square(sideLength);
System.out.println("请输入圆的半径:");
double radius = input.nextDouble();
//调用方法circle,传入一个由用户键盘输入的参数
circle(radius);
}
/**
* 在每个方法前加文档注释,描述方法和参数的作用
* 这个方法叫fun1
* 调用这个方法会输出一句话,内容是“hello 参数1! 第参数2次调用”
* @param args1 描述你想say hello的对象
* @param args2 描述第几次调用这个方法
*/
public static void fun1(String args1,int args2){
System.out.println("hello "+args1+"! 第"+args2+"次调用");
}
/**
* 在每个方法前加文档注释,描述方法和参数的作用
* 这个方法叫triangle
* 计算三角形的面积
* @param length 三角形的底长
* @param hight 三角形的高
*/
public static void triangle(int length,int hight) {
//计算面积
double areaTriangle = length*hight/2;
//输出面积
System.out.println("这个三角形的面积是:"+areaTriangle);
}
/**
* 在每个方法前加文档注释,描述方法和参数的作用
* 这个方法叫square
* 计算正方形的面积
* @param sideLength 正方形的周长
*/
public static void square(double sideLength) {
//计算面积
double areaSquare = sideLength*sideLength;
//输出面积
System.out.println("这个正方形的面积是:"+areaSquare);
}
/**
* 在每个方法前加文档注释,描述方法和参数的作用
* 这个方法叫circle
* 计算圆的面积和周长
* @param radius 半径
*/
public static void circle(double radius) {
double circleArea = radius*radius*3.14;
double circlePerimeter = 2*3.14*radius;
System.out.println("圆的面积是:"+circleArea);
System.out.println("圆的周长是:"+circlePerimeter);
}
}
运行结果:略
语法3-无返回值方法的构造:
以上创建方法时用void关键字的都是无返回值方法
例如主方法中也被void修饰,意为这个方法无返回值:
public static void main(String[] args) {
}
语法4-有返回值方法的构造:
public class Lesson04 {
public static void main(String[] args) {
//调用不带返回值的方法1
fun1();
//调用带返回值的方法2
//创建一个int类型的变量,用于存储调用fun2方法的返回值
int n = fun2();
//输出n的值
System.out.println(n);
}
/**
* 这里用的void关键字意思是:该方法不带返回值
*/
public static void fun1() {
System.out.println(10);
}
/**
* 把void关键字替换成int,意思是,调用这个方法,会返回一个int类型的值
* @return 返回100
*/
public static int fun2() {
return 100;
}
}
}
运行结果:略
语法5-方法的重载:
- 定义:指多个方法名称一样,但方法参数类型或者参数个数不一样,方法的重载跟参数名称无关。
- 调用规则:根据调用时传入的实参类型和个数,自动选择需要调用的方法。
public class Lesson05 {
public static void main(String[] args) {
//调用方法sum时实参传入两个int类型的参数,自动调用含有两个int类型的参数的方法
sum(1,2);
//调用方法sum时实参传入三个int类型的参数,自动调用含有三个int类型的参数的方法
sum(1,2,3);
//调用方法sum时实参传入一个String类型的参数,一个int类型的参数。
//自动调用一个String类型的参数,一个int类型的参数的方法
sum("hello",1);
}
/**
* 方法sum中含有两个int类型的参数
* @param a
* @param b
*/
public static void sum(int a,int b) {
System.out.println(a+b);
}
/**
* 方法sum中含有三个int类型的参数
* @param a
* @param b
* @param c
*/
public static void sum(int a,int b,int c) {
System.out.println(a+b+c);
}
/**
* 方法sum中含有一个String类型的参数,一个int类型的参数
* @param a
* @param b
* @param c
*/
public static void sum(String a,int b) {
System.out.println(a+b);
}
}
运行结果:
语法6-定义任意个数参数的方法:
- 作用:在不能确定调用方法时会传入多少个参数时,可以定义一个任意参数格式的方法。
- 实现:这个方法相当于用数组存储传入的参数。
- 语法格式:方法名(数据类型 …参数名)
public class Lesson06 {
public static void main(String[] args) {
fun(1,2,3,4,5,6);
}
/**
* 定义任意个数参数的方法
* 方法以伪数组的形式接收实参
* @param a 伪数组名
*/
public static void fun(int ...a) {
System.out.println(a.length);
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
运行结果:
|