Java基础学习(三):方法的定义和使用、可变参数

Java基础学习(三):方法的定义和使用、可变参数

一、方法

  • 其他语言称之为“函数”,Java称之为“方法”。
  • 它是一组通用性的操作。
    - 比如求正弦值,获得某天日期
  • 返回值可有可无。
  • Java提供了超过1200个自带的函数方法
  • 可以调用第三方方法(代码复用)

二、方法定义何使用
1、方法的格式:[权限,修饰] [返回类型] 方法名 ([参数类型] 参数名 ...){ // 具体语句 }

  • 权限,修饰:访问权限,告诉编译器如何调用该方法。
  • 返回类型:方法执行完成后,返回的类型。可为空void。
  • 方法名:命名规则同变量名。
  • 方法参数:也称入参,是指调用一个方法时可以传递的参数,参与方法体运算的变量,每个参数需要定义参数类型,参数可以是多个,可以是空。

2、例如:public static void main(String[] args ){}
3、方法及调用示例:

public class great {
	
	public static void way1(String name , int age , String dream) {//这是一个方法.
		System.out.println("我的名字是" + name + ", 我的年龄是" + age + ", 我的梦想是" + dream);
	}
	
	public static void main(String[] args) {//这是一个主方法
		way1("lee" , 21 , "become a successful man");
	}
}
//------------输出----------------
我的名字是lee, 我的年龄是21, 我的梦想是become a successful man

三、Java方法的特点

  • 不能独立存在,必须定义在类中。
  • 必须有main方法开始执行。
  • 不支持默认参数。

四、方法参数

为了理解方法参数的传递,需要介绍Java的两种底层存储形式。
Java中的变量分为基本类型和引用类型,基本变量保存 数值本身 ,引用变量保存 引用内存空间的地址 。

1、按值传递

  • 按值传递会将实参的值赋值给对应的形参,在函数内部操作是针对形参进行的,操作不影响 实参。
  • 示例代码:
public class great {
	
	public static void way1(int num) {//这是一个方法.
		
		System.out.println("此时在函数内部的形参:" + num);
		num += 100 ;
		System.out.println("此时在函数内部的形参:" + num);
		
	}
	
	public static void main(String[] args) {//这是一个主方法
		
		int num = 10 ;
		System.out.println("此时实参为:" + num);
		way1(num);
		System.out.println("此时实参为:" + num);
	}
}
//---------------输出---------------
此时实参为:10
此时在函数内部的形参:10
此时在函数内部的形参:110
此时实参为:10

2、按引用传递

  • 按引用传递就是将实参的内存地址传递给形参,,在方法中的操作都会影响到实参本身。
  • 示例代码:
package firstpack;

public class experiment {//先建立一个类
		public static int num ;
}
package firstpack;//这是一个包

public class great {
	
	public static void way1(experiment num) {//这是一个方法.
		
		System.out.println("此时在函数内部的形参:" + experiment.num);
		experiment.num += 100 ;
		System.out.println("此时在函数内部的形参:" + experiment.num);
		
	}
	
	public static void main(String[] args) {//这是一个主方法
		
		experiment num = new experiment();//引用类
		experiment.num = 5;
		System.out.println("此时实参为:" + experiment.num);
		way1(num);
		System.out.println("此时实参为:" + experiment.num);
	}
}
//--------------输出-------------
此时实参为:5
此时在函数内部的形参:5
此时在函数内部的形参:105
此时实参为:105

3、基本类型的包装类,是immutable类型,没有提供自身修改的函数,可理解为按值传递。

五、方法的返回值

  • 方法计算结果,返回的数据类型同传入实参相同。
  • 可以是任意类型,也可以为空void。
  • return执行到,就会强制返回,不会继续执行后面的语句。
  • 方法传入类型必须与返回类型相同。
  • 示例代码:
public class great {
	
	public static double way1(double num) {//这是一个方法.
		
		return num*num ;
	}
	
	public static void main(String[] args) {//这是一个主方法
		System.out.println("输出结果为:" + way1(4));
	}
}

六、命令行参数

  • 本质是参数传递——由调用者(系统)传递给方法(main)的参数。
  • 参数规定为字符串数组。
  • 类似Linux命令

七、可变参数

  • 参数列表不限定个数,一个方法只允许有一个参数。
  • [修饰符] [返回类型] 方法名 ([参数类型]...参数名){//语句}
  • 可变参数被处理为数组,可被遍历。
  • 示例代码:
public class great {
	
	public static void way1(int num ,String...str) {//这是一个方法.
		for(String str1 : str) {
			System.out.println("这是一个可变参数:" + str1);
			num ++ ;
		}
		System.out.println("共执行:" + num + "次");
	}
	
	public static void main(String[] args) {//这是一个主方法
		way1(0 ,"a","b","c","hahahahaa");
	}
}
//---------------输出--------------
这是一个可变参数:a
这是一个可变参数:b
这是一个可变参数:c
这是一个可变参数:hahahahaa
共执行:4
发布了11 篇原创文章 · 获赞 11 · 访问量 757

猜你喜欢

转载自blog.csdn.net/weixin_43818177/article/details/105023981