• BigDecimal类以面向对象的方式设计有理数类


    仿照BigDecimal类以面向对象的方式设计有理数类

    完整代码

    • 给出你的完整的有理数类的代码:

      package javan;
      
      public class BigDecimal {
      	private double Number1;//定义有力数为私有
      	private double Number2;//定义有力数为私有
      
      	public double getNumber1() {
      		return Number1;
      	}
      
      	public void setNumber1(double Number1) {
      		this.Number1 = Number1;
      	}
      	public double getNumber2() {
      		return Number2;
      	}
      
      	public void setNumber2(double Number2) {
      		this.Number2 = Number2;
      	}
      	
      	
      	//BigDecimal用法:加减乘除求余数,转换对象数值为float,double,long,int,格式化,比较
      	//加法
      	public void add() {
      		double Number = Number1 + Number2;
      		System.out.println(Number);
      	}
      	//减法
      	public void sub() {
      		double Numbers = Number1 - Number2;
      		System.out.println(Numbers);
      	}
      	//乘法
      	public void mul() {
      		double Numberr = Number1 * Number2;
      		System.out.println(Numberr);
      	}
      	//除法
      	public void div() {
      		double Number = Number1 / Number2;
      		System.out.println(Number);
      	}
      	//求余
      	public void rem() {
      		double Numberd = Number1%Number2;
      		System.out.println(Numberd);
      	}
      	
      	 public int intValue()//转换为int型
           {
      		 return (int)this.Number1;
      		 
           }
           public long longValue()   //转换为long型
           {
          	 return (long)this.Number1;
           }
           
           public float floatValue()  //转换为float型
           {
          	 return (float)this.Number1;
      		 
           }
           public String toString()   //转换为string型
           {
               return this.Number1 + "/" + this.Number1;
           }
           //比较
           public boolean equal() //判断是否相等
           {
               if ((this.Number1 == this.Number2)) {
                   return true;
               } else {
                   return false;
               }
           }
      
      }
      
      

    测试代码

    给出你的测试代码。要在与有理数类不同包的其他类中调用有理数类。
    类名、变量名命名需符合Java规范

    package javan;
    import java.util.Scanner;
    public class Main10 {
    public static void main(String[] args) {
    	Scanner in=new Scanner(System.in);
    	BigDecimal NUMber=new BigDecimal();
    	double number1=in.nextDouble();
    	double number2=in.nextDouble();
    	NUMber.setNumber1(number1);
    	NUMber.setNumber2(number2);
    	System.out.println("输入:"+NUMber.getNumber1());
    	System.out.println("输入:"+NUMber.getNumber2());
    	NUMber.add();
    	NUMber.sub();			
    	NUMber.mul();			
    	NUMber.div();			
    	NUMber.rem();								
    	int i=NUMber.intValue();//转换为int
    	float j=NUMber.floatValue();//转换为float
    	long k=NUMber.longValue();//转换为long
    	System.out.println(i);
    	System.out.println(j);
    	System.out.println(k);
    	System.out.println(NUMber.equal());
    	System.out.println(NUMber.toString());
    }
    }
    
    

    运行展示

    回答

    1. 尝试回答与c语言的有理数代码相比较,为什么你设计的类更加面向对象?

      C语言完全面向过程,我的类封装性较好

    2. 尝试从代码复用的角度来描述你设计的有理数类。从几个方面讨论。
      别人如何复用你的代码?
      在新类中创建BigDecimal类的对象,来调用已有类中的非private的属性和方法

    3. 别人的代码是否依赖你的有理数类的内部属性?当你的有理数类的属性修改时,是否会影响他人调用你有理数类的代码?
      他人的代码会依赖有理数类的属性,当我对有理数的属性修改时,也会影响到他人调用有理数类的代码

    4. 有理数类的public方法是否设置合适?为什么有的方法设置为private?
      需要根据需要来进行方法的访问级别,有一些方法需要设置为private,这样的话,这一方法就只能在这一类中使用,对于别的类来说相当于是隐藏不可见的,可以保护该方法中的赋值不被外界干扰,保护了子类

  • 相关阅读:
    Python并发编程-concurrent包
    Python并发编程-多进程
    Python并发编程-GIL全局解释器锁
    .net解析csv(C#导表工具)
    为游戏适配刘海屏
    Lua rawget rawset newindex 函数定义和例子
    lua_local变量在new时不会被清空
    Lua查找表元素过程(元表、__index方法是如何工作的)
    为什么不使用github的wiki而是使用mkdocs做文档管理?
    Unity重置Animator到初始状态和重复播放同一个Animation
  • 原文地址:https://www.cnblogs.com/lixinggio/p/15344969.html
Copyright © 2020-2023  润新知