Java中普通方法

普通方法

一,定义

把相对独立的某个功能抽象出来,使之成为一个独立的实体称之为方法。

声明格式:

[修饰符] [返回值类型] 方法名 ([参数类型] 参数名1, [参数类型] 参数类型2...[参数类型] 参数名n) 

		方法体执行语句
		
	}
public class MethodDefination {
	public void method() {
		System.out.println("This is a GeneralMethod.");
	}
	
	public static void main(String[] args) {
		MethodDefination MD = new MethodDefination();
		MD.method();
	}
}
// outcome:
		This is a GeneralMethod.

修饰符: 定义了该方法的被访问权限。
方法名: 有效的方法名以字母或下划线开头,后面跟字母,数字或下划线。(一般以小写字母开头)
方法参数: 调用一个方法可以传递的参数,可以是一个或多个参数,也可以没有参数。
方法体: 执行语句
返回类型: 声明定义方法执行完成后返回值的类型

注:
1.Java 中 提供了main()方法,编译后程序会从优先从main方法开始执行;
2.Java中定义的方法不能单独出现,必须定义在类中,

二,方法参数

Java中的变量分为基本类型和引用类型,基本类型变量保存数值本身,引用类型变量保存引用内存空间的地址。

基本类型在定义变量时就分配了空间,定义一个基本类型的变量时必须初始化;
引用类型在定义时,只给变量定义了引用空间,而不分配数据空间,所以不需要初始化。

基本类型:byte, short, long, float, double, char, Boolean;
引用类型:String字符串, 数组,接口,集合类;

当调用方法时需要向方法传递参数,被传入的参数称为实参,而方法定义是的参数为形参

方法间的参数传递分为 按值传递引用传递

1.按值传递
按值传递将实参的值赋值给对应的形参,在函数内部的操作针对形参进行,操作的结果不会影响实参。方法接收到的是原始值的副本,此时内存中存在两个相等的基本类型。

public class ParameterInMethod {
	
	public void calculate(int num) {
		System.out.println("Befor Calculating in method: " + num);
		num++;
		System.out.println("After Calculating in method: " + num);
	}
	
	public static void main(String[] args) {
		int num= 1;
		ParameterInMethod P = new ParameterInMethod();
		
		System.out.println("Befor calling method:" + num);
		P.calculate(num);
		System.out.println("After calling method:" + num);
	}
}
// outcome:
	Befor calling method:1
	Befor Calculating in method: 1
	After Calculating in method: 2
	After calling method:1

2.引用传递
按引用传递就是将实参的内存地址传递给形参,方法中实参和形参都指向同一个内存地址,在方法内部所有对形参的操作都会影响到实参的值

public class ParameterInMethod {
	
	public void calculate(int[] num) {
		System.out.println("Befor Calculating in method: " + num[0] + " + " + num[1] + " = " + num[2]);
		num[2] = num[0] + num[1];
		System.out.println("After Calculating in method: " + num[0] + " + " + num[1] + " = " + num[2]);
	}
	
	public static void main(String[] args) {
		int [] num = new int[3];
		num[0] = 1; //加数
		num[1] = 2; //加数
		num[2] = 0; //和
		ParameterInMethod P = new ParameterInMethod();
		
		System.out.println("Befor calling method: " + num[0] + " + " + num[1] + " = " + num[2]);
		P.calculate(num);
		System.out.println("After calling method: " + num[0] + " + " + num[1] + " = " + num[2]);
	}
	int [] num = new int[3];
}
//outcome
	Befor calling method: 1 + 2 = 0
	Befor Calculating in method: 1 + 2 = 0
	After Calculating in method: 1 + 2 = 3
	After calling method: 1 + 2 = 3

3.方法返回值

方法返回值通过使用可选的返回语句返回,可以返回包括数组和对象的任意类型,返回语句会立即中止函数的运行,并将控制权交回调用该方法的代码行。
关键字 :return
注:
除void以外的其他类型必须使用return返回数值,返回数值的类型必须与方法定义的返回值类型一致。

4.可变参数方法

Java支持在一个方法中传递数量不定(可以是0个可变参数)的同类型参数,即可变参数传递。

声明格式:

[修饰符] [返回值类型] 方法名 ([参数类型]...参数名) 

		方法体执行语句
		
	}
public class VariableMethod {
	
	public void testPrint(String generalParameter, String...variableParameter) {
		System.out.println("General Parameter: " + generalParameter);
		for(String arg:variableParameter) {
			System.out.println("Variable Parameter: " + arg);
		}
	}
	
	public static void main(String[] args) {
		VariableMethod VM = new VariableMethod();
		
		VM.testPrint("This is General Parameter.", "This is Variable Parameter 1.", "This is Variable Parameter 2.");
	}
}
	// outcome:
		General Parameter: This is General Parameter.
		Variable Parameter: This is Variable Parameter 1.
		Variable Parameter: This is Variable Parameter 2.

注:
1.一个方法中可以定义多个参数,但是可变参数只能定义一个,位置必须为方法入参中最后一个参数,任何其他普通参数必须在可变参数之前。

2.可变参数在Java编译时会被处理为一个相应类型的数组

3.当方法重载时,固定参数的方法会被优先调用。
4.当存在两个可变参数入参的同名方法,编译报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值