I have Java code that I created an Asset Class in I now need
I have Java code that I created an Asset Class in. I now need to extend it and create a few derivative classes. Each of those new classes has to be declared as extending the base Asset class and introduce new attributes and methods. For example...
Router
String application; // one from the following list \"Home\", \"Core\", \"Infrastructure\", etc
int numOfNICs; // number of network interfaces
String OS; // operating system. including vendor, version, and other details
boolean hasConsole; // flag that indicates presence of management console
Here is my previous code:
public static void main(String[] args) {
// List of company assets
Asset assetList[]=new Asset[7];
//assetList0 Server
assetList[0]=new Asset();
assetList[0].setType(\"Server\");
assetList[0].setId(0);
assetList[0].setName(\"IBM Blade Center Hs22\");
assetList[0].setSerial(\"CNU37569\");
assetList[0].setPid(-1);
//assetList1 Switch
assetList[1]=new Asset();
assetList[1].setType(\"Switch\");
assetList[1].setId(1);
assetList[1].setName(\"Cisco Catalyst 2960G\");
assetList[1].setSerial(\"WY752059\");
assetList[1].setPid(0);
//assetList2 PSU1
assetList[2]=new Asset();
assetList[2].setType(\"PSU1\");
assetList[2].setId(2);
assetList[2].setName(\"IBM 39Y7408 2900 Watt PSU\");
assetList[2].setSerial(\"JWI69839\");
assetList[2].setPid(0);
//assetList3 PSU2
assetList[3]=new Asset();
assetList[3].setType(\"PSU2\");
assetList[3].setId(3);
assetList[3].setName(\"IBM 39Y7408 2900 Watt PSU\");
assetList[3].setSerial(\"JWI29849\");
assetList[3].setPid(0);
//assetList4 NIC1
assetList[4]=new Asset();
assetList[4].setType(\"NIC1\");
assetList[4].setId(4);
assetList[4].setName(\"Cisco EHWIC-4ESG 4 Port NIC\");
assetList[4].setSerial(\"LWK76246\");
assetList[4].setPid(1);
//assetList5 Nic2
assetList[5]=new Asset();
assetList[5].setType(\"NIC2\");
assetList[5].setId(5);
assetList[5].setName(\"Cisco EHWIC-4ESG 4 Port NIC\");
assetList[5].setSerial(\"LWK98352\");
assetList[5].setPid(1);
//assetList6 Nic3
assetList[6]=new Asset();
assetList[6].setType(\"NIC3\");
assetList[6].setId(6);
assetList[6].setName(\"Cisco EHWIC-4ESG 4 Port NIC\");
assetList[6].setSerial(\"LWK56209\");
assetList[6].setPid(1);
for (Asset asset : assetList) {
System.out.println(asset);
}
}
}
class Asset
{
//instance variables of asset
String type;
int id;
String name;
String serial;
int pid;
//default constructor
Asset()
{
type=\"\";
id=0;
name=\"\";
serial=\"\";
pid=0;
}
//getters & setters
public void setType(String a)
{
type=a;
}
public String getType()
{
return type;
}
public void setId(int id)
{
this.id=id;
}
public int getId()
{
return id;
}
public void setName(String n)
{
name=n;
}
public String getName()
{
return name;
}
public void setSerial(String s)
{
serial=s;
}
public String getSerial()
{
return serial;
}
public void setPid(int pid)
{
this.pid=pid;
}
public int getPid()
{
return pid;
}
//toString() of asset
@Override
public String toString()
{
return \"\ \ Type: \" + getType() + \" \ ID: \" + getId() + \" \ Name: \" + getName() + \" \ Serial: \" + getSerial() + \" \ PID: \" + getPid() + \" \ \";
}
}
Can someone give me an example of how to create the derivative class for the router? I just need to understand how to setup the code so I can do it for all assets.
Solution
You can do it as under:
class Router extends Asset {
String application; // one from the following list \"Home\", \"Core\", \"Infrastructure\", etc
int numOfNICs; // number of network interfaces
String OS; // operating system. including vendor, version, and other details
boolean hasConsole; // flag that indicates presence of management console
//Create constructor as per your need
//don\'t forget to call super() in the constructor
//getters, setters and toString() as per your need
}
Further, you could create an asset of type router as say (at index 6)
assetList[6]=new Router();
assetList[6].setType(\"Some Type\");
assetList[6].setId(6);
assetList[6].setName(\"Cisco Router\");
assetList[6].setSerial(\"ABC876\");
assetList[6].setPid(2);
assetList[6].setApplication(\"Home\");
assetList[6].setNumOfNICs(4);
assetList[6].setOS(\"Linux\");
assetList[6].setHasConsole(false);



