JAVA编程,在线等答案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA编程,在线等答案相关的知识,希望对你有一定的参考价值。

写一个接口Number表示一个抽象的数,该接口有三个函数:
1、int compare(Number n); //比较自己和另外一个抽象数n的大小,返回1表示前者大,0表示相等,
-1表示自己比n小
2、double getValue(); //取得自己代表的实际值
3、String toString(); //输出自己内部存储的数

写一个类Fraction实现Number接口,用来表示一个分数,分子和分母分别用两个int成员存储,如分子
为3,分母为5,就表示存储3/5这个分数。getValue时,返回0.6

写一个类Complex实现Number接口,用来表示一个复数,实部和虚部分别用两个int成员存储,如实部
为3,虚部为4,就表示存储3+4i这个复数。getValue时,返回5.0(即该复数的模)
数之间比较大小,直接按照getValue的值来决定它们之间的大小。
写一个测试类,测试上述的两个类。注意测试类要测试到所有成员函数,并且类的取名,要取成“JXXX”。

模板:
interface Number

class Fraction implements Number

class Complex implements Number

public class Jxxxx
public static void main(String[] args)

下面是你要的代码,并且为你提供了单元测试代码.

package test;

import junit.framework.TestCase;

public class Jtest extends TestCase

Number fraction;
Number complex;

@Override
protected void setUp() throws Exception
fraction=new Fraction(5,3);
complex=new Complex(3,4);


@Override
protected void tearDown() throws Exception
fraction=null;
complex=null;


public void testFractionCompare()
assertEquals(0.6, fraction.getValue());

public void testFractionToString()
assertEquals(1, fraction.compare(new Fraction(6,3)));

public void testFractionGetValue()
assertEquals("3/5", fraction.toString());


public void testComplexCompare()
assertEquals(5.0, complex.getValue());

public void testComplexToString()
assertEquals(-1, complex.compare(new Complex(7,8)));

public void testComplexGetValue()
assertEquals("3+4i", complex.toString());



interface Number
int compare(Number n); //比较自己和另外一个抽象数n的大小,返回1表示前者大,0表示相等,-1表示自己比n小
double getValue(); //取得自己代表的实际值
String toString(); //输出自己内部存储的数


class Fraction implements Number

private int denominator;
private int numerator;

public Fraction()
super();


public Fraction(int denominator, int numerator)
super();
this.denominator = denominator;
this.numerator = numerator;


public int compare(Number n)
double result=this.getValue()-n.getValue();
return result==0?0:(result>0?1:-1);


public double getValue()
return ((double)numerator)/denominator;


public int getDenominator()
return denominator;


public void setDenominator(int denominator)
if(denominator==0)
throw new ArithmeticException("The denominator can't be zero.");
else
this.denominator = denominator;



public int getNumerator()
return numerator;


public void setNumerator(int numerator)
this.numerator = numerator;


@Override
public String toString()
return this.getNumerator()+"/"+this.getDenominator();




class Complex implements Number

int actualNumber;
int imaginaryNumber;

public Complex()
super();


public Complex(int actualNumber, int imaginaryNumber)
super();
this.actualNumber = actualNumber;
this.imaginaryNumber = imaginaryNumber;


public int compare(Number n)
double result=this.getValue()-n.getValue();
return result==0?0:(result>0?1:-1);


public double getValue()
return Math.sqrt(actualNumber*actualNumber+imaginaryNumber*imaginaryNumber);


public int getActualNumber()
return actualNumber;


public void setActualNumber(int actualNumber)
this.actualNumber = actualNumber;


public int getImaginaryNumber()
return imaginaryNumber;


public void setImaginaryNumber(int imaginaryNumber)
this.imaginaryNumber = imaginaryNumber;


@Override
public String toString()
return this.getActualNumber()+"+"+this.getImaginaryNumber()+"i";

参考技术A 没明白你的toString方法是想要最终值值还是两个成员变量的值,我写的是最终值

public class Ttest
public static void main(String[] args)
Number n1 = new Fraction(3,4);
Number n2 = new Fraction(4,5);
Number n3 =new Complex(1,2);
Number n4 = new Complex(7,8);
System.out.println("n1:"+n1.toString());
System.out.println("n2:"+n2.toString());
System.out.println("n3:"+n3.toString());
System.out.println("n4:"+n4.toString());

