OOP allows you to describe the problem in terms of the problem, rather than in terms of the computer where the solution will run.
object
1.Everything is an object.
2.A program is a bunch of objects telling each other what to do by sending messages.
3. Each object has its own memory made up of other objects.
4. Every object has a type.
5. All objects of a particular type can receive the same messages.
An object has state, behavior and identity.This means that an object can have internal data (which gives it state) ,methods (to produce behavior), and each object can be uniquely distinguished from every other object—to put this
in a concrete sense, each object has a unique address in memory.
Class
Classes is an abstract data types
When you see the word “type” think “class” and vice versa.
The interface determines the requests that you can make for a particular object.
Reusing the implementation
Composition
Composing a new class from existing classes, this concept is called composition (if the compositionhappens dynamically, it’s usually called aggregation).
Inheritance
When you inherit from an existing type, you create a new type. This new type contains not only all the members of the existing type (although the private ones are hidden away and inaccessible), but more importantly it duplicates the interface of the base class. That is, all the messages you can send to objects of the base class you can also send to objects of the derived class.
Since we know the type of a class by the messages we can send to it, this means that the derived class is the same type as the base class.
In your derived class, you can add new methods or you can override a method in base class
Interchangeable objects with polymorphism
The singly rooted hierarchy
Containers
The singly rooted hierarchy
Parameterized type(generics)
A parameterized type is a class that the compiler can automatically customize to work with particular types. For example, with a parameterized container, the compiler could customize that container so that it would accept only Shapes and fetch only Shapes.
One of the big changes in Java SE5 is the addition of parameterized types, called generics in Java. You’ll recognize the use of generics by the angle brackets with types inside; for example, an ArrayList that holds Shape can be created like this:
ArrayList<Shape> shapes = new ArrayList<Shape>()
Concurrent programming
If you have more than one task running that’s expecting to access the same resource, you have a problem. To solve the problem, resources that can be shared, such as the printer, must be locked while they are being used. So a task locks a resource, completes its task, and then releases the lock.
Java and the Internet
What is web
Client/server computing
The Server:
The software that distributes the information, and the machine(s) where the information and software reside are called “the server.
The client:
The software that resides on the consumer machine, communicates with the server, fetches the information, processes it, and
then displays it on the consumer machine is called the client.