本帖最后由 xiao_ming 于 2015-10-31 15:55 编辑
第Ⅱ期Android菜鸟饭团#Java学习#第十课 活动笔记
1.按值传递和按引用传递的区别 【按值传递】 public class TempTest { private void test1(int a) { // 做点事情 a++; }
public static void main(String args[]) { TempTest t = new TempTest(); int a = 3; t.test1(a);//这里传递的参数a就是按值传递。 System.out.printIn("main方法中的a===" + a); } } |
按值传递的重要特点: 传递的是值的拷贝,也就是说传递后就互不相关了。第9行的a和第2行的a是两个变量,当改变第2行的a的值,第9行a的值是不变的,所以打印结果是3。 main 方法中的a 为 3 test1 方法中的a 为 4
我们把第9行的a称之为实参,第2行的a称之为形参;对于基本数据类型,形参数据的改变,不影响实参的数据。 【按引用传递】 public class TempTest { private void test1(A a) { a.age = 20; System.out.printIn("test1方法中的age="+a.age); } public static void main(String args[]) { TempTest t = new TempTest(); A a = new A(); a.age = 10; t.test1(a);// 这里传递的参数a就是按引用传递 System.out.printIn("main方法中的age="+a.age); } } classA { public int age = 0; } |
按引用传递的重要特点: 传递的是值的引用,也就是说传递前和传递后都指向同一个引用 test1方法中的age = 20 main方法中的age = 20
2.下面的例子演示了如何定义一个方法,以及如何调用它: public class TestMax { /** 主方法 */
public static void main(String[] args) {
int i = 5; int j = 2;
int k = max(i, j);
System.out.println("The maximum between " + i +
" and " + j + " is " + k);
} /** 返回两个整数变量较大的值 */
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
} The maximum between 5 and 2 is 5 |
这个程序包含main方法和max方法。main方法是被调用的,除此之外,main方法和其它方法没什么区别。 main方法的头部是不变的,如例子所示,带修饰符public和static,返回void类型值,方法名字是main,此外带个一个String[]类型参数。String[]表明参数是字符串数组。
每一个技术小白都有一个成为大神的梦想,现在Android菜鸟饭团就给你这个成就梦想的机会。我们提供最新的Android技术教学,只要你又耐心和毅力就一定会在这里有所收获。 Android菜鸟饭团由 南阳GDG组织发起,秉承着开放、分享、创新的原则,希望通过GDG社区的力量能够给更多的想要学习Android开发技术的小白们创造一个学习,交流,分享的环境。同往常的GDG活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。
|