| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 543 人关注过本帖
标题:被注释掉的代码为什么不能改变 salary
取消只看楼主 加入收藏
cl8972
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-12-8
结帖率:0
收藏
已结贴  问题点数:10 回复次数:2 
被注释掉的代码为什么不能改变 salary
import *;
import java.util.*;
public class ObjectStreamTest2 {
    public static void main(String[] args) {
        Employee[] staff = new Employee[3];
        staff[0] = new Employee("马云",12345);
        staff[1] = new Employee("马化腾",1000000000);
        staff[2] = new Employee("李彦宏",1000000000);
        int i;//变量在用之前必须要用付处置,在此没有付初值,在for()循环时付了初值
        float bySalary;
        try {
            ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("./staff.dat"));
            os.writeObject(staff);
            os.close();

            System.out.println("before change:");
            for(i=0;i<staff.length;i++) {
                staff[i].print();//直接把对象输出是错误的,要通过调用print()
            }

            ObjectInputStream in = new ObjectInputStream(new FileInputStream("./staff.dat"));
            Employee[] newStaff = (Employee[])in.readObject();
            in.close();

            /*System.out.println("please enter bySalary: ");
            DataInputStream ds = new DataInputStream(System.in);
            bySalary = ds.readFloat();
            System.in.skip(2);*/

            for(i=0;i<newStaff.length;i++) {
                newStaff[i].raiseSalary(100);
            }

            System.out.println("after change:");

            for(i=0;i<newStaff.length;i++) {
                newStaff[i].print();
            }


        } catch(Exception e) {
            e.toString();
            System.exit(-1);
        }
    }

    static class Employee implements Serializable {
                String name;
                int salary;

                public Employee(String name,int salary) {
                    this.name = name;
                    this.salary = salary;
                }

                public float raiseSalary(float bySalary) {
                    salary *= (1 + bySalary/100);
                    return salary;
                }

                public void print() {
                    System.out.println(name + ' ' + salary);

                }

            }



}
搜索更多相关主题的帖子: 李彦宏 马化腾 public import 
2014-12-08 16:10
cl8972
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-12-8
收藏
得分:0 
回复 3楼 liao06550107
谢谢
2014-12-09 16:34
cl8972
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-12-8
收藏
得分:0 
回复 3楼 liao06550107
我想动态的输入数据,改变salary变化率,还是试不出来
求指教!

[ 本帖最后由 cl8972 于 2014-12-9 19:53 编辑 ]
2014-12-09 17:06
快速回复:被注释掉的代码为什么不能改变 salary
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017551 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved