• 有理数类的设计


    1.有理数类的设计

    package rati;
    
    public class Rational {
        private int num;//分子
        private int den;//分母
        public Rational (int num,int den)//构造函数
        {
            this.num = num;
            this.den = den;
        }
    	public int getNumerator()//获取分子
        {
            return this.num;
        }
        public int getDenominator()//获取分母
        {
            return this.den;
        }
        public Rational add(Rational first, Rational second)//加法
        {
            int n = first.num * second.den + second.num * first.den;
            int d = first.den * second.den;
            return new Rational(n,d);
        }
    
        public Rational subtract(Rational first,Rational second)//减法
        {
            int n = first.num * second.den - second.num * first.den;
            int d = first.den * second.den;
            return new Rational(n,d);
        }
    
        public Rational multiply(Rational first,Rational second)//乘法
        {
            int n = first.num * second.num;
            int d = first.den * second.den;
            return new Rational(n,d);
        }
    
        public Rational divide(Rational first,Rational second)//除法
        {
            int n = first.num * second.den;
            int d = first.den * second.num;
            return new Rational(n,d);
        }
    
        public boolean equal(Rational first,Rational second) //判断是否相等
        {
            if ((first.num == second.num)&(first.den == second.den)) {
                return true;
            } else {
                return false;
            }
        }
    
        public int intValue()//返回整数
        {
            return this.num / this.den;
        }
    
        public String toString()//返回字符串
        {
            return this.num + "/" + this.den;
        }
    }
    

    2.测试代码

    package rati;
    import java.util.Scanner;
    
    public class App {
    	public static void main(String[] args)  
        {
    		Scanner sc=new Scanner(System.in);
    		while(sc.hasNext())
    		{
    			int a=sc.nextInt(),b=sc.nextInt(),c=sc.nextInt(),d=sc.nextInt();
    			Rational R1= new Rational(a,b),R2=new Rational(c,d);
    			Rational R;
    			R= R1.add(R1, R2);
    			System.out.println("加法有理数值是:"+R);
    			R=R1.subtract(R1, R2);
    			System.out.println("减法有理数值是:"+R);
    			R=R1.multiply(R1, R2);
    			System.out.println("乘法有理数值是:"+R);
    			R=R1.divide(R1, R2);
    			System.out.println("除法有理数值是:"+R);
    			}
    		}
        }
    

    3.尝试描述怎么与c语言的有理数代码相比较,为什么你设计的类更加面向对象?
    C语言是面向过程编程,所以如果是C语言,我会用各种函数来完成各种功能。
    JAVA语言是面向对象编程语言,我会把每个类的属性、方法进行封装。
    4.别人如何复用你的代码?
    适用我的有理数包就可以。
    5.别人的代码是否依赖你的有理数类的属性?当你的有理数类的属性修改时,是否会影响他人调用你有理数类的代码?
    会依赖,会影响。
    6.有理数类的public方法是否设置合适?为什么有的方法设置为private?
    合适。有些类只是为了在自己的类中修改,别的类无法修改,保证安全性。

  • 相关阅读:
    sql交集、差集、并集
    控件自适应文本宽度
    pivot列行转换,自动计算分组,解决groupby问题
    echart-scatter使用散点图,带坐标和项目名称
    下载文件根据浏览器判断文件名,解决兼容性问题
    sql中类型转换涉及的性能差异之convert和cast
    js使用正则表达式对文本框进行限制输入
    Aspose.Words.dll根据模板生成word详解
    Windows服务开发
    SqlBulkCopy学习(导入海量数据的类)
  • 原文地址:https://www.cnblogs.com/zzh-draven/p/13766091.html
Copyright © 2020-2023  润新知