This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
I am having a hard time wrapping my head around this and I feel like it must be simple. My professor wants us to write a "software" that computes a monthly payment for any fixed rate mortgage using OOA, OOD, and OOP. Where my confusion is we have already written a program that does the exact thing that he wants this software to do. However, this time he wants three separate classes. Can someone please explain what the difference is? I also do not understand how to run such a thing in Eclipse since I have only ever run one class at a time in Eclipse. My original code for the mortgage calculator when it was just a "program" not a "software" is below. Any help is greatly appreciated!!
"Software" is a very general term. Any program you write will be software. "Program" is also often used very generically, and interchangeably with "software," but when it is used more specifically, it is probably used to mean something similar "application", as distinct from "library" or "operating system." I think "program" may also have had a more specific meaning in the earlier days of computing. I doubt that your instructor meant "Okay, this time write software instead of a program." More likely he's just using the words interchangeably.
As for this specific assignment, I guess you're supposed to break that monolithic program up into separate classes. Without knowing more about the requirements, it's hard to say what those classes would be. I could see one class that's a MortgageCalculator and one that's a Main class that takes user input can the uses that to feed the calculator. I don't know what the third would be though without more background. Maybe the calculation has two distinct parts and you're supposed to create a class for each? Or maybe one class just handles user input?
As for "running one class at a time," you'll still run it the same way. You're already using other classes--System, Scanner, and String at least--and you're still just "running" one class. So now you'll have your Main (or "driver") class, and instead of having all the work done in that class, you'll use other classes that you create to do the calculations, along with the classes you're already using to do other work for you.