logo Use CA10RAM to get 10%* Discount.
Order Nowlogo

Practice on implementing Interfaces and Arrays in java

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

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

  1. Practice on implementing interfaces in Java 
    • FootballPlayerData will implement the interface TableData
  2. 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

 

O.O. Requirements (these items will be part of your grade)

  1. One class, one file. Don't create multiple classes in the same .java file
  2. Don't use static variables and methods
  3. Encapsulation: make sure you protect your class variables and provide access to them through get and set methods
  4. all the classes are required to have a constructor that receives all the attributes as parameters and update the attributes accordingly 
  5. Organized in packages (MVC - Model - View Controller)








Contents

 

FootballPlayerData will implement the interface TableData writing real code for all the abstract methods.



FootballPlayer will implement the interface TableMember writing real code for all the abstract methods.



Model is used to test if the TableData interface was implemented correctly by FootballPlayerData.

 

Important:

  • 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)

 

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 you have access to the attributes, you need to make them protected instead of private.

 

 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
  • and the methods coming from the interface TableMember 
    • getAttribute(int n )
    • getAttributes( )
    • getAttributeName(int n)
    • getAttributeNames( )

 

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"






FootballPlayerData

you need to start with this code.

 

  • has the following attribute 
    • ArrayList players; 
      • this is the array with all the FootballPlayer objects
  • 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 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 implement

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)




Expert's Answer

2406 Times Downloaded

Related Questions

. Introgramming & Unix Fall 2018, CRN 44882, Oakland University Homework Assignment 6 - Using Arrays and Functions in C

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

. The standard path finding involves finding the (shortest) path from an origin to a destination, typically on a map. This is an

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

. Develop a program to emulate a purchase transaction at a retail store. This program will have two classes, a LineItem class and a Transaction class. The LineItem class will represent an individual

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

. SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

. Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

2406 Times Downloaded

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Um e HaniScience

744 Answers

Hire Me
expert
Muhammad Ali HaiderFinance

745 Answers

Hire Me
expert
Husnain SaeedComputer science

992 Answers

Hire Me
expert
Atharva PatilComputer science

839 Answers

Hire Me
June
January
February
March
April
May
June
July
August
September
October
November
December
2025
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
SunMonTueWedThuFriSat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
00:00
00:30
01:00
01:30
02:00
02:30
03:00
03:30
04:00
04:30
05:00
05:30
06:00
06:30
07:00
07:30
08:00
08:30
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
18:30
19:00
19:30
20:00
20:30
21:00
21:30
22:00
22:30
23:00
23:30