Java Programming II Homework 6
Create a class to represent a Farm object containing instances of the Animal objects
Farm
View javadoc for Animal and Farm classes https://bit.ly/2X6yxzw
- animals : Animal [ ]
- farmName : String
- numAnimals : int //calculated controlled variable no setter
+ Farm() //default 10 animals
+ Farm(String) //default 10 animals
+ Farm(int) //size of array
+ Farm(String, int)
+ addAnimal(Animal) : void //use the next available slot to add the Animal, resize the array if necessary
+ getFarmName() : String
+ setFarmName(String) : void
+ getAnimal(int) : Animal //return null if index is invalid
+ getNumAnimals() : int //notice no setter… this is a controlled variable
+ getFirstAnimal() : Animal
+ getLastAnimal() : Animal
+ getAnimals() : Animal[ ]
+ printAllDetails() : void // prints Farm attributes followed by Animal attributes as formatted below :
// "FarmName: %20s | Number of Animals: %4d | Farm Size: %4d\n"
// "Name: %20s | Year of Birth: %4d | Weight: %10.2f | Gender: %c\n"
+ removeAnimal(int) : Animal
+ removeAllAnimals() : void
+ getTotalWeightOfAllAnimals() : double
+ getAverageWeightOfAllAnimals() : double
+ getNumberOfAnimalsAboveWeight(double) : int
+ getNumberOfAnimalsBelowWeight(double) : int
+ increaseWeightOfAllAnimals() : void
+ increaseWeightOfAllAnimals(double) : void
View javadoc for Animal and Farm classes https://bit.ly/2X6yxzw
Submission Instructions
'Main.java', 'Animal.java', and 'Farm.java'
Compile command: javac Main.java Animal.java Farm.java -Xlint:all -encoding utf-8
We will use this command to compile your code
Please feel free add more test code in Main.java
/Animal.java
package homeworks.hw3;
public class Animal {
private String name;
private int birthYear;
private double weight;
char gender;
public Animal() {
}
public Animal(String name, int birthYear, double weight, char gender) {
this.name = name;
this.birthYear = birthYear;
this.weight = weight;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getBirthYear() {
return birthYear;
}
public void setBirthYear(int birthYear) {
this.birthYear = birthYear;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public int calculateAge(int currentYear){
if(currentYear<this.birthYear)return -1;
return currentYear=birthYear;
}
public boolean isFemale(){
return this.gender == 'F'|| this.gender == 'f';
}
public void gainWeight(){
setWeight(getWeight()+1);
}
public void gainWeight(double weight){
setWeight(getWeight()+weight);
}
public void loseWeight() {
if(this.weight-1>=0){
setWeight(getWeight()-1);
}
}
public void loseWeight(double weight){
if(this.weight-weight>=0){
setWeight(getWeight()-weight);
}
}
public void printDetails(){
System.out.printf( "Name: %20s | Year of Birth: %4d | Weight: %10.2f | Gender: %c\n",
this.name, this.birthYear, this.weight, this.gender);
}
}
//Farm.java
package homeworks.hw3;
import java.util.Arrays;
public class Farm {
private Animal[] animals;
private String farmName;
private int numAnimals;
public Farm() {
animals = new Animal[10];
this.numAnimals = 0;
this.farmName = "";
}
public Farm(int maxAnimals) {
if (maxAnimals < 0) maxAnimals = 0;
animals = new Animal[maxAnimals];
this.numAnimals = 0;
this.farmName = "";
}
public Farm(String farmName) {
animals = new Animal[10];
this.farmName = farmName;
this.numAnimals = 0;
}
public Farm(String farmName, int maxAnimals) {
if (maxAnimals < 0) maxAnimals = 0;
this.farmName = farmName;
this.numAnimals = 0;
animals = new Animal[maxAnimals];
}
public String getFarmName() {
return farmName;
}
public void setFarmName(String farmName) {
this.farmName = farmName;
}
public void addAnimal(Animal a) {
if (this.numAnimals >= animals.length) resizeAnimalArray();
animals[numAnimals++] = a;
}
public Animal getAnimal(int index) {
if (index < 0 || index >= numAnimals) return null;
return animals[index];
}
public int getNumAnimals() {
return this.numAnimals;
}
public Animal getFirstAnimal() {
return animals[0];
}
public Animal getLastAnimal() {
return animals[numAnimals-1];
}
public Animal[] getAnimals() {
return this.animals;
}
public Animal removeAnimal(int index) {
if(index<0 || index >= numAnimals) return null;
Animal[] temp = new Animal[animals.length];
int j=0;
Animal a = animals[index];
for(int i = 0; i<numAnimals; i++) {
if(i != index)
{
temp[j] = animals[i];
j++;
}
}
temp[animals.length-1] = null;
animals = temp;
numAnimals -= 1;
return a;
}
public void removeAllAnimals() {
this.numAnimals = 0;
}
public double getTotalWeightOfAllAnimals() {
double sum = 0;
for(int i0=0;i0<numAnimals;i0++)
sum += animals[i0].getWeight();
return sum;
}
public double getAverageWeightOfAllAnimals() {
return getTotalWeightOfAllAnimals() / (numAnimals);
}
public int getNumberOfAnimalsAboveWeight(double weight) {
int i = 0;
for(int i0=0;i0<numAnimals;i0++)
if (animals[i0].getWeight() > weight)
i++;
return i;
}
public int getNumberOfAnimalsBelowWeight(double weight) {
int i = 0;
for(int i0=0;i0<numAnimals;i0++)
if (animals[i0].getWeight() < weight)
i++;
return i;
}
public void increaseWeightOfAllAnimals() {
for(int i=0;i<numAnimals;i++)
animals[i].gainWeight();
}
public void increaseWeightOfAllAnimals(double weight) {
for(int i0=0;i0<numAnimals;i0++)
animals[i0].gainWeight(weight);
}
public void printAllDetails() {
System.out.printf("FarmName: %20s | Number of Animals: %4d | Farm Size: %4d\n",
this.farmName, this.numAnimals, animals.length);
for(int i=0;i<numAnimals;i++)
animals[i].printDetails();
}
public void resizeAnimalArray() {
if (animals.length == 0) {
animals = Arrays.copyOf(animals, 2);
} else
animals = Arrays.copyOf(animals, animals.length * 2);
}
}
//Main.java
package homeworks.hw3;
public class Main {
public static void main(String[] args) {
Farm f = new Farm("MyFarm",-1);
f.addAnimal(new Animal("a1",1978,34.6d,'M'));
f.addAnimal(new Animal("a2",2013,33.6d,'F'));
f.addAnimal(new Animal("a3",2001,31.6d,'M'));
f.removeAnimal(1);
f.printAllDetails();
}
}
//OUTPUT
FarmName: MyFarm | Number of Animals: 2 | Farm Size: 4
Name: a1 | Year of Birth: 1978 | Weight: 34.60 | Gender: M
Name: a3 | Year of Birth: 2001 | Weight: 31.60 | Gender: M
Java Programming II Homework 6 Create a class to represent a Farm object containing instances of...
help with java OOP, here is the started code:
package P2;
public class Farm {
private double availableFood;
private Animal[] animals;
public Farm() {
setAvailableFood(1000);
animals = new Animal[4];
animals[0] = new Chicken();
animals[1] = new Cow();
animals[2] = new Llama();
animals[3] = new Llama();
}
public void makeNoise(){
// all animals make their
sound (Moo, Cluck, etc)
for(Animal...
Assignment: You are to create seven classes that represent a Zoo. The classes are define as follows: 1. Zoo 2. Enclosure 3. Animal 4. Crocodile 5. Gazelle 6. Lion 7. Zebra 1. Zoo: Required member variables: private String name; private String address; private Enclosure[] enclosures; private int area; private double budget; 2. Enclosure: Required member variables: private String biome; private Animal[] animals; 3. Animal Required member variables: private String name; private String genus; private String species; private Zoo currentZoo; protected...
Additional code needed:
PartA: BurgerOrder class (1 point) Objective: Create a new class that represents an order at a fast-food burger joint. This class will be used in Part B, when we work with a list of orders. As vou work through this part and Part B, draw a UML diagram of each class in using the UML drawing tool 1) Create a new Lab5TestProject project in Netbeans, right-click on the lab5testproject package and select New>Java Class 2) Call your...
Hello, i need help with this homework:
Code provided:
public class DirectedWeightedExampleSlide18
{
public static void main(String[] args)
{
int currentVertex, userChoice;
Scanner input = new Scanner(System.in);
// create graph using your WeightedGraph based on author's
Graph
WeightedGraph myGraph = new WeightedGraph(4);
// add labels
myGraph.setLabel(0,"Spot zero");
myGraph.setLabel(1,"Spot one");
myGraph.setLabel(2,"Spot two");
myGraph.setLabel(3,"Spot three");
// Add each edge (this directed Graph has 5 edges,
// so we add 5 edges)
myGraph.addEdge(0,2,9);
myGraph.addEdge(1,0,7);
myGraph.addEdge(2,3,12);
myGraph.addEdge(3,0,15);
myGraph.addEdge(3,1,6);
// let's pretend we are on...