黑马程序员技术交流社区

标题: String [打印本页]

作者: vipzh    时间: 2012-12-2 17:39
标题: String
怎样理解String类是一个不可变类?
作者: xjandrew    时间: 2012-12-2 18:08
不可变类:创建该类的实例后,该实例的属性是不可改变的。
java提供的包装类和java.lang.String类都是不可变类。当创建它们的实例后,其实例的属性是不可改变的。

自定义一个不可变类

Class Name
{
    private String firstName;
    private String lastName;
    public Name(String firstName ,String lastName)
    {
              this.firstName = firstName ;
              this.lastName = lastName ;
    }
    public String getfirstName()
    {
             return firstName ;
    }
    public String getlastName()
    {
             return lastName ;
    }

}

1.使用private 和final修饰符修饰变量。

2.提供带参数的构造器用于根据参数来初始化类里的属性。

3.仅为该类的属性提供getter方法,不提供setter方法。

4.如果有必要,重写Object类中的equals方法和hashCode方法

作者: 丁桂松    时间: 2012-12-2 23:36
翻开api 找到Strng  你发现他是用final修饰的类.因此你懂得什么是final就懂得为何String 不可变了.api是超级大师写出来的.无人比他的注释更有权威性.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2