This document provides an overview of object-oriented programming (OOP) and Java. It defines key OOP concepts like classes, objects, methods, attributes, inheritance, encapsulation, and polymorphism. It also introduces Java, describing it as a general-purpose, object-oriented programming language that is simple, portable, reliable, secure, and multithreaded. The document notes some of Java's advantages over C++ as well as its potential disadvantage of being slower than compiled languages like C.
2. Programming Languages
Programming languages allow programmers
to code software.
The three major families of languages are:
Machine languages
Assembly languages
High-Level languages
3. Machine Languages
Comprised of 1s and 0s
The native language of a computer
Difficult to program one misplaced 1 or 0
will cause the program to fail.
Example of code:
1110100010101 111010101110
10111010110100 10100011110111
4. Assembly Languages
Assembly languages are a step towards easier
programming.
Assembly languages are comprised of a set of
elemental commands which are tied to a
specific processor.
Assembly language code needs to be
translated to machine language before the
computer processes it.
Example:
ADD 1001010, 1011010
5. High-Level Languages
High-level languages represent a giant leap
towards easier programming.
The syntax of HL languages is similar to
English.
Historically, we divide HL languages into two
groups:
Procedural languages
Object-Oriented languages (OOP)
6. Procedural Languages
Early high-level languages are typically called
procedural languages.
Procedural languages are characterized by
sequential sets of linear commands. The focus
of such languages is on structure.
Examples include C, COBOL, Fortran, LISP, Perl,
HTML, VBScript
7. Object Oriented Programming
Object Unique programming entity that has
methods, has attributes and can react to
events.
Method Things which an object can do; the
verbs of objects. In code, usually can be
identified by an action word -- Hide, Show
8. Object Oriented Programming
Attribute Things which describe an object;
the adjectives of objects. In code, usually
can be identified by a descriptive word
Enabled, BackColor
Events Forces external to an object to which
that object can react. In code, usually attached
to an event procedure
9. Object Oriented Programming
Class Provides a way to create new objects
based on a meta-definition of an object
(Example: The automobile class)
Constructors Special methods used to create
new instances of a class (Example: A Honda
Civic is an instance of the automobile class.)
10. OOP - Encapsulation
Incorporation into a class of data & operations
in one package
Data can only be accessed through that
package
Information Hiding
11. OOP - Inheritance
Allows programmers to create new classes
based on an existing class
Methods and attributes from the parent class
are inherited by the newly-created class
New methods and attributes can be created in
the new class, but dont affect the parent
classs definition
12. OOP - Polymorphism
Creating methods which describe the way to
do some general function (Example: The
drive method in the automobile class)
Polymorphic methods can adapt to specific
types of objects.
13. Classes and Objects
A class is a data type that allows programmers to
create objects. A class provides a definition for an
object, describing an objects attributes (data)
and methods (operations).
An object is an instance of a class. With one
class, you can have as many objects as required.
This is analogous to a variable and a data type,
the class is the data type and the object is the
variable.
15. Mam, I learnt that, object is a instance of
class, and constructor is also a instance of a
class. How can it be possible mam?. Can you
please explain mam? But the declaration of a
object is different from constructor.(learnt
from c++) Please explain mam
16. A class is a kind of data type, just like a string,
integer or list. When we create an object of
that data type, we call it an instance of a class.
17. A constructor is a member function of a class
which initializes objects of a class. In C++,
Constructor is automatically called when
object(instance of class) create. It is special
member function of the class.
18. How constructors are different from a normal
member function?
A constructor is different from normal
functions in following ways:
Constructor has same name as the class itself
Constructors dont have return type
A constructor is automatically called when an
object is created.
19. If we do not specify a
constructor, C++ compiler
generates a default
constructor for us (expects
no parameters and has an
empty body).
20. we have created a simple object and then we
assign values to each data member of the
class in the main function after reading these
values from the standard input. Then ,we will
take a look at a special function that is used to
initialize the object during its creation. This
special function is called a constructor.
23. What is java?
Developed by Sun Microsystems (James Gosling)
A general-purpose object-oriented language
Based on C/C++
Designed for easy Web/Internet applications
Widespread acceptance
24. Java Features (1)
Simple
fixes some clumsy features of C++
no pointers
automatic garbage collection
rich pre-defined class library http://java.sun.com/j2se/1.4.2/docs/api/
Object oriented
focus on the data (objects) and methods manipulating the data
all functions are associated with objects
almost all datatypes are objects (files, strings, etc.)
potentially better code organization and reuse
25. Interpreted
java compiler generate byte-codes, not native machine code
the compiled byte-codes are platform-independent
java bytecodes are translated on the fly to machine readable
instructions in runtime (Java Virtual Machine)
Portable
same application runs on all platforms
the sizes of the primitive data types are always the same
the libraries define portable interfaces
Java Features (2)
26. Java Features (3)
Reliable
extensive compile-time and runtime error checking
no pointers but real arrays. Memory corruptions or unauthorized
memory accesses are impossible
automatic garbage collection tracks objects usage over time
Secure
usage in networked environments requires more security
memory allocation model is a major defense
access restrictions are forced (private, public)
27. Java Features (4)
Multithreaded
multiple concurrent threads of executions can run simultaneously
utilizes a sophisticated set of synchronization primitives (based on
monitors and condition variables paradigm) to achieve this
Dynamic
java is designed to adapt to evolving environment
libraries can freely add new methods and instance variables without
any effect on their clients
interfaces promote flexibility and reusability in code by specifying a set
of methods an object can perform, but leaves open how these
methods should be implemented
can check the class type in runtime
28. Java Disadvantages
Slower than compiled language such as C
an experiment in 1999 showed that Java was 3 or 4 times slower than
C or C++
title of the article: Comparing Java vs. C/C++ Efficiency Issues to Interpersonal
Issues (Lutz Prechelt)
adequate for all but the most time-intensive programs