Java学习笔记——面向对象之方法

    方法是类或对象的行为特征的抽象。方法不能独立存在,方法必须属于类或对象。定义方法,只能在类体内定义,不能独立定义一个方法,一旦将一个方法定义在某个类的类体重,如果这个方法使用了static修饰,则这个方法只属于这个类,否自这个方法属于这个类的实例。

    执行方法时必须使用类或对象来作为调用者,即所有的方法必须使用“类.方法”或者“对象.方法”的形式来调用,同一个类的一个方法调用另外一个方法时,如果被调用的方法时普通方法,则默认使用this作为调用者;如果被调用方法时静态的方法,则弄人使用类作为调用者

    Java里方法的参数传递方式只有一种:值传递。实例代码如下:

public class PrimitiveTransferTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a = 5;
		int b = 7;
		swap(a,b);
		
	}

	private static void swap(int a, int b) {
		// TODO Auto-generated method stub
		int tmp = a;
		a = b;
		b = tmp;
		System.out.println("swap: a:"+a+" b: "+b);
	}

}

    从jdk1.5之后,java允许定义形参个数可变的参数,从而允许为方法指定数量不确定的形参。如果定义方法时,在最后一个形参的类型后增加(...),则表明该形参可以接受多个参数值,多个参数值被当成数组传入。实例程序如下:

public class Varargs {
	public static void test(int a, String...names){
			for (String tmp : names){
				System.out.println(tmp);
			}
			System.out.println(a);
			
		}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		test(3,"Jack","Bob","Jason");
	}

}

    递归方法:一个方法体内调用它自身,被称为方法递归。方法递归包含了一种隐式的循环,它会重复某段执行代码,但这种重复执行无须循环控制。如定义一个数学数列:f(0) = 1, f(1) = 4, f(n+2) = 2*f(n+1)+f(n), 求f(10)。

public class Recursive {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(fn(10));
	}

	private static int fn (int i) {
		// TODO Auto-generated method stub
		if(i==0){
			return 1;
		}
		else if (i == 1){
			return 4;
		}
		else {
			return 2*fn(i-1)+fn(i-2);
		}
		
	}

}

    方法的重载:Java允许同一个类里定义多个同名方法,函数名相同,形参不同,具体如下代码实例:

public class Overload {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Overload o1 = new Overload();
		o1.test();
		o1.test("java");
	}

	private void test() {
		// TODO Auto-generated method stub
		System.out.println("null");
	}

	private void test(String string) {
		// TODO Auto-generated method stub
		System.out.println("hello "+string);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值