I believe this question has been answered in-depth countless times on these forums. If you search for "Java" and "object oriented" I am sure you will find answers far more detailed than I can provide.
Ankur Sharma
Ranch Hand
Joined: Dec 27, 2005
Posts: 1234
posted
0
Originally posted by satyabira pradhan: sir is java 100% object oriented or not
Mr. Pradhan,
You must check prior to post here this thread..
It's really used again and again.
Java is the only language which supports 99% OOP concepts. The remaining one is just becoz, it also has non object-oriented things like primitive types which they cannot eliminate. But still we have wrapper classes for the respective primitive types.
Java is a pure OOP supporting language.
It's not easy to define what Object-Oriented Programming is, but here are some of its characteristics:
1. Object definitions (classes) usually correspond to relevant real-world objects. 2. The majority of methods are object methods (the kind you invoke on an object) rather than class methods (the kind you just invoke). 3. The language feature most associated with object-oriented programming is inheritance.
..... and so on.... there will be hundred of articles on this topic.....
Why do you think this question is "very important"?
This question is not important at all for people who need to program in Java for their job. Does it matter if Java is "100% object oriented" (whatever that means) or not? No, it doesn't. You just need to know how to use Java, and whether it is called "100% object oriented" or not isn't interesting.
The question is only interesting for academic discussions and it can only be answered if you first agree upon what "100% object oriented" means - there's no common, exact definition of that concept that everybody agrees upon.
Originally posted by Ankur Sharma: Java is the only language which supports 99% OOP concepts.
Huh. No, certainly not.
The remaining one is just becoz, it also has non object-oriented things like primitive types which they cannot eliminate.
They didn't have to introduce primitives. Smalltalk doesn't have primitives, for example.
They explicitely introduced primitives for performance reasons.
Java is a pure OOP supporting language.
If there is a "pure OOP" language at all, it's certainly not Java. And not only because of the existance of primitives.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Stan James
(instanceof Sidekick)
Ranch Hand
Joined: Jan 29, 2003
Posts: 8791
posted
0
If this is homework, I think you'd do well to do your own research (!) and make up a list of things that make something object oriented or not, and see how Java fits.
Maybe this will be a starting point. I assert: On the first day there was OOP ( OOP == Smalltalk ) was true and it was Good.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
I'm not sure how OO Simula was (pretty close I think, since Smalltalk was a failed attempt to reverse engineer Simula) but I don't believe they called it OO. Alan Kay famously gets laughs saying "C++ is not object oriented. I can say that because I made up the term 'object oriented' and C++ is NOT what I had in mind." You'll have to decide if you want to believe that or not.
Tony Morris
Ranch Hand
Joined: Sep 24, 2003
Posts: 1608
posted
0
Originally posted by Stan James: I'm not sure how OO Simula was (pretty close I think, since Smalltalk was a failed attempt to reverse engineer Simula) but I don't believe they called it OO. Alan Kay famously gets laughs saying "C++ is not object oriented. I can say that because I made up the term 'object oriented' and C++ is NOT what I had in mind." You'll have to decide if you want to believe that or not.
...which supports the conjecture that every thread titled "is X object-oriented?" is going to be full of "axiom shift" since the question is not "is Java object-oriented?", but "what is object-oriented in formal terms?". What "Alan Kay had in mind" has never been formally expressed (can it be or is it an ideology that was full of contradiction at the moment of its inception? only externalisation for scrutiny can help determine this) therefore, the community continues to ponder a fruitless question with little meaning beyond "buzzword compliance" or taking advantage of a naive audience of apathetic mass of software developers as I prefer to see it.
Too many people are driven in their choice of tools purely by hype and buzzwords. See the rush towards Ajax now, EJB a few years ago, XML before that, "SOA", "Web Services", "Agile methods", AOP, etc. etc.
Or in other areas, how else to explain the fact that droves queue in line every time a new game computer is set to be released? They've hardly had time to use the previous one, but there's a new one that has some much hyped feature so they MUST have it and the "old" one they bought last month is now no longer good for anything.
I was with Tony right up to the end. It's not fruitless to get someone to think about what OO is and how what does one language or another do that lines up nicely with that. Realizing I miss a feature from A while using B prompts me to learn B better and wonder if what I miss was so good in the first place.
And one day I'm going to take Tony's characterization of the unworthy masses of us that are not him personally.
Tony Morris
Ranch Hand
Joined: Sep 24, 2003
Posts: 1608
posted
0
Originally posted by Stan James: And one day I'm going to take Tony's characterization of the unworthy masses of us that are not him personally.
I could rant on about how myself or someone else is more or less ignorant than others, but the overriding incompleteness paradox mandates that I am infinitely ignorant like the rest of us mate