概述
刚学Java不久,遇到几个问题,想不明白,请教各位大大,见笑了!classsLetter{charc;}publicclassPassObject{staticvoidf(Lettery){y.c='z';}publicstaticvoidmain(String[]args){Let...
刚学Java不久,遇到几个问题,想不明白,请教各位大大,见笑了!
classs Letter{
char c;
}
public class PassObject{
static void f(Letter y){
y.c = 'z';
}
public static void main(String [] args){
Letter x = new Letter()
x.c = 'a';
print("1: x.c:" + x.c);
f(x);
print("2: x.c:" + x.c);
}
}/* Output:
1: x.c: a
1: x.c: z
*/
________________________________________________
public class EqualsMethod{
public static void main(String [] args){
Integer n1 = new Integer(20);
Integer n2 = new Integer(20);
System.out.println(n1.equals(n2));
}
}/* Output:
true
*/
________________________________________________
class Value{
int i;
}
public class EqualsMethod2{
public static void main(String [] args){
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 60;
System.out.println(v1.equals(v2));
}
}/* Output:
false
*/
________________________________________________
我的疑惑:
在第一段代码中
①对"c"的调用是不是一定要采用*.c的方式;
②方法f(Letter y)的参数列表是什么意思?我只明白f(int y),表示可以传一个变量一进来,且类型为int类型,可是这里Letter为一个类,我就不明白了;
③f(x);语句我不明白,此处"x"为一个对象引用,将他传入方法f()里,那么方法f()是不是就变成x.c = 'z'这样了呢?
在第二段代码中
我很容易理解“n1.equals(n2)”代表的是比较n1与n2的实际内容的值,而非引用地址。
在第三段代码中
我就不明白了,为什么不想等了呢?
________________________________________________
希望有大大能帮我分析一下 第一段代码 以及 第三段代码的方法调用及赋值是怎样进行的,以及他们的内存分配是怎样的。
阿莉丫哆菓咋一玛斯!!!
展开
最后
以上就是不安唇彩为你收集整理的java 定义别名_Java 方法调用别名 与 内存分配 问题的全部内容,希望文章能够帮你解决java 定义别名_Java 方法调用别名 与 内存分配 问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复