前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用java对与具有共享对象的数据进行序列化

使用java对与具有共享对象的数据进行序列化

作者头像
用户2436820
发布2018-09-05 10:32:25
1.6K0
发布2018-09-05 10:32:25
举报
文章被收录于专栏:奔跑的蛙牛技术博客

objectStream.java

代码语言:javascript
复制
package randomAccess;

import Employee.Employee;
import Employee.Manager;

import java.io.*;


public class objectStream {
    public static void main(String[] args) throws ClassNotFoundException{
        Employee harry = new Employee("harry",50000d,1989,10,1);
        Manager carl = new Manager("carl",8000d,1983,12,22);
        carl.setSecretary(harry);
        Manager tony = new Manager("tony",4000d,1990,3,15);
        tony.setSecretary(harry);
        Employee[] staff = new Employee[3];
        staff[0] = carl;
        staff[1] = harry;
        staff[2] = tony;
        try(ObjectOutputStream out = new ObjectOutputStream((new FileOutputStream("employee.dat")))){
            out.writeObject(staff);
        }catch (IOException e){
            System.out.println(e);
        }
        try(ObjectInputStream in = new ObjectInputStream(new FileInputStream("employee.dat"))){

            Employee[] newStaff = (Employee[])in.readObject();

            //raise secretary's salary

            newStaff[1].raiseSalaryt(10);
            for (Employee e:newStaff
                 ) {
                System.out.println(e);
            }
        }catch (IOException e){

        }
    }
}
##  Employee

package Employee;

import java.io.Serializable; import java.time.LocalDate;

public class Employee implements Serializable{ private String name; private double salary; private LocalDate hireDay; public Employee(String name,Double salary,int year,int month, int day ){ this.name = name; this.salary = salary; this.hireDay = LocalDate.of(year,month,day); }

代码语言:javascript
复制
public String getName() {
    return name;
}

public double getSalary() {
    return salary;
}

public LocalDate getHireDay() {
    return hireDay;
}

public void setName(String name) {
    this.name = name;
}

public void setSalary(double salary) {
    this.salary = salary;
}

public void setHireDay(LocalDate hireDay) {
    this.hireDay = hireDay;
}
public void raiseSalaryt(double byPercent){
    double raise = salary*byPercent/100;
    salary+=raise;
}

@Override
public String toString() {
    return "Employee{" +
            "name='" + name + '\'' +
            ", salary=" + salary +
            ", hireDay=" + hireDay +
            '}';
}

}

Manager

代码语言:javascript
复制
package Employee;

import java.io.Serializable;

public class Manager extends Employee implements Serializable{
    private double bouns;
    private Employee secretary;

    public void setSecretary(Employee secretary) {
        this.secretary = secretary;
    }

    public Manager(String name, double salary, int year, int month, int day) {
        super(name,salary,year,month,day);
        bouns = 0;
    }
    public double getSalary(){
        double baseSalary = super.getSalary();
        return baseSalary+bouns;
    }
    public void setBouns(double d){
        bouns = d;
    }
}

运行结果截图

image.png

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.08.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • objectStream.java
  • Manager
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档