java怎么新建类没有public_在创建java中如何创建只读类

本文通过一个简单的例子展示了如何在Java中创建只读类。只读类的所有数据成员设置为private,不提供修改数据的公共方法。类中虽然有quadruple()方法,但它返回了一个新的Immutable1对象,原对象保持不变。这种方法确保了对象在别名使用时不会因修改而受到影响。
摘要由CSDN通过智能技术生成

完全可以创建自己的只读类,下面是个简单的例子:

//: Immutable1.java

// Objects that cannot be modified

// are immune to aliasing.

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);

System.out.println("x = " + x.read());

}

} ///:~

e787b3e089b1763db996591b25922e5b.png

所有数据都设为private,可以看到没有任何public方法对数据作出修改。事实上,确实需要修改一个对象的方法是quadruple(),但它的作用是新建一个Immutable1对象,初始对象则是原封未动的。

方法f()需要取得一个Immutable1对象,并对其采取不同的操作,而main()的输出显示出没有对x作任何修改。因此,x对象可别名处理许多次,不会造成任何伤害,因为根据Immutable1类的设计,它能保证对象不被改动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值