学习《Java核心技术卷1:基础知识》中对象与类一章中遇到的问题
来源:互联网 发布:线切割锥度编程 编辑:程序博客网 时间:2024/05/01 06:50
P101
4.3用户自定义类
①Employee类的代码要注意内部类问题;
②同一个包中类的重名问题,尤其是写在同一个文件中的类;
package class20110906;import java.util.Date;import java.util.GregorianCalendar;//import EmployeeTest20110906.Employee;public class EmployeeTest {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub// fill the staff array with three Employee objectsEmployee[] staff = new Employee[3];//new Employee("James Bond", 100000, 1950, 1, 1);//Eclipe提示下面三行出错了,注意Employee的内部类问题staff[0] = new Employee("Carl Cracker", 75000, 1987, 11, 15);staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);staff[2] = new Employee("Tony Tester", 40000, 1990, 3, 15);// raise everyone's salary by 5%for (Employee e : staff)e.raiseSalary(5);// print out information about all Employee objectsfor (Employee e : staff)System.out.println("name=" + e.getName() + ",salary="+ e.getSalary() + ",hireDay=" + e.getHireDay());}}class Employee {//该正后,Eclipse提示这个类早已被定义public Employee(String n, double s, int year, int month, int day) {this.name = n;this.salary = s;GregorianCalendar calendar = new GregorianCalendar(year, month - 1,day);// GregorianCalendar uses 0 for Januarythis.hireDay = calendar.getTime();}public String getName() {return this.name;}public double getSalary() {return this.salary;}/** * 不要编写返回引用可变对象的访问器方法,会产生下列问题 * Employee harry = ...; * Date d = harry.getHireDay(); * double tenYearsInMilliSeconds = 10 * 365.25 * 24 * 60 * 60 * 1000; * d.setTime(d.getTime() - (long) tenYearsInMilliSconds) *let's give Harry ten years added seniority多增加了十年的工龄 * * 措施:先对其克隆再返回 * * @return *//*public Date getHireDay() {return this.hireDay;}*/public Date getHireDay(){return (Date) this.hireDay.clone();}public void raiseSalary(double byPercent) {double raise = this.salary * byPercent / 100;this.salary += raise;}private String name;private double salary;private Date hireDay;}
- 学习《Java核心技术卷1:基础知识》中对象与类一章中遇到的问题
- [学习笔记] Java核心技术 卷一:基础知识 对象与类、继承(二)
- Java核心技术(卷1):基础知识
- Java 核心技术 卷1 基础知识 List 13.1
- [学习笔记] Java核心技术 卷一:基础知识 接口、lambda表达式与内部类(三)
- 面向对象类间关系 摘自【java核心技术 卷1 基础知识 原书第8版】
- [学习笔记] Java核心技术 卷一:基础知识 Java 的基本程序设计结构(一)
- Java核心技术卷I基础知识-学习笔记(一)
- [学习笔记] Java核心技术 卷一:基础知识 集合(六)
- [学习笔记] Java核心技术 卷一:基础知识 并发(七)
- Java核心技术 卷1 学习笔记
- Java核心技术卷一学习笔记1
- java核心技术卷一学习 2016.12.1
- 重读《Java 2核心技术 卷1 基础知识》 其一基本数据类型
- Java核心技术 卷1 基础知识 原书第9版 中文版
- 【笔记】Java核心技术 卷1 基础知识 第一章 读书笔记
- 《Java核心技术 卷1 基础知识 原书第9版》pdf:
- 《Java核心技术 卷1 基础知识 原书第9版》pdf
- 【经验总结】Bash Pitfalls(原创翻译)
- Linux 下监测指定路径下指定时间间隔内是否有指定的文件的生成
- Singleton学习笔记
- 第一篇blog
- 9-6课堂笔记
- 学习《Java核心技术卷1:基础知识》中对象与类一章中遇到的问题
- HDU 3944
- MFC Windows程序设计(第二版)第一章笔记
- Android定位功能(二)
- NYoj 103 大数相加
- Gamebryo3.0SDK翻译-Lightspeed介绍
- Linux目录解释(蛮全)
- 利用ffmpeg框架扩展android平台解码器
- Gamebryo3.0SDK翻译-NiMesh