Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

return pricePerShare; } public void setPricePerShare(double pricePerShare) { thi

ID: 3568392 • Letter: R

Question

       return pricePerShare;
   }
   public void setPricePerShare(double pricePerShare) {
       this.pricePerShare = pricePerShare;
   }
   public double getChangePerShare() {
       return changePerShare;
   }
   public void setChangePerShare(double changePerShare) {
       this.changePerShare = changePerShare;
   }
  
  
   public boolean equals(Stock st)
   {
       if(st.name.equals(name))
       {
           return true;
       }
       return false;
   }
  
   public String toString()
   {
       String temp="";
       temp+="name: "+name+" ";
       temp+="price per share: "+pricePerShare+" ";
       temp+="change per share : "+changePerShare+" ";
      
       return temp;
      
   }
  
  
  

}

========================================================

PreferredStock.java

package com.charan;

public class PreferredStock extends Stock {
  
   private double dividendPerShare;
  
   public PreferredStock(String name, double pricePerShare,
           double changePerShare,double dividendPerShare) {
       super(name, pricePerShare, changePerShare);
       // TODO Auto-generated constructor stub
       this.dividendPerShare = dividendPerShare;
   }


   public String toString()
   {
       String temp=super.toString();
       temp+="dividend per share: "+dividendPerShare;
      
       return temp;
      
   }
  


}

Driver1.java

package com.charan;

public class Driver1 {

   /**
   * @param args
   */
   public static void main(String[] args) {
       // TODO Auto-generated method stub
      
       Stock st=new Stock("Charan",23.898,4566.8);
       System.out.println(st);
       System.out.println();
      
       PreferredStock ps=new PreferredStock("vishnu", 365.12, 2.1302, 32.0);
       System.out.println(ps);
       System.out.println();
      
      

   }

}

Explanation / Answer

SOLUTION:
import java.util.*;
public class Stock
{
   private String name;
   private double pricePerShare;
   private double changePerShare;
   public Stock(String name, double pricePerShare, double changePerShare)
   {
       this.name = name;
       this.pricePerShare = pricePerShare;
       this.changePerShare = changePerShare;
   }
   public Stock(Stock st)
   {
       name = st.name;
       pricePerShare = st.pricePerShare;
       changePerShare = st.changePerShare;
   }
   public String getName()
   {
       return name;
   }
   public void setName(String name)
   {
       this.name = name;
   }
   public double getPricePerShare()
   {
       return pricePerShare;
   }
   public void setPricePerShare(double pricePerShare)
   {
       this.pricePerShare = pricePerShare;
   }
   public double getChangePerShare()
   {
       return changePerShare;
   }
   public void setChangePerShare(double changePerShare)
   {
       this.changePerShare = changePerShare;
   }
   public boolean equals(Stock st)
   {
       if(st.name.equals(name))
       {
           return true;
       }
       return false;
   }

   public String toString()
   {
       String temp="";
       temp+="name: "+name+" ";
       temp+="price per share: "+pricePerShare+" ";
       temp+="change per share : "+changePerShare+" ";    
       return temp;    
   }
}
class PreferredStock extends Stock
{

   private double dividendPerShare;

   public PreferredStock(String name, double pricePerShare,double changePerShare,double dividendPerShare)
   {
       super(name, pricePerShare, changePerShare);
      
// TODO Auto-generated constructor stub
       this.dividendPerShare = dividendPerShare;
   }
   public String toString()
   {
       String temp=super.toString();
       temp+="dividend per share: "+dividendPerShare;    
       return temp;    
   }
   public double getDividendPerShare()
   {
       return this.dividendPerShare;
   }
}
class Driver1
{
   public static void main(String[] args)
   {
      
// TODO Auto-generated method stub
       ArrayList<Stock> list = new ArrayList<Stock>();
       Stock st1=new Stock("Charan",23.898,4566.8);
//Create New Stock Object
       list.add(st1);//Add to ArrayList
       Stock st2=new Stock("Karan",24.898,4966.8);//Create New Stock Object
       list.add(st2);//Add to ArrayList
    
       PreferredStock ps1=new PreferredStock("vishnu", 365.12, 2.1302, 32.0);
//Create New PreferredStock Object
       list.add(ps1);//Add to ArrayList
       PreferredStock ps2=new PreferredStock("kishnu", 355.12, 1.1302, 52.0);//Create New PreferredStock Object
       list.add(ps2);//Add to ArrayList
     
     
//Now Printing the Arraylist
       for(Stock i :list)
           System.out.println(i);
     
      
//Now proceeding to Calculate Stock Value & Dividend
       double value=0,dividend=0;
        for(Stock i :list)
        {
           
// Calculate Value;
            value+=((i.getPricePerShare()*100));//Adding to get value after multiplying by 100
           if(i instanceof PreferredStock)//Checking if instance of PreferredStock
           {
              
// Claculate Dividend for PreferedStock only;
               PreferredStock ii = (PreferredStock)i;// Type Casting
              dividend+=(ii.getDividendPerShare()*100);//Adding to get dividend after multiplying by 100
           }
        }
       System.out.println();
       System.out.println("Value:"+value);
       System.out.println("Dividend:"+dividend);
       System.out.println();
     
      
//Getting a COPY of PREFERRED STOCK & modifying it
       for(Stock i :list)
        {
         if(i instanceof PreferredStock)//Checking if instance of PreferredStock
           {
            Stock copy = new Stock(i);
//Note Here 'i' is an instance of PreferedStock
              copy.setName("ZZZZ");//Changing Name
              System.out.println();
              System.out.println("PRINTING AFTER MODIFYING THE COPY");
              System.out.println("Original PreferedStock:");
              System.out.println(i);
              System.out.println();
              System.out.println("COPY Stock:");
              System.out.println(copy);
              System.out.println();
              break;
           }
        }
      
/*Create a new PreferredStock itemthat has the same name as one of the items in your list and use the ArrayList indexOf method to display its position in the list. This will test your equals method*/
       for(Stock i :list)
        {
         if(i instanceof PreferredStock)
//Checking if instance of PreferredStock
           {
            PreferredStock copy2 = new PreferredStock("kishnu", 355.12, 5.1302, 72.0);
//Same Name as One Previous PreferedStock
              if(copy2.equals(i))
              {
// If Name Matches and they are Equal

                  System.out.println("Printing Index of Matched Name:");
                  System.out.println(list.indexOf(i));                
              }
           }
        }
   }
}

please comment for any doubts