gpt4 book ai didi

java - 如何计算对象中的某些属性

转载 作者:行者123 更新时间:2023-12-01 23:11:12 24 4
gpt4 key购买 nike

嗨,我一直在尝试对每个对象中的 float 进行计数,以便可以获得所有 float 的总和。 float 代表重量,所以我尝试执行以下操作:我将重量总和声明为 float sumOfWeight;并说sumOfWeight = ++weight;但没有成功,有什么建议吗?

  Lake   weirdLake = new Lake(15);
weirdLake.add(new Fish(76, 6.1f));
weirdLake.add(new Fish(32, 0.4f));
weirdLake.add(new Fish(20, 0.9f));
weirdLake.add(new Fish(30, 0.4f));
weirdLake.add(new Fish(140, 7.4f));
weirdLake.add(new Fish(15, 0.3f));
weirdLake.add(new Fish(90, 5.9f));
weirdLake.add(new Fish(120, 6.8f));
weirdLake.add(new Fish(80, 4.8f));
weirdLake.add(new Fish(42, 3.2f));
weirdLake.add(new Fish(100, 5.6f));
weirdLake.add(new Fish(45, 2.0f));
weirdLake.add(new Fish(16, 0.2f));
weirdLake.add(new Fish(30, 1.2f));
weirdLake.add(new Fish(7, 0.1f));

这是我的鱼类:

public class Fish 
{
// Any fish below this size must be thrown back into the lake
public static int THROW_BACK_SIZE = 18;
public static float WEGHT_LIMIT = 10;

protected int size;
protected float weight;

public Fish(int aSize, float aWeight)
{
size = aSize;
weight = aWeight;
}

public boolean isDesirableTo(Fisher f)
{
if(canKeep() && f.numFishCaught < f.LIMIT && weight)
{
return true;
}
else
{
return false;
}
}

public boolean canKeep()
{
if(this.size > THROW_BACK_SIZE)
{
return true;
}
else
{
return false;
}
}

public int getSize() { return size; }
public float getWeight() { return weight; }

public String toString ()
{
return ("A " + size + "cm " + weight + "kg Fish");
}
}

这是我的渔民类(class):

import java.util.*;

public class Fisher
{
private String name;
private Fish [] fishCaught;
public int numFishCaught;
private int keepSize;
public static int LIMIT = 10;

public String getName()
{
return this.name;
}

public int getNumFishCaught()
{
return this.numFishCaught;
}

public int getKeepSize()
{
return this.keepSize;
}

public Fisher(String n, int k)
{
name = n;
keepSize = k;
}

public String toString()
{
return(this.name + " with " + this.numFishCaught + " fish");
}
private ArrayList<Fish> fishesCaught = new ArrayList<Fish>();


public void keep(Fish fish)
{
if(this.numFishCaught < LIMIT)
{
fishesCaught.add(fish);
numFishCaught++;
}
}

public boolean likes(Fish fish)
{
if(fish.size >= this.keepSize)
{
return true;
}

else
{
return false;
}
}

public void listThingsCaught()
{
System.out.println(this.toString());

for(Fish fish : fishesCaught)
{
System.out.println(fish.toString());
}
}

public void goFishingIn(Lake lake)
{
Fish fish = lake.catchSomething();

if(likes(fish))
{
this.keep(fish);
}
else
{
lake.add(fish);
}
}

public void giveAwayFish(Fisher fisher, Lake lake)
{
for(Fish fish : fishesCaught)
{
if(fisher.likes(fish))
{
fisher.keep(fish);
}
else
{
lake.add(fish);
}
}
fishesCaught.clear();
this.numFishCaught = 0;
}



}

和我的湖课

public class Lake 
{
private Fish[] catchableThings;
private int numThings;

public Lake(int capacity)
{
catchableThings = new Fish[capacity];
numThings = 0;
}

public int getNumCatchableThings() { return numThings; }
public boolean isFull() { return numThings == catchableThings.length; }
public String toString() { return "Lake with " + numThings + " catchable things"; }

// Add the given thing to the lake
public void add(Fish aCatchableThing)
{
if (numThings < catchableThings.length)
catchableThings[numThings++] = aCatchableThing;
}

// Choose a random thing to be caught in the lake and return it
public Fish catchSomething()
{
if (numThings == 0) return null;

int index = (int)(Math.random() * numThings);
Fish f = catchableThings[index];
catchableThings[index] = catchableThings[numThings-1];
catchableThings[numThings-1] = null;
numThings--;
return f;
}

// List all things in the lake
public void listAllThings()
{
System.out.println(" " + this + " as follows:");
for (int i=0; i<numThings; i++)
System.out.println(" " + catchableThings[i]);
System.out.println();
}
}

最佳答案

请在您添加权重的位置发布您的逻辑。

sumOfWeight =++weight 会将 sumOfWeight 重置为 ++weight,而不是将 weight 添加到 权重总和

public class Lake {

private float sumOfWeight;

public void add(Fish fish) {
...
sumOfWeight += fish.getWeight();
}

public void remove(Fish fish) {
....
sumOfWeight -= fish.getWeight();
}

public float getLakeWeight() {
return this.sumOfWeight;
}
}

关于java - 如何计算对象中的某些属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21945566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com