本文发表在 rolia.net/zh 相约加拿大网上社区枫下论坛
Few interviewer will dispute with you about object-based, object-oriented, or object-supported. In any case, you should claim you are object-oriented. Once you have a good mastering of Java, you had better reform part of you FoxPro experiences into Java experiences. I am telling you survival skills. Some people tell me they want to be "honest". I can say if you are absolutely honest, you will starve in Canada. In Canada, employer need you have hands-on experiences even you want to be waiter in a Chinese restaurant.
Your question is really academic. In any case, you are object-oriented since you are learning Java. What is the difference between object-based and object-oriented?
The big difference is if there is polymorphism, if there are late bidning ( or dynamic binding). Without dynamic binding,
your stuff is object-based only.
I can gave you an example in Java. If you created a class called Animal. Your Animal has a move() method. Then, created some subclasses such as Cat, Dog, Snake. So far, you are object-based because you defined your own data-type and
Now, you make some modifications in your design: You make your Animal's move method abstract. Consequently, you are forced to implement move() method for each subclass. Let me assueme your have the following implementations: The cat jumps; The dog runs; The snake crawls. They move in different ways.
Suppose sb else have already stored a bunch of Animals in the Animal table in the database. Now you use JDBC to fetch these animals. Whenever an animal you get, you ask it to move. In Java, this anamil can move in the way they should do. In other words, you just need to get animals from the dababae and ask them to move. If it is a Snake, it will crawl. If it is a dog, it will run.
you DO NOT need to check if your animal is a dog or a cat. All these are implemented by dynamic binding, or late binding.
In Java, you have another way ---using Interface--- to implement polymorphism.
In C++, you can use virtual functions to implement polymorphism.
The relationship of polymorphism and dynamic (late) binding is: Polymorphism is realized by use of dynamic binding.
Though I have never touched FoxPro, I guess it is object-based at most. On the other hand,
SmallTalk, Objective C, C++ and Java are object-oriented.
Bruce-Eckel has an elegant example about polymorphism. He used musical instruments as examples. I suggest you have a look and run his example.
Rather than try to dig out some treasuries for your old skills, you would better spend more time to master new hot technologies. In the job interview, there is no mercies. If you tell the people: Hey I used FoxPro for 5 years, although it is no loger hot, but it supports OOP, .. so I an object-oriented... The employer would say: Man, no, no, I just need a guy who has hands-on experiences in Java, or in C++, ... They are merciless.
As I tried to get into IT field, I had ever done a terrific performance in a job interview. I answered correctly all the Java questions,
from Java basics to Java servlets. Unfortunately, I did not get an offer. The project manager insisted to hire a guy who has hands-on experiences in Weblogic.
After 6 months, I met a consultant who quited from that company. We talked about this matter. He told me: the manager did get a Weblogic guy but this guy is not good.
But I think this is fairness. Even though that guy (he is Chinese, too) is not so good, he should get the offer because he meets the standard.
After that job interview, I have my friend downloaded a trial version of Weblogic for me and played it for 2 weeks. I modifed my resume and got an offer. This job provides me a lot of opportunites to master new technologies...
更多精彩文章及讨论，请光临枫下论坛. 网址: rolia.net/zh