课外天地 李树青学习天地Java程序语言课件 → [推荐]Java授课视频第六课:面向对象——封装之二


  共有19584人关注过本帖平板打印复制链接

主题:[推荐]Java授课视频第六课:面向对象——封装之二

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1939 积分:26594 威望:0 精华:34 注册:2003/12/30 16:34:32
带有相加和约分功能的分数类  发帖心情 Post By:2011/3/27 14:32:32 [只看该作者]

class FS {
        private int fz = 1;
        private int fm = 1;

        public FS() {
        }

        public FS(double d) {
                int decimalCount = 1;
                int dLen = String.valueOf(d).length();
                for (int i = 0; i < dLen; i++) {
                        d = d * 10;
                        decimalCount *= 10;
                }
                fz = (int) d;
                fm = decimalCount;
                yf();
        }

        public FS(int fz, int fm) {
                setFS(fz, fm);
        }

        public int getFz() {
                return fz;
        }

        public void setFz(int fz) {
                this.fz = fz;
        }

        public int getFm() {
                return fm;
        }

        public void setFm(int fm) {
                if (fm != 0)
                        this.fm = fm;
                else
                        fm = 1;
        }

        public void setFS(int fz, int fm) {
                setFz(fz);
                setFm(fm);
        }

        public String toString() {
                return fz + "/" + fm;
        }

        public FS plus(FS fs) {
                FS result = new FS();
                result.setFz(fz * fs.fm + fs.fz * fm);
                result.setFm(fm * fs.fm);
                result.yf();
                return result;
        }

        public void yf() {
                int minValue = Math.min(Math.abs(fz), Math.abs(fm));
                for (int i = minValue; i >= 1; i--) {
                        if (fz % i == 0 && fm % i == 0) {
                                fz = fz / i;
                                fm = fm / i;
                                break;
                        }
                }
        }
}

public class Exec {
        public static void main(String[] args) {
                FS fs1 = new FS(0.5);
                FS fs2 = new FS(3, 5);
                FS fs3 = fs1.plus(fs2);
                System.out.println(fs3);
        }
}


 回到顶部