System.out.println("n1与n2比较:"+n1.compare(n2));
System.out.println("n2与n1比较:"+n2.compare(n1));
System.out.println("n3与n4比较:"+n3.compare(n4));
System.out.println("n2与n3比较:"+n2.compare(n3));



--------------------------------------------------------------------------------------------------
public interface Number
public int compare(Number n);
public double getValue();
public String toString();

------------------------------------------------------------------------------------------
import java.math.BigDecimal;
public class Fraction implements Number

private int molecular;//分子
private int denominator;//分母

public Fraction(int molecular ,int denominator)
this.molecular= molecular;
this.denominator = denominator;

public int compare(Number n)
if(this.getValue()>n.getValue())
return 1;
else if(this.getValue()==n.getValue())
return 0;
else
return -1;

public double getValue()
BigDecimal b1 = new BigDecimal(this.molecular);
BigDecimal b2 = new BigDecimal(this.denominator);
return b1.divide(b2).doubleValue();


public String toString()
return String.valueOf(this.getValue());



----------------------------------------------------------------------------------------------------
import java.math.BigDecimal;
public class Complex implements Number

private int realPart ;//实部
private int illusoryPart;//虚部

public Complex(int realPart ,int illusoryPart)
this.realPart = realPart;
this.illusoryPart = illusoryPart;

public int compare(Number n)
if(this.getValue()>n.getValue())
return 1;
else if(this.getValue()==n.getValue())
return 0;
else
return -1;

public double getValue()
BigDecimal b1 = new BigDecimal(this.realPart);
BigDecimal b2 = new BigDecimal(this.illusoryPart);
//BigDecimal没有现成的开发方法,现使用Math的,可能会溢出
//可以在网上搜到BigDecimal的开发实现
return Math.sqrt(b1.pow(2).add(b2.pow(2)).doubleValue());


public String toString()
return String.valueOf(this.getValue());

参考技术B package mytest;
interface Number

int compare(Number n);
double getValue();
String toString();

class Fraction implements Number

int n1;//分子
int n2;//分母
public int getN1()
return n1;

public void setN1(int n1)
this.n1 = n1;

public int getN2()
return n2;

public void setN2(int n2)
this.n2 = n2;

public String toString()

System.out.println(this.getValue());
return "";

@Override
public int compare(Number n)
if(this.getValue()>n.getValue())
return 1;
else if(this.getValue()<n.getValue())
return -1;
return 0;

@Override
public double getValue()
double result = 0.0;
if(n2 != 0)

result = (double)n1 / n2;

return result;

// public String toString()
//
//
//

class Complex implements Number
int n1;//实部
int n2;//虚部
public int getN1()
return n1;

public void setN1(int n1)
this.n1 = n1;

public int getN2()
return n2;

public void setN2(int n2)
this.n2 = n2;

@Override
public int compare(Number n)
if(this.getValue()>n.getValue())
return 1;
else if(this.getValue()<n.getValue())
return -1;
return 0;


public String toString()

System.out.println(this.getValue());
return "";


@Override
public double getValue()
return Math.pow((Math.pow(n1, 2)+Math.pow(n2, 2)), 0.5);


public class Jxxxx
public static void main(String[] args)

//测试分数
Fraction f1 = new Fraction();
f1.setN1(3);
f1.setN2(5);
Fraction f2 = new Fraction();
f2.setN1(1);
f2.setN2(2);
double val1 = f1.getValue();
double val2 = f2.getValue();
f1.toString();
f2.toString();
int result = f1.compare(f2);
System.out.println(result);

//测试复数
Complex c1 = new Complex();
c1.setN1(3);
c1.setN2(4);
Complex c2 = new Complex();
c2.setN1(5);
c2.setN2(12);
double v1 = c1.getValue();
double v2 = c2.getValue();
c1.toString();
c2.toString();
int res = c1.compare(c2);
System.out.println(res);
System.out.println(c1.toString());

本回答被提问者采纳
参考技术C 这个也要来这里问?

