栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

3.1-互评-OO设计-有理数类的设计

Java 更新时间:发布时间: 百科书网 趣学号

文章目录
      • 1.我的有理数代码:
      • 2.测试代码
      • 3.测试结果
      • 4.问题
        • 1.尝试回答与c语言的有理数代码相比较,为什么你设计的类更加面向对象?
        • 2.尝试从代码复用的角度来描述你设计的有理数类。从几个方面讨论。
          • 1.别人如何复用你的代码?
          • 2.别人的代码是否依赖你的有理数类的内部属性?当你的有理数类的属性修改时,是否会影响他人调用你有理数类的代码?
          • 3.有理数类的public方法是否设置合适?为什么有的方法设置为private?
          • 4.你的类里面有static属性或方法吗?如果有,为什么要设置为static的?

1.我的有理数代码:
public class RationalNum {
	private  int RNum;	//有理数
	
	public int getRNum() {
		return RNum;
	}

	public void setRNum(int rNum) {
		RNum = rNum;
	}

	public int add(int addNum) {//相加
		int num = RNum + addNum;
		return num;
	}
	
	public int sub(int subNum) {//相减
		int num = RNum - subNum;
		return num;
	}
	
	public int mul(int mulNum) {//相乘
		int num = RNum * mulNum;
		return num;
	}
	
	public double div(double divNum) {//相除
		double num = RNum / divNum;
		return num;
	}
	
	public int rem(int remNum) {//求余
		int num = RNum%remNum;
		return num;
	}
	
	public double sqrt() {//开方
		double num=Math.sqrt(RNum);
		return num;
	}
		
}
2.测试代码
import java.util.Scanner;
import test.RationalNum;

public class test2 {
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		int numb1 = scanner.nextInt();
		int num2 = scanner.nextInt();
		
		RationalNum firstNum = new RationalNum();
		
		firstNum.setRNum(numb1);
        
		System.out.println("相加得:" + firstNum.add(num2));
		System.out.println("相减得:" + firstNum.sub(num2));
		System.out.println("相乘得:" + firstNum.mul(num2));
		System.out.println("相除得:" + firstNum.div((double)num2));
		System.out.println("除余得:" + firstNum.rem(num2));
		System.out.println("开方得:" + firstNum.sqrt());
		scanner.close();						
	}
}
3.测试结果

4.问题 1.尝试回答与c语言的有理数代码相比较,为什么你设计的类更加面向对象?
  • 例如在C语言中我定义一个string类型得字符串,我现在想要知道它得长度,那么我可以用strlen(str);来得到他得长度。由于C不是面向对象的语言,也就没有this的概念,因此当使用一个与某个“东西”相关的函数时,就需要不厌其烦的将代表这个“东西”的变量作为参数传递进去。而Java中有一个字符串类String, 通过调用 String.length()就可以直接知道字符串的长度。所以感觉我设计得更加面向对象。
2.尝试从代码复用的角度来描述你设计的有理数类。从几个方面讨论。 1.别人如何复用你的代码?
  • 复制我的代码并命名如RationalNum的类,然后就可以调用了
2.别人的代码是否依赖你的有理数类的内部属性?当你的有理数类的属性修改时,是否会影响他人调用你有理数类的代码?
  • 既然是调用我的代码,那肯定是依赖我的有理数类的内部属性了,当我修改我的有理数类的属性修改时,会影响他人调用你有理数类的代码。
3.有理数类的public方法是否设置合适?为什么有的方法设置为private?
  • 合适,因为有一些我不希望别人访问的属性,这些就需要设置成private。
4.你的类里面有static属性或方法吗?如果有,为什么要设置为static的?
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/270180.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号