I need a Java app written. Write an app that has a class named City, which has a
ID: 3925719 • Letter: I
Question
I need a Java app written. Write an app that has a class named City, which has attributes name, state, yearOfFounding, and population. Provide at least 2 different constructor methods, plus getters and setters for each attribute. Create a 2nd class named CityDemo that allows the user to create and edit some City instances, so we need a loop that asks: “Would you like to create another City instance (y/n)?” The CityDemo logic that asks the user to enter year must contain an input validation loop. Same idea for population.
Explanation / Answer
//City.java
public class City {
//instance variables of class
private String name;
private String state;
private int yearOfFounding;
private double population;
public City() {
name="";
state="";
yearOfFounding=0;
population=0;
}
//Constructor that takes name, state, founding and population
public City(String name,
String state,
int yearOfFounding,
double population) {
setName(name);
setState(state);
setYear(yearOfFounding);
setPopulation(population);
}
//Setter methods of the class instance values
public void setName(String name){
this.name=name;
}
public void setState(String state){
this.state=state;
}
public void setYear(int yearOfFounding){
this.yearOfFounding=yearOfFounding;
}
public void setPopulation(double population){
this.population=population;
}
//getter methods of the class instance values
public String getName(){
return name;
}
public String getState(){
return state;
}
public int getYear(){
return yearOfFounding;
}
public double getPopulation(){
return population;
}
//Returns the string representation of City object
@Override
public String toString() {
return String.format("%-10s%-10s%-20d%5.2f ", name,state,yearOfFounding,population);
}
}
-----------------------------------------------------------------------------------------------------------------------
//CityDemo.java
import java.util.Scanner;
public class CityDemo {
public static void main(String[] args) {
//Create an instance of Scanner class
Scanner scanner=new Scanner(System.in);
String choice="y";
City city=null;
String name;
String state;
int yearOfFounding;
double population;
//prompt user to enter details of City class object
//until user enter n to stop
do
{
System.out.println("Enter name of city :");
name=scanner.nextLine();
System.out.println("Enter name of state :");
state=scanner.nextLine();
//validation of year
do
{
System.out.println("Enter year of founding :");
yearOfFounding=Integer.parseInt(scanner.nextLine());
if(yearOfFounding<0)
System.out.println("Invalid founding year.");
}while(yearOfFounding<0);
//validation of population
do
{
System.out.println("Enter population of city :");
population = Double.parseDouble(scanner.nextLine());
if(population<0)
System.out.println("Invalid population.");
}while(population<0);
System.out.println("Would you like to create another City instance (y/n)?");
choice=scanner.nextLine();
//create an instance of city
city=new City(name, state, yearOfFounding, population);
System.out.println("City object");
System.out.printf("%-10s%-10s%-20s%-10s ",
"Name","State","YearOfFounding","Population");
//print city object
System.out.println(city);
}while(!choice.equals("n"));
}
}
-----------------------------------------------------------------------------------------------------------------------
Sample Output:
Enter name of city :
Delhi
Enter name of state :
Delhi
Enter year of founding :
1500
Enter population of city :
15000000
Would you like to create another City instance (y/n)?
n
City object
Name State YearOfFounding Population
Delhi Delhi 1500 15000000.00
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.