当前位置: 技术问答>java相关
只读类的一个问题
来源: 互联网 发布时间:2017-04-06
本文导语: //: Immutable1.java public class Immutable1 { private int data; public Immutable1(int initVal) { data = initVal; } public int read() { return data; } public boolean nonzero() { return data != 0; } public Immutable1 quadruple()...
//: Immutable1.java
public class Immutable1 {
private int data;
public Immutable1(int initVal) {
data = initVal;
}
public int read() { return data; }
public boolean nonzero() { return data != 0; }
public Immutable1 quadruple() {
//此处明明新建了一个对像,并且返回这个新对像,后面的(见闻注解)
return new Immutable1(data * 4);
}
static void f(Immutable1 i1) {
Immutable1 quad = i1.quadruple();
System.out.println("i1 = " + i1.read());
System.out.println("quad = " + quad.read());
}
public static void main(String[] args) {
Immutable1 x = new Immutable1(47);
System.out.println("x = " + x.read());
f(x);
//此时,x对象变量指向的对象仍然为47??,如果是String我能理解
System.out.println("x = " + x.read());
}
}
结果是:
x = 47
i1 = 47
quad = 188
x = 47
public class Immutable1 {
private int data;
public Immutable1(int initVal) {
data = initVal;
}
public int read() { return data; }
public boolean nonzero() { return data != 0; }
public Immutable1 quadruple() {
//此处明明新建了一个对像,并且返回这个新对像,后面的(见闻注解)
return new Immutable1(data * 4);
}
static void f(Immutable1 i1) {
Immutable1 quad = i1.quadruple();
System.out.println("i1 = " + i1.read());
System.out.println("quad = " + quad.read());
}
public static void main(String[] args) {
Immutable1 x = new Immutable1(47);
System.out.println("x = " + x.read());
f(x);
//此时,x对象变量指向的对象仍然为47??,如果是String我能理解
System.out.println("x = " + x.read());
}
}
结果是:
x = 47
i1 = 47
quad = 188
x = 47
|
在程序中我们把一个值放到Immutable1类里,用Immutable1类中的变量data来存储这个值,当需要的时候就用这各类的对象(x)来调用这各类的read()-----读取这个值。事实上类Immutable1提供了一个更改这个存储值的方法,那就是Immutable1的构造方法public Immutable1(int initVal)!
|
倒~~x 是一个对象,它不是指向47,你的f(Immutable1 i1) 中,传递的是对象的一个引用,不是String,嘿嘿~~不过你也可以重载啊~~那就可以用String了
|
up
|
用String~
up
up
|
楼上说的都差不多了
|
你的x变量从开始创建就一直没有发生过任何改变。
为什么不应该是47?
为什么不应该是47?
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。