【阶段一】java之方法

什么是方法?

Java方法是语句的集合,它们在一起执行一个功能。

  • 方法是解决一类问题的步骤的有序组合
  • 方法包含于类或对象中
  • 方法在程序中被创建,在其他地方被引用
    设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最 好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。

方法的优点:

  • 使程序变得更简短而清晰。
  • 有利于程序维护。
  • 可以提高程序开发的效率。
  • 提高了代码的重用性。

方法的定义

Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法 包含以下语法:

修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

方法包含一个方法头和一个方法体。下面是一个方法的所有部分:

修饰符:
修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。

返回值类型:
方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需 的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。

方法名:
是方法的实际名称。方法名和参数表共同构成方法签名。

参数类型:
参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。

形式参数:在方法被调用时用于接收外界输入的数据。
实参:调用方法时实际传给方法的数据。

方法体:
方法体包含具体的语句,定义该方法的功能。

分类

  • 无参无返回值方法
public class JavaTest {
	//定义一个名为print的方法,并且输出值
	public void print() {
		System.out.println("JavaTest ");
	}
	public static void main(String[] args) {
		//main方法中调用print方法
		JavaTest test = new JavaTest ();//创建对象,对象名为test
		//通过对象名.方法名()的形式进行调用
		test.print();
		//JavaTest test = new JavaTest ();
		test.show();//调用show方法
	}	
	//无参数无返回值的操作
	
	public void show() {
		System.out.println("show");
		
	}
}
  • 无参带返回值方法
public class JavaTest {	
	public static void main(String[] args) {
		//首先创建一个名为scores的对象
		JavaTest scores = new JavaTest ();
		//调用方法并且接收返回值,保存在变量score中
		int score = scores.classSum();
		System.out.println("和为:"+score);
	}	
	//无参数返回值的方法	
	public void classSum() {
		int a =2 ;
		int b =55;
		int sum = a+b ;
		return sum;		
	}
}
  • 带参数无返回值方法
public class JavaTest {	
	public static void main(String[] args) {
		//创建一个对象
		JavaTest scores = new JavaTest ();
		//调用show方法,并且传递参数
		scores .show("博客");
		scores .calcAvg(87, 91);

	}	
	//创建一个带参数的方法
	public void show(String name) {//String为参数类型,name为参数名
		System.out.println("欢迎您!"+name+"。");
	}
	//无参数无返回值的操作	
	public void calcAvg(double score1,double score2){
	     double sum = score1 + score2;
	     double avg = sum / 2;
	     System.out.print("平均分:"+avg);
	 }
}
  • 带参数带返回值方法
public class JavaTest {	
//创建一个带参数的方法
	public void show(String name) {//String为参数类型,name为参数名	
		System.out.println("欢迎您!"+name+"。");
	}
	public static void main(String[] args) {
		JavaTest scores = new JavaTest ();
		scores .show("博客");
	}		

}

方法的重载

public static double max(double num1, double num2) {
    if (num1 > num2)
    return num1;
    else
    return num2;
}

public static int max(int num1, int num2) {
    int result;
    if (num1 > num2)
    result = num1;
    else
    result = num2;
    return result;
}

如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用;

如果传递的是double型参数,则double类型的max方法体会被调用,这叫做方法重载;

就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。

Java编译器根据方法签名判断哪个方法应该被调用。

方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。

重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。

可变参数

方法的可变参数的声明如下所示:

typeName... parameterName

在方法声明中,在指定参数类型后加一个省略号(…)
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

public static void main(String[] args) {
    // 调用可变参数的方法
    printMax(34, 3, 3, 2, 56.5);
    printMax(new double[]{1, 2, 3});
}

public static void printMax(double... numbers) {
    if (numbers.length == 0) {
        System.out.println("No argument passed");
        return;
    }
    double result = numbers[0];
    //排序!
    for (int i = 1; i < numbers.length; i++) {
        if (numbers[i] > result) {
            result = numbers[i];
        }
    }
    System.out.println("The max value is " + result);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值