The issue is that you can't invoke objectPO.getDateOfOrder() and objectPO.getProductType() methods before even objectPO object is created i.e., you are trying to create objectPO object by using the objectPO itself (which is part of your PurchaseOrder constructor call).
Rather, first create the objects for OrderDate (like orderDateObj) and Product (like productObj) by using the constructors of those classes first as shown below and then pass those objects to create PurchaseOrder object.
OrderDate orderDateObj = new OrderDate(...);//create object for OrderDate
Product productObj = new Product(...);//create object for Product
PurchaseOrder objectPO = new PurchaseOrder(orderDateObj,
"CGL-1234" , productObj, 250, 5);