2020打大厂最全Java面试手册:Redis+面向编程+spring+MyBatis等(附答案)

前段时间,有个朋友拿到了这个文档,说多亏了这个文档,在金三银四的时候帮了很大的忙,经检测有效,决定把这个文档分享出来,希望能帮到更多的人,这里面的面试题,都是常见的高频面试题,整理出来也花了很长的时间,但或许能帮到你!!详细题目类型见下文

JavaOOP面试题

技术图片
Java集合/泛型面试题
技术图片
Java异常面试题
技术图片
Java中的IO与NIO面试题
技术图片
由于篇幅有限,资料过大,有需要获取面试手册文档的朋友请见文末

Java反射面试题
技术图片
Java序列化面试题
技术图片
Java注解面试题
技术图片
多线程&并发面试题
技术图片
JVM面试题
技术图片

由于篇幅有限,资料过大,有需要获取面试手册文档的朋友可以添加VX:13272413561(备注51免费获取)

Mysql面试题
技术图片
Redis面试题

技术图片
Memcached面试题(节选)

1、memcached 服务在企业集群架构中有哪些应用场景?

2、Memcached 服务分布式集群如何实现?

3、Memcached 服务特点及工作原理是什么?

4、简述 Memcached 内存管理机制原理?

5、memcached 是怎么工作的?

6、memcached 最大的优势是什么?

MongoDB面试题
1、mongodb是什么?

2、mongodb有哪些特点?

3、你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?

4、NoSQL数据库有哪些类型?

5、MySQL与MongoDB之间最基本的差别是什么?

6、你怎么比较MongoDB、CouchDB及CouchBase?

7、MongoDB成为最好NoSQL数据库的原因是什么?

8、journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?

String面试题(节选)

1、不同版本的 Spring Framework 有哪些主要功能?

2、什么是 Spring Framework

3、列举 Spring Framework 的优点。

4、Spring Framework 有哪些不同的功能?

5、Spring Framework 中有多少个模块,它们分别是什么?

Spring Boot面试题
技术图片
Spring Cloud面试题
技术图片
RabbitMQ面试题(节选)

1、什么是 rabbitmq

2、为什么要使用 rabbitmq

3、使用 rabbitmq 的场景

4、如何确保消息正确地发送至 RabbitMQ?

5、如何避免消息重复投递或重复消费?

6、消息基于什么传输?

7、消息如何分发?

8、消息怎么路由?

9、如何确保消息不丢失?

10、使用 RabbitMQ 有什么好处?

Dubbo 面试题(节选)

1、为什么要用 Dubbo?

2、Dubbo 的整体架构设计有哪些分层?

3、默认使用的是什么通信框架,还有别的选择吗?

4、服务调用是阻塞的吗?

5、一般使用什么注册中心?还有别的选择吗?

6、默认使用什么序列化框架,你知道的还有哪些?

7、服务提供者能实现失效踢出是什么原理

8、服务上线怎么不影响旧版本?

9、如何解决服务调用链过长的问题?

10、说说核心的配置有哪些?

MyBatis 面试题
技术图片
ZooKeeper 面试题

1、什么是Zookeeper?

2、Zookeeper 如何保证了分布式一致性特性?

3、ZooKeeper 提供了什么?

4、Zookeeper 文件系统

5、ZAB 协议?

数据结构面试题
技术图片
算法面试题
技术图片
Elasticsearch 面试题
技术图片
Kafka 面试题

技术图片
微服务 面试题

技术图片
Linux面试题
技术图片

  1. > 由于篇幅有限,资料过大,有需要获取面试手册文档的朋友可以添加VX:13272413561(备注51免费获取)

以上是关于JAVA编程,在线等答案的主要内容,如果未能解决你的问题,请参考以下文章

Java编程题

C语言编程问题!!高手救命,在线等答案

南京邮电大学java程序设计作业在线编程第六次作业

Java面试题!java编程思想在线观看

Java编程。。输入三个整数x,y,z,请把这三个整数由小到大输出,在线等,急,谢谢了

2020打大厂最全Java面试手册:Redis+面向编程+spring+MyBatis等(附答案)