「java封装分数」java中的封装

博主:adminadmin 2023-03-19 06:15:05 677

今天给各位分享java封装分数的知识,其中也会对java中的封装进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用java怎么写分数?

你可以写个分数类,下面是参考:

public class Fraction {

private Integer numerator; // 分子;

private Integer denominator; // 分母

/**

* 构造器

*/

public Fraction() {

}

public Fraction(Integer numerator, Integer denominator) {

this.numerator = numerator;

this.denominator = denominator;

}

public Integer getDenominator() {

return denominator;

}

public void setDenominator(Integer denominator) {

this.denominator = denominator;

}

public Integer getNumerator() {

return numerator;

}

public void setNumerator(Integer numerator) {

this.numerator = numerator;

}

/**

* 求最大公约数

*

* @return

*/

private int getGCD(int a, int b) {

int max = Math.max(a, b);

int min = Math.min(a, b);

int mod = max % min;

if (mod == 0) {

return min;

} else {

return this.getGCD(mod, min);

}

}

/**

* 简化和约分

*

* @return

*/

public Fraction simplify() {

// 格式化

if (this.numerator == 0) {

this.denominator = null;

return this;

} else if (this.denominator * this.numerator 0

this.denominator 0) {

this.denominator = Math.abs(this.denominator);

this.numerator = Math.abs(this.numerator);

return this;

} else if (this.denominator 0) {

this.denominator = Math.abs(this.denominator);

this.numerator = -this.numerator;

return this;

}

// 约分

int gcd = this.getGCD(Math.abs(denominator), Math.abs(numerator));

if (gcd == 1) {

return this;

} else {

this.denominator = this.denominator / gcd;

this.numerator = this.numerator / gcd;

return this;

}

}

/**

* 加法

*

* @param fraction

* @return

*/

public Fraction add(Fraction fraction) {

Integer resultDenominator = Math.abs(this.denominator)

* Math.abs(fraction.getDenominator());

Integer resultNumerator = this.numerator * fraction.getDenominator()

+ this.denominator * fraction.getNumerator();

Fraction result = new Fraction(resultNumerator, resultDenominator);

return result.simplify();

}

/**

* 减法

*

* @param fraction

* @return

*/

public Fraction minus(Fraction fraction) {

Integer resultDenominator = Math.abs(this.denominator)

* Math.abs(fraction.getDenominator());

Integer resultNumerator = this.numerator * fraction.getDenominator()

- this.denominator * fraction.getNumerator();

Fraction result = new Fraction(resultNumerator, resultDenominator);

return result.simplify();

}

/**

* 乘法

*

* @param fraction

* @return

*/

public Fraction multiply(Fraction fraction) {

Fraction result = null;

if (this.numerator == 0 || fraction.numerator == 0) {

result = new Fraction(0, null);

}

Integer resultDenominator = this.denominator

* fraction.getDenominator();

Integer resultNumerator = this.numerator * fraction.getNumerator();

result = new Fraction(resultNumerator, resultDenominator);

return result.simplify();

}

/**

*除法

*

* @param fraction

* @return

*/

public Fraction divide(Fraction fraction) {

Fraction result = null;

if (this.numerator == 0) {

result = new Fraction(0, null);

}

Integer resultDenominator = this.denominator * fraction.getNumerator();

Integer resultNumerator = this.numerator * fraction.getDenominator();

result = new Fraction(resultNumerator, resultDenominator);

return result.simplify();

}

@Override

public String toString() {

return "[分子]" + this.numerator + "-[分母]" + this.denominator;

}

/**

* 测试

*

* @param args

*/

public static void main(String[] args) {

Fraction f1 = new Fraction(1, 2);

Fraction f2 = new Fraction(2, 4);

System.out.println(f1);

System.out.println(f2);

System.out.println(f2.simplify());

System.out.println(f1.add(f2));

System.out.println(f1.minus(f2));

System.out.println(f1.multiply(f2));

System.out.println(f1.divide(f2));

}

}

java封装属性 数组

这段代码也是醉了,你存入list应该是一个对象Person,

而你给一组数组赋值我也是没搞懂你的意思,

你这样写代码能存入list集合的只是一个Person对象,而你给对象字段赋值的语句就只有p.name = s.next(); p.pingjun = (rr / (a.length - 1)) + "";,只有2个属性付了值,其他的没有赋值是null;

一个构造器给Person的数组赋值?一个长度20的字符空数组,然后你给w数组赋值,那么你这样子赋值你以为可以影响到Person的值?w[i] = u + "";这句代码,与Person对象没半毛钱关系,对象引用都没有怎么赋值,

你最后打印的是Person对象的字段,而你存入一个空数组,然后把string类型字段的原始属性给一个数组,Person(String r[]) {

r[1] = this.yuwen;

r[2] = this.shuxve;

r[3] = this.wuli;

r[4] = this.waiyu;

r[5] = this.huaxve;

}

这有啥用,我很好奇你这个r数组也不是类中的字段,你给他付了null的值,你给他传入的是长度20的数组,后面还有15个长度呢,不管这个,关键是这个数组啥用也没有除了浪费内存

下面这段代码中list.add(p);,你把Person 对象存入list,此时的Person 对象被赋值的就只有2个字段,你给w,r数组的值无法影响到Person 对象,且这个方法执行完毕后,也会被清理掉因为没有被引用到

这个时候可以回答你的问题了,为什么你输入的分数显示都是null:

因为他都没被赋值到Person 的成员变量上面,没被赋值的成员变量的String值是null,容易你打印Person 未被赋值的成员变量的值,就是null;

String r[] = new String[a.length - 2];

String w[] = new String[20];

int rr = 0;

Person p = new Person(w);

p.name = s.next();

for (int i = 1; i a.length - 1; i++) {

int u = s.nextInt();

w[i] = u + "";

r[i - 1] = u + "";

rr += u;

}

p.pingjun = (rr / (a.length - 1)) + "";

list.add(p);

怎么用java编程,实现分数的加减乘除运算?

java编程实现分数的加减乘除运算的步骤如下:

1、打开eclipse,创建一个Java工程,在此工程里新建一个类;

2、在新建的类中,添加4个运算类;

3、在主方法中调用对应的方法即可完成分数的加减乘除运算了。

具体实现代码如下:

     public class Demo {

    public static void main(String[] args) {

        System.out.println(jia(1, 2));

        System.out.println(jian(1, 2));

        System.out.println(cheng(1, 2));

        System.out.println(chu(1, 2));

    }

    //加法运算

    private static float jia(float x,float y) {

        return x + y;

    }

    //减法运算

    private static float jian(float x,float y) {

        return x - y;

    }

    //乘法运算

    private static float cheng(float x,float y) {

        return x * y;

    }

    //除法运算

    private static float chu(float x,float y) {

        return x / y;

    }

}

java封装分数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中的封装、java封装分数的信息别忘了在本站进行查找喔。