JAVA self study note3

来源:互联网 发布:网络词汇2017 编辑:程序博客网 时间:2024/06/10 00:20

JAVA中面向对象的编程思想

我们经常会创造一些对象使得他们的内容不被修改。称一个对象是不可改变的对象(immutable objects),称其类为不变类(immutable class),若需要访问私有变量,则必须使用方法去访问。

如果一个类是不可变的,其所有的数据域必须是私有的,也不能包含公有的set方法。但是,不包含设置set方法和公有变量的类不一定是不可变类。

比如下面的代码:

package com.shikun;public class Student {private int id;private String name;private java.util.Date dataCreated;public Student(int ssn, String newname){id=ssn;name=newname;dataCreated=new java.util.Date();//实例化一个日期类}public int getId(){return id;}public String getName(){return name;}public java.util.Date getDateCreated(){return dataCreated;}}
测试上述类

package com.shikun;public class Test4 {public static void main(String[] args) {// TODO Auto-generated method stubStudent s1=new Student(1112233, "JECK");java.util.Date dateCreated=s1.getDateCreated();dateCreated.setTime(200000);//可以修改日期了。}}
可以在类外修改,所以类也并不是不能改变的。

要使一个类是不可更改的必须具备三个条件

1,所有的数据域必须是私有的

2,不能有任何设置数据域的方法

3,没有访问方法可以返回数据域的引用。

例如下面这个就不属于不可变类

public class A{ private int[] values; public int[] getValues{ return values; }}


0 0
原创粉丝点击