<span style="font-family:SimHei;font-size:14px;">今天讲的内容之一,java的参数传递。第一次这么一行一行的去标注代码,但确实这样才能真正理解每一行代码的意思。这大致就是我所理解的意思,望指正。</span>
<span style="font-family:SimHei;font-size:14px;">
</span>
<span style="font-family:SimHei;font-size:14px;">package com.farsight.shine;
public class Entry {
public static void main(String[] args) {
// 如果是基本数据类型,传递的就是数据本身。如果是引用数据类型,传递的就是引用变量的值(地址)
// //基本类型转换 传递的就是数据本身
// int b = 5; //定义b, 并对b初始化
// Entry mEntry = new Entry(); //定义一个Entry类的对象mEntry,new(开辟)一个空间
// mEntry.increment(b); //调用mEntry对象的成员方法increment,并将b的值传递给成员方法increment
// System.out.println(b); //打印b的值
// //引用类型传递 传递的就是引用变量的值(地址)
// Number m = new Number(10, 10); //定义一个Number类的对象m,new(开辟)一个空间
// Entry mEntry = new Entry(); //定义一个Entry类的对象mEntry,
// mEntry.increment(m); //引用成员方法,并将m指向的地址传递给成员方法increment
// System.out.println(m.n); //打印出对象m中成员变量n的值
// System.out.println(m.k); //打印出对象m中成员变量k的值
//String类型传递 传递的就是引用变量的值(地址)
String str = "hello"; //定义一个String类型的变量str,初始化为“hello”
Entry mEntry = new Entry(); //定义一个Entry类的对象mEntry
mEntry.change(str); //引用成员方法change, 并将str指向的地址传递给成员方法change
System.out.println(str); //打印出str的值
}
//传递基本数据类型
public void increment(int a) {
a ++; //入口函数(main)中将b的值传递给a,a的值改变,但b的值并未改变
}
//传递引用类型
public void increment(Number w) { //入口函数(main)中将m指向的地址传递给w, m和w同时指向同一个对象
w.n ++; //w所指向的对象的成员变量n,并作自加
w.k --; //w所指向的对象的成员变量k,并作自减
}
//传递String类型
public void change(String s) { //入口函数(main)中将变量str指向的地址传递给s
s = "word"; //s重新指向另一片堆区,内容为“word”
}
}
class Number { //创建一个Number类
int n; //定义一个成员变量n
int k; //定义一个成员变量k
public Number(int i, int j) { //构造器对成员变量初始化
n = i; //初始化为i
k = j; //初始化为j
}
}
</span>