CS 4773 Object Oriented Systems
Object Oriented Programming Concepts as Applied to Java


Previous Topic: The Java Language

Does the Language Make A difference?
Attributes of Complex Systems
Decomposition
What is Object Oriented Programming?
OOP Concepts
Responsibilities
Encapsulation
Classes and Instances
Class Hierarchies and Inheritance
Uses of Inheritance
Replacement
Refinement
Assignment
Equality
Polymorphism

Next Topic: Applets


This discussion is taken from

Does the Language Make a Difference?

In Eskimo languages there are many words to describe different types of snow (wet, fluffy, heavy, etc).
Does this mean that snow cannot be adequately described in English?

Suppose that in an Eskimo language there was no general word for snow, just words for specific forms of snow.
Does this mean you could not express the concept: It is snowing?

Are there any advantages to a language that forces you to be specific rather than general?
Do these languages make you think in different ways?

Two views

Church's Conjecture: Any computation for which there exists an effective procedure can be realized by a Turing machine.

Sapir-Whorf hypothesis:It may be possible for an individual working in one language to imagine thoughts that cannot be expressed in another language, and cannot be understood by those using this other language.

It is possible for both of these to be correct.

Which ever is correct it is certainly true that the language we use influences the way we think.

Object-oriented programming is a programming paradigm: an model or example of how programs should be designed.
The paradigm is important to the design of complex systems.


Attributes of Complex Systems


Decomposition

The method of divide and conquer has been known since ancient times.

What is Object Oriented Programming?

Object-oriented programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships.


OOP Concepts



Next topic: Applets