Question
IN JAVA!!!! Do not use the scanner class or any other user input request. You application should be self-contained and run without user input. Assignment
IN JAVA!!!!
Do not use the scanner class or any other user input request. You application should be self-contained and run without user input. Assignment Objectives Practice on implementing interfaces in Java FootballPlayer will implement the interface TableMember Overriding methods
Assignment Objectives
- Practice on implementing interfaces in Java
- FootballPlayerData will implement the interface TableData
- Overriding methods
- when FootballPlayerData implements TableData,FootballPlayerData will have to write the real Java code for all the interface abstract methods
Deliverables
A zipped Java project according to the How to submit Labs and Assignments guide.
O.O. Requirements (these items will be part of your grade)
- One class, one file. Don't create multiple classes in the same .java file
- Don't use static variables and methods
- Encapsulation: make sure you protect your class variables and provide access to them through get and set methods
- all the classes are required to have a constructor that receives all the attributes as parameters and update the attributes accordingly
- Follow Horstmann's Java Language Coding GuidelinesLinks to an external site.
- Organized in packages (MVC - Model - View Controller)
Contents
Model is used to test if the TableData interface was implemented correctly by FootballPlayerData.
Important: Use this Netbeans project to start your assignment
The project (A03B_Starter.zip) has
- the interfaces
- TableMember
- TableData
- Model.java
- which is ready to test your project when you have all the classes developed
- FootballPlayerData.java
- it has some initial code that is very important
- you will keep developing FootballPlayerData as described below. This is the most important part of this assignment
- FootballPlayerTable.xml
- a XML file with all the FootballPlayer objects coded in XML. The method ReadPlayersFromXML( ) (which is ready) reads this file and create the FootballPlayer objects that will be loaded in the ArrayList.
- The method ReadPlayersFromXML( ) requires that the classes it uses (FootballPlayer, Height, and Person)
- have an empty constructor (besides the "regular" constructor you are using
- have all getters and setters (and you should already if you are using the required encapsulation)
Bring the remaining classes from your previous assignment:
- FootballPlayer.java (should be implementing TableMember as per requirements of the previous assignment)
- with an extra empty constructor, it needs to be explicitly declared "public"
- all the attributes have to have the exact same names as described in the assignment
- all the attributes have to have getters and setters
- Height.java
- with an extra empty constructor, it needs to be explicitly declared "public"
- all the attributes have to have the exact same names as described in the assignment
- all the attributes have to have getters and setters
- Person.java
- with an extra empty constructor, it needs to be explicitly declared "public"
- all the attributes have to have the exact same names as described in the assignment
- all the attributes have to have getters and setters.
Functionality
- The application App creates a Model object
- The Model class
- creates one FootballPlayer object
- displays information to test the newly implemented methods
The classes
- App
- it has the main method which is the method that Java looks for and runs to start any application
- it creates an object (an instance) of the Model class
- Model
- has to have the code below
package Model; import java.util.ArrayList; public class Model { public Model() { FootballPlayerData fpData = new FootballPlayerData(); System.out.println("============================================================="); System.out.println(fpData.getHeaders().toString()); System.out.println("============================================================="); System.out.println(fpData.getLine(50).toString()); System.out.println("============================================================="); ArrayList> lines = fpData.getLines(0, 4); for (int i = 0; i < lines.size(); i++) { System.out.println(lines.get(i).toString()); } System.out.println("============================================================="); } }
- sample output of running Model.java
- it creates a FootballPlayerData object
- uses this object to test and display the result of the newly implemented methods
- getHeaders( )
- getLine(int n)
- getLines( int firstLine, int lastLine)
- Person
- has the following attributes
- String name;
- Height height;
- int weight;
- String hometown;
- String highSchool;
- and a method
- String toString( )
- toString( ) overrides the superclass Object toString( ) method
- toString( ) returns information about this class attributes as a String
- encapsulation
- if you want other classes in the same package yo have access to the attributes, you need to make them protected instead of private.
- see more about encapsulation here.
- has the following attributes
- FootballPlayer
- has the following attributes
- int number;
- String position;
- has the following method from the previous lab
- String toString( )
- toString( ) overrides the superclass Object toString( ) method
- toString( ) returns information about this class attributes as a String
- String toString( )
- and the methods coming from the interface TableMember
- getAttribute(int n )
- getAttributes( )
- getAttributeName(int n)
- getAttributeNames( )
- has the following attributes
- Height
- it is a class (or type) which is used in FootballPlayer defining the type of the attribute height
- it has two attributes
- int feet;
- int inches
- and a method
- String toString( )
- toString( ) overrides the superclass Object toString( ) method
- toString( ) returns information about this class attributes as a String
- it returns a formatted string with feet and inches
- for instance: 5'2"
- String toString( )
- FootballPlayerData
- you need to start with this code (click here to download)
-
- has the following attribute
- ArrayList
players; - this is the array with all the FootballPlayer objects
- ArrayList
- and the methods coming from the interface Data (these are the methods you need to implement and write the full code for)
-
public void loadTable();
-
public ArrayList getTable();
-
public ArrayList
getHeaders(); -
public ArrayList
getLine(int line); -
public ArrayList
> getLines(int firstLine, int lastLine);
-
-
and a method to read the FootballPlayer objects from a XML and load the ArrayList
players - public void ReadPlayersFromXML( )
- this method will be used in loadTable( )
- the method is ready and available in the FootballPlayerData starter file
- has the following attribute
-
The Interface
- TableData
- it is an interface
- remember the interface definition
-
Interfaces are often compared to a contract, to a promise to implement the methods described in the interface. An interface in Java does not have any real code for implementation of its methods, it has only the skeleton of the methods. When a class decides to implement an interface, it has to contain the real code for each method in the interface.
-
- These are the five methods that FootballPlayerData has to implementf
-
public void loadTable(); It needs to be called in the constructor to make the table ready and available right away. It loads real data into the array list. The FootballPlayerData starter class has a method that help with this task. The method ReadPlayersFromXML( ) read the FootballPlayer objects from an XML file and load them into the players ArrayList.
-
public ArrayList
getTable(); Returns the full table of data. Although right now is not required, soon you will need this method to return a specific ArrayList instead of a generic ArrayList. -
public ArrayList
getHeaders(); The method will return an ArrayList of Strings with the names of the FootballPlayer fields (the "headers"). -
public ArrayList
getLine(int line); The method will return an ArrayList of Strings with the values of the FootballPlayer object in a chosen line "n" in the table. -
public ArrayList
> getLines(int firstLine, int lastLine); This methods used the getLine( ) method. It gets a set of lines (each one of them an array of Strings) from getLine( int n) and adds them to an array of arrays. It returns this array of arrays.
-
- A strategy
- In the same you you did in the last assignment, here already developed methods can help you in writing new methods.
- getLine(int line) can use FootballPlayer getAttributes( )
- getHeaders( ) can use FootballPlayer getAttributeNames( )
- getLines(int firstLine, int lastLine) can use FootballPlayerData getLine(int line)
- In the same you you did in the last assignment, here already developed methods can help you in writing new methods.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started