Results 1 to 2 of 2

Thread: I Need Help >_<

  1. #1
    superhoha is offline Member
    Join Date
    Apr 2009
    Rep Power

    Unhappy I Need Help >_<

    Hello. I need help.
    Ill go straight to the point:

    I have 3 classes:
    public class AssembledPart extends Part
    static Part part0 = new Part(null,null,0, 0);
    static Part part1 = new Part(null,null, 0, 0);

    public AssembledPart(String ID,String name, int stockLevel,double unitPrice,Part p0,Part p1)
    super( ID,name,stockLevel,unitPrice);

    static public int getAvailForAssembly()
    int min;
    if(part0.getStockLevel() >= part1.getStockLevel())
    return min;

    The first one, AssembledPart, is a sub- class of Part. In this, please pay attention to the 3 static variables and method.

    The second one is the super class, Part:
    public class Part{
    private String ID;
    private String name;
    private int stockLevel;
    private double unitPrice;

    * Constructor
    public Part()
    ID = null;
    stockLevel = 1;

    public Part(String ID, String name, int stockLevel, double unitPrice){
    this.ID = ID; = name;
    this.stockLevel = stockLevel;
    this.unitPrice = unitPrice;

    public String getID(){
    return ID;

    public String getName(){
    return name;

    public int getStockLevel(){
    return stockLevel;

    public double getUnitPrice(){
    return unitPrice;

    * Replenish the inventory
    public void replenish(int qty){
    stockLevel += qty;

    * Suppply.
    * Return the cost of the supply if there's enough in stock
    * otherwise return -1.0
    public double supply(int qty){

    if (qty <= stockLevel){
    stockLevel = stockLevel - qty;
    return (qty * unitPrice);
    else if (qty <= stockLevel+AssembledPart.getAvailForAssembly()){

    AssembledPart.part0.stockLevel= AssembledPart.part0.stockLevel - qty + stockLevel;
    AssembledPart.part1.stockLevel= AssembledPart.part1.stockLevel - qty + stockLevel;
    return (qty * (unitPrice + AssembledPart.part0.unitPrice + AssembledPart.part1.unitPrice));


    return -1;

    Please note the supply method, in which used the static method and variable in the AssembledPart class. And I think it is necessary.

    It will have no problem if I dont have the 3rd class:
    public class Main {

    public static void main(String[] args) {
    Part[] P = new Part[4];

    P[0] = new Part("p101", "Crank", 218, 12.20);
    P[1] = new Part("p102", "Pedal", 320, 14.30);
    P[2] = new Part("p103", "HandleBar", 120, 35.50);
    P[3] = new Part("p104", "Stem", 90, 20.00);

    AssembledPart[] AP = new AssembledPart[2];
    AP[0] = new AssembledPart("p183", "Crank-Pedal", 80, 3.50, P[0], P[1]);
    AP[1] = new AssembledPart("p184", "HandleBar-Stem", 30, 1.50, P[2], P[3]);



    The problem is here: When I declare an array for Assembled Part, please notice the last 2 arguments, which are P[0] and P[1], then P[2] and P[3]. because of static variable I declared earlier in AssembledPart class, when I declare AP[1] with P[2] and P[3], AP[0]'s 2 last arguments, which suppose to be P[0] and P[1], change in to P[2] and P[3].
    Now, I dont know what to do. If I dont declare variable and method in AssembledPart as static, I will be able to do Main class, but unable to pass the method and variable to Part class. If I do, then the Main class will not run.

    HELP ME PLEASE!! This is urgent.
    MANY thanks.

  2. #2
    mtyoung is offline Senior Member
    Join Date
    Dec 2008
    Hong Kong
    Rep Power


    your program seems containing logic problem...
    super class use subclass object in its method...?

    you better reconstruct your program...
    if you dont...
    i suggest to use non-static variable and non-static method in AssembledPart
    and supply method in Part, you add to accept 2 more input parameter Part p1, Part p2

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts