logo Use CA10RAM to get 10%* Discount.
Order Nowlogo
(5/5)

Practice on implementing interfaces 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 
    • FootballPlayer will implement the interface TableMember
  2. Overriding methods 
    • when FootballPlayer implements TableMember, FootballPlayer will have to write the real Java code for all the interface abstract methods

Deliverables

A zipped Java

 

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. All the classes are required to have an "empty" constructor that receives no parameters but updates all the attributes as needed 
  6. Organized in packages (MVC - Model - View Controller)

Contents

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

Model is used to test if the TableMember interface was implemented correctly by the FootballPlayer class




  • <default package> 
    • App.java
  • Controller (not being used in this lab)
  • Model 
    • FootballPlayer.java
    • Height.java
    • Model.java
    • Person.java
    • TableMember.java
  • View (not being used in this lab)





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;
public class Model
{
public Model()
{
  FootballPlayer fp = new FootballPlayer(2, "Marcus Allen", "S", 6, 2, 209, "Upper Marlboro, MD", "Dr. Henry A. Wise");
System.out.println(fp.getAttributes().toString());
System.out.println(fp.getAttributes().toString()); //Yes, we are running getAttributes twice just to test it
for (int i = 0; i < fp.getAttributes().size(); i++)
{
System.out.println(i + " = " + fp.getAttributeName(i) + " - " + fp.getAttribute(i));
}
System.out.println(fp.getAttributeNames().toString());
System.out.println(fp.getAttributeNames().toString()); //Yes, we are running getAttributeNames twice just to test it
//if the implementation of TableMember by FootballPlayer is correct,
//the output will be
//
//[Marcus Allen, 6'2", 209, Upper Marlboro, MD, Dr. Henry A. Wise, 2, S]
//[Marcus Allen, 6'2", 209, Upper Marlboro, MD, Dr. Henry A. Wise, 2, S]
//0 = name - Marcus Allen
//1 = height - 6'2"
//2 = weight - 209
//3 = hometown - Upper Marlboro, MD
//4 = highSchool - Dr. Henry A. Wise
//5 = number - 2
//6 = position - S
//[name, height, weight, hometown, highSchool, number, position]
//[name, height, weight, hometown, highSchool, number, position] //
}
}



sample output of running Model.java




    • it creates a FootballPlayer object
    • uses this object to test and display the result of the newly implemented methods 
      • getAttribute(int n )
      • getAttributes( )
      • getAttributeName(int n)
      • getAttributeNames( )
  • 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
  • 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"

The Interface

  • TableMember

package Model;

import java.util.ArrayList;

public interface TableMember

{

    public String getAttribute(int n);

    public ArrayList<String> getAttributes();

    public String getAttributeName(int n);

    public ArrayList<String> getAttributeNames();

}

      • 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 four methods that FootballPlayer has to implement

public String getAttribute(int n);
Returns the value of a specific attribute. The input parameter start with 0 for the first attribute, then 1 for the second attribute and so on.

public ArrayList<String> getAttributes();
Returns the value of all attributes as an ArrayList of Strings.

public String getAttributeName(int n);
Returns the name of a specific attribute. The input parameter start with 0 for the first attribute, then 1 for the second attribute and so on.

public ArrayList<String> getAttributeNames();
Returns the name of all attributes as an ArrayList of Strings. the abstract methods are 








You are building an application to display data in the form of a table. This is the first step.

With FootballPlayer implementing TableMember FootballPlayer objects can be displayed in a table.

The methods you are implementing will support that.




A strategy 

  • if you develop getAttribute(int n) first, then you can use it in getAttributes( ) with a for loop getting each getAttribute(int n).
  • The other way is also true, if you develop getAttributes( ) first, then you can use getAttributes( ) getting the elements one by one as needed by getAttributes(int n).
  • The same is true for getAttributeName(int n) and getAttributeNames( ).







(5/5)
Attachments:

Expert's Answer

1036 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

1036 Times Downloaded

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

expert
Um e HaniScience

988 Answers

Hire Me
expert
Muhammad Ali HaiderFinance

868 Answers

Hire Me
expert
Husnain SaeedComputer science

963 Answers

Hire Me
expert
Atharva PatilComputer science

906 Answers

Hire Me

Get Free Quote!

299 Experts Online