您的位置:首页 > 编程语言 > Java开发

java核心技术笔记 对象与类

2015-04-12 14:43 381 查看
1. 不要编写返回引用可变对象的访问器方法,会破坏封装性,会改变改对象的私有状态

如需要返回一个可变数据域的拷贝,就应该使用clone 书P113

class Employee {
privateDate hireDay;
…
publicDate getHireDay() {
returnhireDay;     //return hireDay.clone();
}
}


2. Date与Calendar

public class Main {
public static void main(String[] args) {

Calendar c = Calendar.getInstance();
// 使用pattern
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd H:m:s");
System.out.println(format.format(c.getTime()));
// 使用约定格式
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.MEDIUM);
System.out.println(dateFormat.format(c.getTime()));
}
}


3. Java程序设计语言对对象采用的不是引用调用,实际上,对象引用进行的是对象引用的拷贝
call-by-value[-of-the-reference]
的传递。P123

public static void swap(Employeex, Employee y ) //doesn’t work
{
Employeetemp = x;
x= y;
y= temp;
}


下面总结一下Java程序设计语言中方法参数的使用情况:

一个方法不能修改一个基本数据类型的参数(即数值型和布尔型)。
一个方法可以改变一个对象参数的状态。
一个方法不能让对象参数引用一个新的对象。

4. 调用另一个构造器

如果构造器的第一个语句形如this(…),这个构造器将调用同一个类的另一个构造器。P133

public Employee(double s)
{
//callsEmployee(String ,double)
this(“Employee#” + nextId, s);
nextId++;
}


当调用newEmployee(60000)时,Employee(double) 构造器将调用Employee (String, double)构造器。

采用这种方式使用this关键字非常有用,这样对公共的构造器代码部分只编写一次即可。

5. 静态初始化块是对类而言,非静态初始化块是对对象而言。this()和super()都指的是对象,所以,均不可以在static环境中使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: