0% found this document useful (0 votes)
30 views73 pages

Unit - 1 L4

Uploaded by

ramachandran c
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views73 pages

Unit - 1 L4

Uploaded by

ramachandran c
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 73

P17CAI3203

PROGRAMMING WITH
JAVA
Course Name: Java Programming
Course Number: P17CAI3203
Credits: 4
Pre-requisite: NIL

Course Description:
This course introduces computer programming using the JAVA
programming language with object-oriented programming principles.
Emphasis is placed on event-driven programming methods, including
creating and manipulating objects, classes, and using object-oriented
tools such as the class debugger. Upon completion students should be
able to design, code, test, and debug JAVA language programs.
Learning
Objectives
After successful completion of this course, the students should be able to
CO1: Apply the fundamental core java, packages, database connectivity for
computing
CO2: Implement Java programs.
CO3 :Make use of hierarchy of Java classes to provide a solution to a given set
of requirements found in the Java API
CO4:Use the frameworks JSP, Hibernate, Spring
CO5: Design and implement server side programs using Servlets and JSP.
Sources of
Content
Herbert Schildt, The Complete Reference – Java 2, Ninth Edition,
Tata McGraw Hill, 2014

Amritendu De, “Spring 4 and Hibernate 4: Agile Java Design and


Development”, McGraw-Hill Education, 2015

Mahesh P. Matha, “Core Java A Comprehensive Study”, Prentice Hall


of India, 2011

www.javaTpoint.com
Agenda
Java features – Java Platform –
Java Fundamentals –
Expressions, Operators, and
Control Structures – Classes,
Methods – Inheritance - Packages
and Interfaces – Boxing, Unboxing
– Variable-Length Arguments
(Varargs), Exception Handling.
Object-Oriented Languages
• The focus of OOP languages is not on structure,
but on modeling data.
• Programmers code using “ blueprints” of
data models called classes.
• Examples of OOP languages include
C++, Visual Basic.NET and Java.

7
Early programming languages
1950s 1960s 1970s
Simula
Lisp
Algol60 Algol68

Fortran Pascal

COBOL BCPL Classic C

PL\1

Red==major commercial use


12
Blue==will produce important “offspring”
Modern programming languages
Lisp Python
Smalltalk PHP
Fortran77
Eiffel Java95 Java04
Simula67

C89 C++ C++98 C++0x

Ada Ada98 C#

Pascal Object Pascal


COBOL04 Javascript
COBOL89
Visual Basic
PERL 13
• Simula is a name for two simulation programming
languages, Simula I and Simula 67, developed in the
1960s at the Norwegian Computing Center in Oslo, by
Ole-Johan Dahl and Kristen Nygaard.
• Simula is considered the first object-
oriented
programming language.
• Simula was designed for doing simulations, and the
needs of that domain provided the framework for many of
the features of object-oriented languages today.
10
 Introduction
– A Brief Programming History
– OOP
– Classes & Objects

11
OOP
• OOP is mainly a program design philosophy.
• OOP uses a different set of programming
languages than old procedural
languages (C, Pascal, etc.). programming
• Everything in OOP is as
grouped sustainable "objects". self
you of four main object-gain re-
Hence,by means
usability
oriented programming concepts.
12
OOP
• In OOP programmers define not only the data type of a data
structure, but also the types of operations/methods
(functions) that can be applied to the data structure.
• In this way, the data structure becomes an object that
includes both data and functions (methods) in one unit. In
addition, programmers can create relationships between
one object and another.
• For example, objects can inherit characteristics from other
objects.
13
Object-Oriented Programming Languages

· Pure OO Languages
Eiffel, Actor, Emerald, JADE, Obix, Ruby, Python, Scala,
Smalltalk, Self.

· Hybrid OO Languages
Delphi/Object Pascal, C++, Java, C#, VB.NET, Pascal,
Visual Basic, MATLAB, Fortran, Perl, COBOL 2002,
PHP, ABAP, Ada 95.

14
OOP
Key idea in object-oriented:

The real world can be “accurately” described as a


collection of objects that interact.

15
OOP Basic Terminology
Object
- usually a person, place or thing (a noun)
Method
- an action performed by an object (a verb)
Property or attribute
- Characteristics of certain object.
Class
- a category of similar objects (such as automobiles), does
not hold any values of the object ’s attributes/properties

16
Introduction
– A Brief Programming History
– OOP
– Classes & Objects

17
Classes and Objects
• A class is a prototype, idea, and blueprint for
creating objects.
• An object is an instance of a class.
• For example, in Java we define
classes, which in turn are used to create
objects
• A class has a constructor for creating objects
• Class is composed of three things: its
name, attributes/properties, and methods.
18
Classes (objects)

Class

Class Properties:
Objects: Belong to the class
Instances of the class

Methods:
Functions of class
Instance Properties:
Belong to the object

19
Classes & Objects

A class is a definition of
objects with the same
properties and the same
methods.

20
Classes Example

21
Almost everything in the world can be
represented as an object

• A flower, a tree, an animal


• A student, a professor
• A desk, a chair, a classroom, a building
• A university, a city, a country
• The world, the universe
• A subject such as CS, IS, Math, History, …
• An information system, financial, legal, etc..
22
What Is an Object, again?

An object is an instance of a class

23
More about objects
• Informally, an object represents an entity, either
physical, conceptual, or software.

– Physical entity
Truck

– Conceptual entity
Chemical
Process

– Software entity

Linked List
24
More formal definition of an “Object”

An object is a computational entity that:


1. Encapsulates some state
2. Is able to perform actions, or methods, on
this state
3. Communicates with other objects via
message passing

25
Classes & Objects

“XCC”la
ACsRAs
R

PROPERTY METHOD
Plate no: AD47483
PROPERTY
Color: Blue M
Move s
MMoovvDoeessomething:
s
ManufAatctrtuibruerte: Moves right
function & procedure
Morerscteadtees Model: bbaacckleft
Moves wwaarrdd
k
CLK E T HOD
foStops
rw ard
Gear type: Automatic

26
Classes & Objects
class

Time
inTime
hour Attributes:
hour = 8
minute minute = 30
Methods:
void
void addMinutes( int addMinute
m) s(int m)
outTime
Attributes:
hour =
17
minute = 35
Methods:
objects
void
addMinute
s(int m)

27
Class/Object

Each copy of an
object from a
particular class is
called an instance
of the class.

28
Class/Object

The act of creating a


new instance of an
class is called
instantiation.

29
In short…
• An Object is a Class when it comes alive!
• Homo Sapien is a class, John and Jack are
objects
• Animal is a class “Snowball” the cat is an
object
• Vehicle is a class My neighbor's BMW is an
object
• Galaxy is a class, the MilkyWay is an
object 30
Technical contrast between Objects &
Classes

CLASS OBJECT
Class is a data type Object is an instance of Class.

It generates OBJECTS It gives life to CLASS

Does not occupy memory It occupies memory location.


location
It cannot be manipulated It can be manipulated.
because it is not available
in memory (except static class)

Object is a class in “runtime”


31
Objects Need to Collaborate!
• Objects are useless unless they
can collaborate together to solve a
problem.
– Each object is responsible for its
own behavior and status.
– No one object can carry out every
responsibility on its own.
• How do objects interact with each other?
– They interact through messages.
32
Object Interaction
Object 1 Object 2

Message
Property Property

Method Method

Object 3

Property

Method

33
Example of Object Interaction
• The OrderEntryForm wants Order to calculate the total NOK
value for the order.

calculateOrderTotal()
orderID
date
salesTotal
tax
shipDate

Message

OrderEntryForm Order

The class Order has the responsibility to calculate the total NOK value.

34
 OOP Basic Concepts
– Encapsulation
– Inheritance
– Abstraction
– Polymorphism

35
Encapsulation

36
Encapsulation
• Is the inclusion of property & method within a
class/object in which it needs to function properly.
• Also, enables reusability of an instant of an
already implemented class within a new class
while hiding & protecting the method and
properties from the client classes.

37
Encapsulation
• The class is kind of a container or capsule or a cell,
which encapsulate the set of methods, attributes and
properties to provide its indented functionalities to other
classes.
• In that encapsulation also allows a class
sense,
change to
its internal implementation without hurting
the
overall functioning of the system.
• That idea of encapsulation is to hide how a class does its
operations while allowing requesting its operations.
38
Encapsulation in action
Example:
• Let’s say we have a class called “Date” (day,
month, year). And then you need to define
another class called “Person” that has the
following attributes (first name, last name, and
birthdate). So in this case we can instantiate an
object from class “Date” inside class “Person”.

39
Encapsulation –
 Benefits
Ensures that structural changes remain local:
 Changing the class internals does not affect any
code outside of the class
 Changing methods'
implementation does not reflect the clients using them
 Encapsulation allows adding some logic
when accessing client's data
 E.g. validation on modifying a property value

 Hiding implementation details reduces


complexity
 easier maintenance 44
 OOP Basic Concepts
– Encapsulation
– Inheritance
– Abstraction
– Polymorphism

41
Inheritance
• Inheritance—a way of organizing classes
• Term comes from inheritance of traits like
eye color, hair color, and so on.
• Classes properties in common can be
with
grouped so that their common properties
are only defined once in parent class.
• Superclass – inherit its attributes & methods to
the subclass(es).
• Subclass can inherit all its
attributes
– & methods
superclassbesides having its
own unique attributes & methods.
42
Inheritance
• Inheritance allows child classes to inherit
the characteristics of existing parent class
• Attributes (fields and properties)
• Operations (methods)
• Child class can extend the parent class
• Add new fields and methods
• Redefine methods (modify existing behavior)
• A class can implement an interface by providing
implementation for all its methods
47
47
Inheritance

• Expresses commonality among


classes/objects
• Allows code reusability
• Highlights relationships
• Helps in code organization

44
Inheritance

45
Inheritance –
Example
Base
Person class
+Name: String
+Address: String

Derived Derived
class class

Employee Student
+Company: String +School: String
+Salary: double
+Name: String +Name: String
+Address: String +Address: String
50
50
An Inheritance Hierarchy

Superclass
Vehicle
Subclasses

Automobile Motorcycle Bus

Sedan Sports Car School Bus Luxury Bus

51
Example: Single Inheritance
One class inherits from another.
Ancestor
Account
- balance
- name
Superclass - number
(parent)
+ withdraw()
+ createStatement()

Inheritance
Relationship

Savings Checking
Subclasses

Descendents 52
Example: Multiple Inheritance

• A class can inherit from several other


classes.
FlyingThing Animal

Multiple Inheritance

Airplane Helicopter Bird Wolf Horse

Most modern languages don’t support multiple inheritance!


49
 OOP Basic Concepts
–Encapsulation
– Inheritance
– Abstraction
– Polymorphism

50
Type of Classes

Concrete Class Abstract Class

Can be instantiated directly Can’t be instantiated directly

51
Abstraction
• Abstraction is a design principle.

• Is the process of removing characteristics from something in


order to reduce it to a set of essential characteristics.
• Through the process of abstraction, a programmer hides
all
but the relevant data about a class in to reduce
order complexity and increase reusability.
• Abstraction is a basic representation of a concept.

52
Abstraction
• Abstraction allows programmers to represent complex
real world in the simplest manner.
• It is a process of identifying the relevant qualities and
behaviors an object should possess, in other word
represent the necessary features without representing
the back ground details
• You should always use abstraction to ease reusability,
and understanding for the design and enable extension.
• When we design the abstract classes, we define
the
53
framework for later extensions.
Abstraction
• An abstract class, which declared with the
“abstract” keyword, cannot be instantiated.
• It can only be used as a super-class for
other classes that extend the abstract
class. Abstract class is a design concept
and implementation gets completed when
it is being realized by a subclass.

54
Abstraction - type of classes
DOB:
Person Name:
Address:

Concrete Class Abstract Class

Can be instantiated directly Can’t be instantiated directly

DOB: DOB:
Name: Teacher Student Name:
Address: Address:
Specialization: GPA:
Academic Title: Courses:
Etc…: Etc…:
Can be instantiated directly 59
Abstraction
• An abstract class is a class that may not have any direct
instances.
• An abstract operation is an that it
operation incomplete and requires
a
implementation child
of to
the operation. is
supply
Shape
{abstract} Abstract class an
draw () {abstract} Abstract operation

Circle Rectangle

draw () draw () 56
 OOP Basic Concepts
– Encapsulation
– Inheritance
– Abstraction
– Polymorphism

57
Polymorphism

• Encapsulation, Inheritance, and


Abstraction concepts are very related
to Polymorphism.

58
Polymorphism
• Polymorphisms is a generic term that means 'many
shapes'. More precisely Polymorphisms means the
ability to request that the same methods be performed
by a wide range of different types of things.
• In OOP, polymorphisms is a technical issue and
principle.
• It is achieved by using many different techniques named
method overloading, operator overloading, and method
overriding.
59
Polymorphism

• An object has “multiple identities”, based


on its class inheritance tree
• It can be used in different ways

60
Polymorphism
• In Java, two or more classes could each have a
method called output
• Each output method would do the right thing
for the class that it was in.
• One output might display a number
(output.number) in one class, whereas it might
display a name (output.text) in another class.

61
Polymorphism
• It is the ability to look at a class in
its parent image.
• Lets see the robot example throughout the
following few slides

62
Polymorphism- Abstract class, again!!!!

• It is a class that you cannot instantiate


from, however, you use it to dominate and
specify how the minimum requirements in
an inherited classes should be.
public abstract class Robot
{
public virtual abstract void Move()
// abstract move needs
} 63
public class LeggedRobot:Robot
{
public override void Move()
{
// actions of legged robot to move
}
}

64
public class WheeledRobot:Robot
{
public override void Move()
{
// actions of Wheeled robot to move
}
}
65
public void moveRobot(Robot A)
{
A.Move();
}

66
public moveAllRobots()
{
LeggedRobot lr = new LeggedRobot();
WheeledRobot wr = new WheeledRobot();

moveRobot(lr);
moveRobot(wr);
}
67
Polymorphism

S hi a
BDraw()
Void

rpde

S.Draw()
C.Draw()
T.Draw(
)

68
Concluding Remarks

69
Advantages of OOP
• Code reuse & recycling
• Improved software-development productivity
• Improved software maintainability
• Faster development
• Lower cost of development
• Higher-quality software
• Encapsulation

70
Disadvantages of OOP
• Steep learning curve
• Could lead to larger program sizes
• Could produce slower programs

71
OOP Suitability
• Object oriented programming is good in
complex projects or modular type of
systems. It allows simultaneous system
development teams and also could aid
in agile system development
environments like Xtreme Programming.

72
References
MIT OpenCourseWare:
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-01sc-
introduction-to-electrical-engineering-and-computer-science-i-spring-2011/unit-1-
software-engineering/object-oriented-programming
Larman, C. (2012). Applying UML and Patterns: An Introduction to
Object- Oriented Analysis and Design and Iterative Development, 3/e. Pearson
Education
India.
http://docs.oracle.com/javase/tutorial/java/concepts
http://en.wikipedia.org/wiki/Object-oriented_programming

https://www.udacity.com/wiki/classes
https://weblogs.java.net/blog/potty/archive/2014/01/20/introduction-object-
oriented-programming-oop-part-i
Lischner, Ray. "Introduction to Object-Oriented Programming." Exploring C++ 11.
73
Apress, 2013. 239-244.

You might also like