unit I
unit I
NOTES
1
UNIT I - INTRODUCTION TO OOP AND JAVA
SL NO TOPIC
UNIT – I
1 OVERVIEW OF OOP
2 OBJECT ORIENTED PROGRAMMING PARADIGMS
3 FEATURES OF OBJECT ORIENTED PROGRAMMING
4 JAVA BUZZWORDS
5 OVERVIEW OF JAVA – DATA TYPES, VARIABLES AND ARRAYS
6 OPERATORS
7 CONTROL STATEMENTS
8 PROGRAMMING STRUCTURES IN JAVA
9 DEFINING CLASSES IN JAVA
10 CONSTRUCTORS
11 METHODS
12 ACCESS SPECIFIERS
13 STATIC MEMBERS
14 JAVADOC COMMENTS
2
1. OVERVIEW OF OOP
3
In POP, program is divided into small In OOP, is divided into parts
parts program
called functions called objects.
4
In POP,Importance is not given to data In OOP, Importance is given to the data
but to rather
functions as well as sequence of actions than procedures or functions because it
to be works as
done. a real world.
POP follows Top Down approach. OOP follows Bottom Up approach.
POP does not have any access specifier. OOP has access specifiers named Public,
Private,
Protected, etc.
In POP, Data can move freely from In OOP, objects can move and
function to communicate with
function in the system. each other through member functions.
To add new data and function in POP is OOP provides an easy way to add new
not so data and
easy. function.
In POP, Most function uses Global data In OOP, data can not move easily from
forsharing that can be accessed freely functionto function,it can be kept public
from function or private so we
to function in the system. can control the access of data.
POP does not have any proper way for OOP provides Data Hiding so provides
hiding more
data so it is less secure. security.
In POP, Overloading is not possible. In OOP, overloading is possible in the
form of
Function Overloading and
Operator Overloading.
Example of POP are : C, VB, Example of OOP are : C++, JAVA,
FORTRAN, VB.NET,
Pascal. C#.NET.
5
2. OBJECT ORIENTED PROGRAMMING PARADIGM
OOP is a programming paradigm based on the concept of "objects", which can contain data
and code: data in the form of fields, and code, in the form of procedures. A common feature
of objects is that procedures are attached to them and can access and modify the object's
data fields.
- Wikipedia
6
OOP is shape from the initial concept of a new programming approach, while the
interest in design and analysis methods came much later.
OO analysis and design paradigm is the logical result of the wide adoption of OO
programming languages.
The first object–oriented language was Simula (Simulation of real systems) that was
developed in 1960 by researchers at the Norwegian Computing Center.
In 1970, Alan Kay and his research group at Xerox PARC created a personal computer
named Dynabook and the first pure object-oriented programming language (OOPL) -
Smalltalk, for programming the Dynabook.
In the 1980s, Grady Booch published a paper titled Object Oriented Design that mainly
presented a design for the programming language, Ada. In the ensuing editions, he
extended his ideas to a complete object–oriented design method.
7
3. FEATURES OF OBJECT ORIENTED PROGRAMMING
Object means a real word entity such as pen, chair, table etc. Any entity that has state
and behavior isknown as an object.
Object can be defined as an instance of a class.
An object contains an address and takes up some space in memory.
Objects can communicate without knowing details of each other's data or code, the
only necessary thing is that the type of message accepted and type of response
returned by the objects.
An object has three characteristics:
state: represents data (value) of an object.
behavior: represents the behavior (functionality) of an object such as deposit,
withdraw etc.
identity: Object identity is typically implemented via a unique ID. The value
8
of the ID is not visible to the external user. But, it is used internally by the
JVM to identify each object uniquely.
b) Class
A class represents a collection of objects having same characteristic properties that
exhibit common behavior.
It gives the blueprint or the description of the objects that can be created from it.
Creation of an object as a member of a class is called instantiation.
Collection of objects is called class.
It is a logical entity.
A class can also be defined as a blueprint from which you can create an
individual object.
A class consists of Data members and methods.
The primarypurpose of a class is to hold data/information.
The member functions determine the behavior of the class,
i.e. provide a definition for supporting various operations on data held in the
form of an object.Class doesn’tstore any space.
9
findCircumference(), a method to calculate circumference
scale(), a method to increase or decrease the radius
c) Encapsulation
Encapsulation is the process of binding both attributes and methods together within a
class. Through encapsulation, the internal details of a class can be hidden from outside.
It permits the elements of the class to be accessed from outside only through the
interface provided by the class.
Encapsulation in java is a process of wrapping code and data together into a
single unit, forexample capsule i.e. mixed of several medicines.
A java class is the example of encapsulation.
d) Abstraction
Abstraction is a process of hiding the implementation details and showing
only functionality to the user.
For example: phone call, we don't know the internal processing.
In java, we use abstract class and interface to achieve abstraction.
e) Polymorphism
Polymorphism is originally a Greek word that means the ability to take multiple forms.
In object-oriented paradigm, polymorphism implies using operations in different ways,
depending upon the instances they are operating upon.
Polymorphism allows objects with different internal structures to have a common
external interface.
Polymorphism is particularly effective while implementing inheritance.
10
Example
Let us consider two classes, Circle and Square, each with a method findArea().
Though the name and purpose of the methods in the classes are same, the internal
implementation, i.e., the procedure of calculating an area is different for each class.
When an object of class Circle invokes its findArea() method, the operation finds the
area of the circle without any conflict with the findArea() method of the Square class.
f) Inheritance
It is a mechanism that permits new classes to be created out of existing classes by
extending and refining its capabilities.
11
The existing classes are called the base classes/parent classes/super-classes, and the
new classes are called the derived classes/child classes/subclasses.
The subclass can inherit or derive the attributes and methods of the super-class (es)
provided that the super-class allows so.
Besides, the subclass may add its own attributes and methods and may modify any of
the super-class methods. Inheritance defines a “is – a” relationship.
What is an Inheritance?
Inheritance can be defined as the procedure or mechanism of acquiring
all the properties and behavior of one class to another, i.e., acquiring the
properties and behavior of child class from the parent class.
When one object acquires all the properties and behaviours of another
object, it is known as inheritance.
It provides code reusability and establishes relationships between different
classes.
A class which inherits the properties is known as Child Class(sub-class or
derived class) whereas a class whose properties are inherited is known as
Parent class(super-class or base class).
Types of inheritance
Types of inheritance in java:
1. single,
2. multilevel and
3. hierarchical inheritance.
4. JAVA BUZZWORDS
4.1 Messaging:
Messaging: Object oriented system consists of sets of objects that communicate with
each other. Object communicate with one another by sending and receiving data
much the same way as people pass messages to one another.
A message for the object is a request for execution of a method and, therefore, will
invoke a method in the receiving object that generates the desired result.
Message Passing
Any application requires a number of objects interacting in a harmonious manner.
Objects in a system may communicate with each other by using message passing.
Suppose a system has two objects − obj1 and obj2.
The object obj1 sends a message to object obj2, if obj1 wants obj2 to execute one of its
methods.
4.2 Relationships
In order to describe a system, both dynamic (behavioral) and static (logical)
specification of a system must be provided.
The dynamic specification describes the relationships among objects e.g. message
passing. And static specification describes the relationships among classes, e.g.
aggregation, association, and inheritance.
13
4.4 Association
Association is a group of links having common structure and common behavior.
Association depicts the relationship between objects of one or more classes. A link can
be defined as an instance of an association.
The Degree of an association denotes the number of classes involved in a connection.
The degree may be unary, binary, or ternary.
A unary relationship connects objects of the same class.
A binary relationship connects objects of two classes.
A ternary relationship connects objects of three or more classes.
5. FEATURES OF JAVA
The main objective of Java programming language creation was to make it
portable, simple and secure programming language.
Apart from this, there are also some awesome features which play important role
in the popularity of this language.
a) Simple
Java is very easy to learn and its syntax is simple, clean and easy to understand.
According to Sun, Javalanguage is a simple programming language because:
Java syntax is based on C++ (so easier for programmers to learn it after C++).
Java has removed many confusing and rarely-used features e.g. explicit
pointers, operatoroverloading etc.
There is no need to remove unreferenced objects because there is Automatic
Garbage Collection injava.
b) Object-oriented
Java is object-oriented programming language.
Everything in Java is an object. Object-oriented means we organize our software as a
combination of different types of objects that incorporates both data andbehaviour.
Object-oriented programming (OOPs) is a methodology that simplifies software
development and maintenance by providing some rules.
14
Basic concepts of OOPs are:
1. Object
2. Class
3. Inheritance
4. Polymorphism
5. Abstraction
6. Encapsulation
c) Platform Independent
Java is platform independent because it is different from other languages like C,
C++ etc. which are compiled into platform specific machines while Java is a write
once, run anywhere language.
A platform is the hardware or software environment in which a program runs.
There are two types of platforms software-based and hardware-based. Java
provides software-based platform.
The Java platform differs from most other platforms in the sense that it is a software-
based platform thatruns on the top of other hardware-based platforms.
Java code can be run on multiple platforms e.g. Windows, Linux, Sun Solaris,
15
Mac/OS etc
d) Secured
Java is best known for its security.
With Java, we can develop virus-free systems.
Java is secured because:
o No explicit pointer
o Java Programs run inside virtual machine sandbox
f) Architecture-neutral
Java is architecture neutral because there is no implementation dependent
features e.g. size of primitivetypes is fixed.
In C programming, int data type occupies 2 bytes of memory for 32-bit
architecture and 4 bytes of memoryfor 64-bit architecture.
o But in java, it occupies 4 bytes of memory for both 32 and 64 bit
architectures.
g) Portable
Java is portable because it facilitates you to carry the java bytecode to any
platform.
It doesn't require anytype of implementation.
h) High-performance
Java is faster than other traditional interpreted programming languages because
Java bytecode is "close" to native code.
It is still a little bit slower than a compiled language (e.g. C++).
Java is an interpreted language that is why it is slower than compiled languages
e.g. C, C++ etc.
i) Distributed
Java is distributed because it facilitates users to create distributed applications in
java.
RMI and EJB are used for creating distributed applications.
This feature of Java makes us able to access files by calling the methods from any
machine on the internet.
j) Multi-threaded
A thread is like a separate program, executing concurrently.
We can write Java programs that deal with many tasks at once by defining
multiple threads. The main advantage of multi-threading is that it doesn't occupy
memory for each thread.
It shares a common memory area.
Threads are important for multi-media, Web applications etc.
k) Dynamic
Java is a dynamic language. It supports dynamic loading of classes.
17
It means classes are loaded on demand.It also supports functions from its native
languages i.e. C and C++.
Java supports dynamic compilation and automatic memory management
(garbage collection).
j) Garbage Collection
Objects are dynamically allocated by using the new operator, dynamically allocated
objects must bemanually released by use of a delete operator.
Java takes a different approach; it handles deallocation automatically this is called
garbage collection.
When no references to an object exist, that object is assumed to be no longer needed,
and the memory occupied by the object can be reclaimed.
Garbage collection only occurs sporadically (if at all) during the execution of your
program. It will not occur simply because one or more objects exist that are no longer
used.
18
used to develop java applications and applets.
It physically exists.
It contains JRE + development tools.
JDK is an implementation of any one of the below given Java Platforms released by
Oracle corporation:
Standard Edition Java Platform
Enterprise Edition Java Platform
Micro Edition Java Platform
The JDK contains a private Java Virtual Machine (JVM) and a few other
resources such as an interpreter/loader (Java), a compiler (javac), an archiver (jar),
a documentation generator (Javadoc) etc. to complete the development of a Java
Application.
19
Verifies code
Executes code
Provides runtime environmentJVM provides definitions for the:
Memory area
Class file format
Register set
Garbage-collected heap
Fatal error reporting etc.
2. Class(Method) Area
Class(Method) Area stores per-class structures such as the runtime constant pool, field
and method data, thecode for methods.
3. Heap
It is the runtime data area in which objects are allocated.
4. Stack
Java Stack stores frames. It holds local variables and partial results, and plays a part in
method invocationand return.
Each thread has a private JVM stack, created at the same time as thread.
A new frame is created each time a method is invoked. A frame is destroyed when its
method invocationcompletes.
20
7. Execution Engine
Contains a virtual processor, Interpreter to read bytecode stream then execute the
instructions and Just-In- Time(JIT) compiler is used to improve the performance.
JIT compiles parts of the byte code that have similar functionality at the same
time, and hence reduces the amount of time needed for compilation.
Here, the term "compiler" refers to a translator from the instruction set of a Java
virtual machine (JVM) to the instruction set of a specific CPU.
21
5. OVERVIEW OF JAVA – DATA TYPES, VARIABLES AND
ARRAYS
public keyword is an access modifier which represents visibility, it means it is visible to all.
void is the return type of the method, it means it doesn't return any value.
String[] args is used for command line argument. System.out.println() is used print
statement.
22
Thisinterpreter is the JVM and thus the Bytecode is executed by the JVM.
To compile:
javac Simple.java
To execute:
java Simple
23
DEFINING CLASSES IN JAVA
The class is at the core of Java .A class is a template for an object, and an object is an
instance of a class. Aclass is declared by use of the class keyword
Syntax:
class classname {
type instance-
variable1;type
instance-
variable2;
// ...
type instance-variableN;
type methodname1(parameter-list) {
// body of method
}
...
type methodnameN(parameter-list) {
// body of method
}
The data, or variables, defined within a class are called instance variables. The code is
contained within methods. The methods and variables defined within a class are called
members of the class. In most classes, the instance variables are acted upon and accessed
by the methods defined for that class.
Variables defined within a class are called instance variables because each instance of
the class (that is, eachobject of the class) contains its own copy of these variables. Thus,
the data for one object is separate and unique from the data for another.
A Simple Class
class called Box that
defines three instance variables: width,
height, and depth.class Box {
double
width;
double
height;
double
depth;
24
}
The new data type is called Box. This name is used to declare objects of type Box.
The class declarationonly creates a template. It does not create an actual object.
Each time you create an instance of a class, you are creating an object that contains its
own copy of each instance variable defined by the class. To access these variables, you
will use the dot (.) operator. The dot operator links the name of the object with the name
of an instance variable.
Example1:
/* A program that uses
the Box class.Call this file
BoxDemo.java
*/
class
Box {
double
width;
double
height;
double
depth;
}
// This class declares an object of
type Box.class BoxDemo {
public static void
main(String args[]) {Box
mybox = new Box();
double vol;
// assign values to mybox's
instance variablesmybox.width =
25
10;
mybox.height = 20;
mybox.depth = 15;
// compute volume of box
vol = mybox.width * mybox.height *
mybox.depth;
System.out.println("Volume is " + vol);
}
}
Output:
Volume is 3000.0
Example2:
// This program declares two
Box objects.class Box {
double
width;
double
height;
double
depth;
}
class BoxDemo2 {
public static void
main(String args[]) {Box
mybox1 = new Box();
Box mybox2 =
new Box();double
vol;
// assign values to mybox1's
instance variablesmybox1.width =
10;
mybox1.height = 20;
mybox1.depth = 15;
/* assign different values
to mybox2'sinstance
variables
26
*/
mybox2.width = 3;
mybox2.height = 6;
mybox2.depth = 9;
// compute volume of first box
vol = mybox1.width * mybox1.height *
mybox1.depth;System.out.println("Volume
is " + vol);
// compute volume of second box
vol = mybox2.width * mybox2.height *
mybox2.depth;System.out.println("Volume
is " + vol);
}
}
Output:
Volume is 3000.0
Volume is 162.0
Declaring Objects
First, declare a variable of the class type. This variable does not define an object.Instead,
it is simply avariable that can refer to an object.
Second, you must acquire an actual, physical copy of the object and assign it to that
variable. This is done using the new operator. The new operator dynamically allocates
(that is, allocates at run time) memory for an object and returns a reference to it. This
reference is then stored in the variable. Thus, in Java, all class objects must be
dynamically allocated.
Syntax:
Box mybox = new Box();
Box mybox; // declare reference to
object mybox = new Box(); //
allocate a Box object
The first line declares mybox as a reference to an object of type Box. At this point,
mybox does not yet refer to an actual object. The next line allocates an object and
assigns a reference to it to mybox. After the second line executes, we can use mybox as
if it were a Box object. But in reality, mybox simply holds, in essence, the memory
27
address of the actual Box object.
Assigning Object
Reference
VariablesSyntax:
Box b1 =
new
Box();Box b2
= b1;
b2 is being assigned a reference to a copy of the object referred to by b1. b1 and b2 will
both refer to the same object.
The assignment of b1 to b2 did not allocate any memory or copy any part of the original
object.
It simply makes b2 refer to the same object as does b1.
Thus, any changes made to the objectthrough b2 will affect the object to which b1 is
referring, since they are the same object.
28
CONSTRUCTORS
Constructors are special member functions whose task is to initialize the objects of its
class.
It is a special member function, it has the same as the class name.
Java constructors are invoked when their objects are created. It is named such
because, it constructsthe value, that is provides data for the object and are used
to initialize objects.
Every class has a constructor when we don't explicitly declare a constructor
for any java class thecompiler creates a default constructor for that class
which does not have any return type.
The constructor in Java cannot be abstract, static, final or synchronized and
these modifiers are notallowed for the constructor.
There are two types of constructors:
1. Default constructor (no-arg constructor)
2. Parameterized constructor
30
volumedouble
volume() {
return width * height * depth;
}
}
class BoxDemo6 {
public static void main(String args[]) {
// declare, allocate, and
initialize Box objectsBox
mybox1 = new Box();
Box mybox2 = new Box();double vol;
// get volume of first boxvol = mybox1.volume();
System.out.println("Volume is " + vol);
// get volume of
second boxvol =
mybox2.volume();
System.out.println("Volume is " + vol);
}
}
Output:
Constructing BoxConstructing BoxVolume is 1000.0
Volume is 1000.0
new Box( ) is calling the Box( ) constructor. When the constructor for a class is not
explicitly defined , then Java creates a default constructor for the class. The default
constructor automatically initializes all instance variables to their default values, which
are zero, null, and false, for numeric types, reference types, and boolean, respectively.
Parameterized Constructors
A constructor which has a specific number of parameters is called parameterized constructor.
Parameterizedconstructor is used to provide different values to the distinct objects.
Example:
/* Here, Box uses a parameterized
constructor toinitialize the
31
dimensions of a box.
*/
class
Box {
double
width;
double
height;
double
depth;
// This is the constructor
for Box. Box(double w,
double h, double d) {width
= w;
heig
ht =
h;
dept
h=
d;
}
// compute and
return volumedouble
volume() {
return width * height * depth;
}
}
class BoxDemo7 {
public static void main(String args[]) {
// declare, allocate, and
initialize Box objectsBox
mybox1 = new Box(10, 20, 15);
Box mybox2 = new
Box(3, 6, 9);double vol;
// get volume of
first boxvol =
mybox1.volume(
32
);
System.out.println("Volume is " + vol);
// get volume of
second boxvol =
mybox2.volume();
System.out.println("Volume is " + vol);
}
}
Output:
Volume is 3000.0
Volume is 162.0
Box mybox1 = new Box(10, 20, 15);
The values 10, 20, and 15 are passed to the Box( ) constructor when new creates the
object. Thus, mybox1’scopy of width, height, and depth will contain the values 10, 20,
and 15 respectively.
Overloading ConstructorsExample:
/* Here, Box defines three constructors to initializethe dimensions of a box various ways.
*/
class Box { double width;double height;double depth;
// constructor used when all dimensions specifiedBox(double w, double h, double d) {
width = w;height = h;depth = d;
}
// constructor used when no dimensions specifiedBox() {
width = -1; // use -1 to indicateheight = -1; // an uninitialized depth = -1; // box
}
// constructor used when cube is createdBox(double len) {
width = height = depth = len;
}
// compute and return volumedouble volume() {
return width * height * depth;
}
}
class OverloadCons
33
{
public static void main(String args[])
{
// create boxes using the various constructorsBox mybox1 = new Box(10, 20, 15);
Box mybox2 = new Box(); Box mycube = new Box(7);double vol;
// get volume of first boxvol = mybox1.volume();
System.out.println("Volume of mybox1 is " + vol);
// get volume of second boxvol = mybox2.volume();
System.out.println("Volume of mybox2 is " + vol);
// get volume of cube vol = mycube.volume();
System.out.println("Volume of mycube is " + vol);
}
}
Output:
Volume of mybox1
is 3000.0Volume of
mybox2 is -1.0
Volume of mycube
is 343.0
METHODS
Syntax:
type name(parameter-list) {
// body of method
}
type specifies the type of data returned by the method. This can be any valid
type, including classtypes that you create.
If the method does not return a value, its return type must be void.
The name of the method is specified by name.
The parameter-list is a sequence of type and identifier pairs separated by
commas. Parameters are essentially variables that receive the value of the
arguments passed to the method when it is called. If the method has no
parameters, then the parameter list will be empty.
Methods that have a return type other than void return a value to the calling
34
routine using the following form of the return statement:
Syntax:
return value;
Example:
// This program includes a method inside
the box class.class Box {
double
width;
double
height;
double
depth;
// display volume of a box
void volume() {
System.out.print("Volu
me is ");
System.out.println(width * height * depth);
}}
class BoxDemo3 {
public static void
main(String args[]) {Box
mybox1 = new Box();
Box mybox2 = new Box();
// assign values to mybox1's
instance variablesmybox1.width =
10;
mybox1.height = 20;
mybox1.depth = 15;
/* assign different values
to mybox2'sinstance
variables
*/
mybox2.width = 3;
mybox2.height = 6;
mybox2.depth = 9;
35
// display volume of
36
first box
mybox1.volume();
// display volume of
second
boxmybox2.volume();
}
}
Output:
Volume is 3000.0
Volume is 162.0
The first line here invokes the volume( ) method on mybox1. That is, it calls volume(
) relative to the mybox1 object, using the object’s name followed by the dot operator.
Thus, the call to mybox1.volume( ) displays the volume of the box defined by
mybox1, and the call to mybox2.volume( ) displays the volume of the box defined by
mybox2. Each time volume( ) is invoked, it displays the volume for the specified box.
Returning a Value
Example:
// Now, volume() returns the volume of a box.class Box {
double width;double height;double depth;
// compute and return volumedouble volume() {
return width * height * depth;
}
}
class BoxDemo4 {
public static void main(String args[]) {Box mybox1 = new Box();
Box mybox2 = new Box();double vol;
// assign values to mybox1's instance variables
mybox1.width = 10;
mybox1.height = 20;
mybox1.depth = 15;
/* assign different values to mybox2'sinstance variables */
mybox2.width = 3;
mybox2.height = 6;
mybox2.depth = 9;
37
// get volume of first boxvol = mybox1.volume();
38
System.out.println("Volume is " + vol);
// get volume of second boxvol = mybox2.volume();
System.out.println("Volume is " + vol);
}
}
Output:
Volume is 3000
Volume is 162
when volume( ) is called, it is put on the right side of an assignment statement. On the left is
a variable, inthis case vol, that will receive the value returned by volume( ).
Syntax:
vol = mybox1.volume();
executes, the value of mybox1.volume( ) is 3,000 and this value then is stored in vol.
class BoxDemo5 {
public static void main(String args[]) {Box mybox1 = new Box();
Box mybox2 = new Box();double vol;
39
// initialize each box mybox1.setDim(10, 20, 15);
mybox2.setDim(3, 6, 9);
// get volume of first boxvol = mybox1.volume();
System.out.println("Volume is " + vol);
// get volume of second boxvol = mybox2.volume();
System.out.println("Volume is " + vol);
}
}
Output:
Volume is 3000
Volume is 162
}
void display()
{
System.out.println(id+" "+name);
}
public static void main(String args[])
{
Student stud1 = new Student(01,"Tarun");Student stud2 = new Student(02,"Barun");
40
stud1.display();stud2.display();
}
}
Output:
01 Tarun
02 Barun
Overloading Methods
When two or more methods within the same class that have the same name, but their
parameter declarations are different. The methods are said to be overloaded, and the process
is referred to as method overloading. Method overloading is one of the ways that Java
supports polymorphism.
There are two ways to overload the method in java
1. By changing number of arguments
2. By changing the data type
Example:
// Demonstrate method overloading.class OverloadDemo
{ void test() {
System.out.println("No parameters");
}
// Overload test for one integer parameter.void test(int a) {
System.out.println("a: " + a);
}
// Overload test for two integer parameters.void test(int a, int b) {
System.out.println("a and b: " + a + " " + b);
}
// Overload test for a double parameterdouble test(double a) { System.out.println("double a:
" + a); return a*a;
}
}
class Overload {
public static void main(String args[]) { OverloadDemo ob = new OverloadDemo();double
result;
// call all versions of test()ob.test();
ob.test(10);
ob.test(10, 20);
41
result = ob.test(123.25);
System.out.println("Result of ob.test(123.25): " + result);
}
}
Output:
No parameters
a: 10
a and b: 10 20
double a: 123.25
Result of ob.test(123.25): 15190.5625
Method Overriding
When a method in a subclass has the same name and type signature as a method in its
superclass, then the method in the subclass is said to override the method in the
superclass. When an overridden method is called from within its subclass, it will always
refer to the version of that method defined by the subclass. The version of the method
defined by the superclass will be hidden.
Example:
// Method overriding.class A {
int i, j;
A(int a, int b) {i = a;
j = b;
}
// display i and jvoid show() {
System.out.println("i and j: " + i + " " + j);
}
}
class B extends A {int k;
B(int a, int b, int c) {super(a,
b); k = c;
}
// display k – this overrides show() in Avoid show() {
System.out.println("k: " + k);
}
}
class Override {
public static void main(String args[]) {B subOb = new B(1, 2, 3); subOb.show(); // this calls
42
show() in B
}
}
Output:
k: 3
When show( ) is invoked on an object of type B, the version of show( ) defined within B is
used. That is, theversion of show( ) inside B overrides the version declared in A. If you wish
to access the superclass version of an overridden method, you can do so by using super.
For example, in this version of B, the superclass version of show( ) is invoked within the
subclass’ version. This allows all instance variables to be displayed.class B extends A {
int k;
B(int a, int b, int c) {
super(a, b);k = c;
}
void show() {
super.show(); // this calls A's show()System.out.println("k: " + k);
}
}
If you substitute this version of A into the previous program, you will see the following
Output:
i and j: 1 2
k: 3
Here, super.show( ) calls the superclass version of show( ).
ACCESS PROTECTION
The access modifiers in java specifies accessibility (scope) of a data member, method,
constructor or class.There are 4 types of java access modifiers:
1. private
2. default
3. protected
4. public
If you make any class constructor private, you cannot create the instance of that class from
outside the class.For example:
class A{
private A(){}//private constructor
void msg(){System.out.println("Hello java");}
}
public class Simple{
public static void main(String args[]){ A obj=new A();//Compile Time Error
}
}
44
2) Default Access Modifier
If you don't use any modifier, it is treated as default bydefault. The default modifier is
accessible onlywithin package.
Example:
In this example, we have created two packages pack and mypack. We are accessing the A
class from outsideits package, since A class is not public, so it cannot be accessed from
outside the package.
//save by A.javapackage pack; class A{
void msg(){System.out.println("Hello");}
}
//save by B.java package mypack;import pack.*; class B{
public static void main(String args[]){ A obj = new A();//Compile Time Error
obj.msg();//Compile Time Error
}
}
In the above example, the scope of class A and its method msg() is default so it cannot be
accessed fromoutside the package.
Example:
In this example, we have created the two packages pack and mypack. The A class of pack
package is public, so can be accessed from outside the package. But msg method of this
package is declared as protected, so it can be accessed from outside the class only through
inheritance.
//save by A.javapackage pack; public class A{
protected void msg(){System.out.println("Hello");}
}
//save by B.java package mypack;import pack.*;
class B extends A{
45
public static void main(String args[]){B obj = new B();
obj.msg();
}
}
Output:
Hello
46
more restrictive.class A{
protected void msg(){System.out.println("Hello java");}
}
public class Simple extends A{
void msg(){System.out.println("Hello java");}//C.T.Errorpublic static void main(String
args[]){
Simple obj=new Simple();obj.msg();
}
}
The default modifier is more restrictive than protected. That is why there is compile time
error.
STATIC MEMBERS
Static is a non-access modifier in Java which is applicable for the following:
1. blocks
2. variables
3. methods
4. nested classes
Static blocks
If you need to do computation in order to initialize your static variables, you can declare a
static block thatgets executed exactly once, when the class is first loaded.
Example:
// Java program to demonstrate use of static blocksclass Test
{
// static variablestatic int a = 10;static int b;
// static blockstatic {
System.out.println("Static block initialized.");b = a * 4;
}
47
Output:
Static block initialized.from main
Value of a : 10Value of b : 40
Static variables
When a variable is declared as static, then a single copy of variable is created and shared
among all objects at class level. Static variables are, essentially, global variables. All
instances of the class share the same static variable.
Important points for static variables :-
We can create static variables at class-level only.
static block and static variables are executed in order they are present in a program.
Example:
// Demonstrate static variables, methods, and blocks.class UseStatic {
static int a = 3;static int b;
static void meth(int x) { System.out.println("x = " + x);System.out.println("a = " + a);
System.out.println("b = " + b);
}
static {
System.out.println("Static block initialized.");b = a * 4;
}
public static void main(String args[]) {meth(42);
}
}
Output:
Static block initialized.x = 42
a=3
b = 12
Static methods
When a method is declared with static keyword, it is known as static method. When a
member is declared static, it can be accessed before any objects of its class are created, and
without reference to any object. The most common example of a static method is main( )
method. Methods declared as static have several restrictions:
48
They can only directly call other static methods.
They can only directly access static data.
They cannot refer to this or super in any way.
Syntax:
classname.method( )
Example:
//Inside main( ), the static method callme( ) and the static variable b are accessed through
their class name
//StaticDemo. class StaticDemo {static int a = 42; static int b = 99;
static void callme() { System.out.println("a = " + a);
}
}
class StaticByName {
public static void main(String args[]) { StaticDemo.callme(); System.out.println("b = " +
StaticDemo.b);
}
}
Output:
a = 42
b = 99
JAVA COMMENTS
The java comments are statements that are not executed by the compiler and interpreter. The
comments can be used to provide information or explanation about the variable, method,
class or any statement. It can also be used to hide program code for specific time.
There are 3 types of comments in java.
1. Single Line Comment
2. Multi Line Comment
3. Documentation Comment
1) Java Single Line Comment
The single line comment is used to comment only one line.
Syntax:
//This is single line comment
Example:
public class CommentExample1
49
{
public static void main(String[] args)
{
int i=10;//Here, i is a variableSystem.out.println(i);
}
}
Output:
10
Example:
50
/** The Calculator class provides methods to get addition and subtraction of given 2
numbers.*/public class Calculator
{
/** The add() method returns addition of given numbers.*/public static int add(int a, int b)
{
return a+b;
}
/** The sub() method returns subtraction of given numbers.*/public static int sub(int a, int
b)
{
return a-b;
}
}
This type of comment is used to produce an HTML file that documents your program. The
documentationcomment begins with a /** and ends with a */.
DATATYPES IN JAVA
Data types specify the different sizes and values that can be stored in the variable. There
are two types ofdata types in Java:
1. Primitive data types: The primitive data types include Integer, Character,
Boolean, and FloatingPoint.
2. Non-primitive data types: The non-primitive data types include Classes,
Interfaces, and Arrays.
Java defines eight primitive types of data: byte, short, int, long, char, float, double, and
51
boolean. These canbe put in four groups:
• Integers This group includes byte, short, int, and long, which are for whole-valued
signed numbers.
• Floating-point numbers This group includes float and double, which represent
numbers with fractionalprecision.
• Characters This group includes char, which represents symbols in a character set,
like letters and numbers.
• Boolean This group includes boolean, which is a special type for representing
true/false values.
Example :
// Compute distance light travels using long variables.
class Light {
public static void main(String args[]) {int lightspeed;
long days; long seconds;long distance;
// approximate speed of light in miles per secondlightspeed = 186000;
days = 1000; // specify number of days here seconds = days * 24 * 60 * 60; // convert to
secondsdistance = lightspeed * seconds; // compute distanceSystem.out.print("In " +
days);
System.out.print(" days light will travel about ");System.out.println(distance + " miles.");
}
}
Output:
In 1000 days light will travel about 16070400000000 miles. Clearly, the result could not
have been held in an int variable.
VARIABLES
A variable is a container which holds the value and that can be changed durig the execution
of the program. A variable is assigned with a datatype. Variable is a name of memory
location. All the variables must be declared before they can be used. There are three types of
variables in java: local variable, instance variable and static variable.
52
20
1) Local Variable
A variable defined within a block or method or constructor is called local variable.
These variable are created when the block in entered or the function is called and
destroyed afterexiting from the block or when the call returns from the function.
The scope of these variables exists only within the block in which the variable is
declared. i.e. wecan access these variable only within that block.
Example:
import java.io.*;
public class StudentDetails
{
public void StudentAge()
{ //local variable ageint age = 0;
age = age + 5;
System.out.println("Student age is : " + age);
}
public static void main(String args[])
{
StudentDetails obj = new StudentDetails();obj.StudentAge();
}
}
Output:
Student age is : 5
2) Instance Variable
Instance variables are non-static variables and are declared in a class outside any method,
constructor orblock.
As instance variables are declared in a class, these variables are created when an
object of the classis created and destroyed when the object is destroyed.
53
Unlike local variables, we may use access specifiers for instance variables. If we do
not specify anyaccess specifier then the default access specifier will be used.
Example: import java.io.*;class Marks{
int m1;int m2;
}
class MarksDemo
{
public static void main(String args[])
{ //first object
Marks obj1 = new Marks();obj1.m1 =
50; obj1.m2 = 80;
//second object
Marks obj2 = new Marks();obj2.m1 =
80; obj2.m2 = 60;
//displaying marks for first object System.out.println("Marks for first object:");
System.out.println(obj1.m1); System.out.println(obj1.m2);
//displaying marks for second object System.out.println("Marks for second object:");
System.out.println(obj2.m1); System.out.println(obj2.m2);
}}
Output:
Marks for first object:
50
80
Marks for second object:
80
60
3) Static variable
Static variables are also known as Class variables.
These variables are declared similarly as instance variables, the difference is that
static variables aredeclared using the static keyword within a class outside any method
constructor or block.
Unlike instance variables, we can only have one copy of a static variable per
class irrespective ofhow many objects we create.
Static variables are created at start of program execution and destroyed
automatically whenexecution ends.
Example:
54
import java.io.*;class Emp {
55
OPERATORS IN JAVA
Java provides a rich set of operators to manipulate variables. We can divide all the Java
operators into thefollowing groups –
Arithmetic Operators
Increment and Decrement
Bitwise Operators
Relational Operators
Boolean Operators
Assignment Operator
Ternary Operator
Arithmetic Operators
Arithmetic operators are used to manipulate mathematical expressions
Operator Result
Example:
// Demonstrate the basic arithmetic operators.class BasicMath
{
public static void main(String args[])
{
// arithmetic using integers System.out.println("Integer Arithmetic");int a = 1 + 1;
int b = a * 3;int c = b / 4;int d = c - a;int e = -d;
System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c);
System.out.println("d = " + d);System.out.println("e = " + e);
// arithmetic using doubles System.out.println("\nFloating Point Arithmetic");double da = 1
+ 1;
double db = da * 3;double dc = db / 4;double dd = dc - a;double de = -dd;
System.out.println("da = " + da); System.out.println("db = " + db);System.out.println("dc = "
56
+ dc);System.out.println("dd = " + dd);System.out.println("de = " + de);
}}
Output:
Integer Arithmetica = 2
b=6
c=1
57
d = -1
e=1
Floating Point Arithmeticda = 2.0
db = 6
dc = 1.5
dd = -0.5
de = 0.5
Modulus Operator
The modulus operator, %, returns the remainder of a division operation. It can be applied
to floating-pointtypes as well as integer types.
Example:
// Demonstrate the % operator.class Modulus {
public static void main(String args[]) {int x = 42;
double y = 42.25;
System.out.println("x mod 10 = " + x % 10);System.out.println("y mod 10 = " + y % 10);
}
}
Output:
x mod 10 = 2
y mod 10 = 2.25
Syntax:
var op= expression;
Example:
// Demonstrate several assignment operators.class OpEquals
{
public static void main(String args[])
{
int a = 1;int b = 2;int c = 3;a += 5;
58
b *= 4;
c += a * b;
59
c %= 6;
System.out.println("a = " + a);System.out.println("b = " + b);System.out.println("c = " + c);
}
}
Output:
a=6
b=8
c=3
Bitwise Operators
60
Java defines several bitwise operators that can be applied to the integer types: long, int,
short, char, and
byte. These operators act upon the individual bits of their operands.
62
System.out.println("~a&b|a&~b = " + binary[f]);System.out.println(" ~a = " + binary[g]);
}
}
Output:
a = 0011
b = 0110
a|b = 0111
a&b = 0010
a^b = 0101
~a&b|a&~b = 0101
~a = 1100
64
2
Relational Operators
The relational operators determine the relationship that one operand has to the
other.Specifically, theydetermine equality and ordering. The outcome of these operations is
a boolean value.
Boolean Operators
The Boolean logical operators shown here operate only on boolean operands. All of the
binary logicaloperators combine two boolean values to form a resultant boolean value.
Example:
// Demonstrate the boolean logical operators.class BoolLogic
{
public static void main(String args[])
{
boolean a = true; boolean b = false;boolean c = a | b; boolean d= a & b;boolean e = a ^ b;
boolean f = (!a & b) | (a & !b); boolean g = !a; System.out.println(" a = " + a);
System.out.println(" b = " + b); System.out.println(" a|b = " + c); System.out.println(" a&b =
" + d);System.out.println(" a^b = " + e);
System.out.println("!a&b|a&!b = " + f);System.out.println(" !a = " + g);
}
}
Output: a = trueb = false a|b =
true a&b = false
65
a^b = true
!a&b|a&!b = true
!a=false
In the output, the string representation of a Java boolean value is one of the literal values
true or false. JavaAND Operator Example: Logical && and Bitwise &
The logical && operator doesn't check second condition if first condition is false. It checks
secondcondition only if first one is true.
The bitwise & operator always checks both conditions whether first condition is true or false.
Example:
class OperatorExample
{
public static void main(String args[])
{
int a=10;int b=5; int c=20;
System.out.println(a<b&&a<c);//false && true = falseSystem.out.println(a<b&a<c);//false
& true = false
}
}
Output:
falsefalse
Assignment Operator
The assignment operator is the single equal sign, =.
Syntax:
var = expression;
Here, the type of var must be compatible with the type of expression.int x, y, z;
x = y = z = 100; // set x, y, and z to 100
This fragment sets the variables x, y, and z to 100 using a single statement.
Ternary Operator
Ternary operator in java is used as one liner replacement for if-then-else statement and
used a lot in javaprogramming. it is the only conditional operator which takes three
operands.
Syntax:
expression1 ? expression2 : expression3
Example:
66
class OperatorExample
{
public static void main(String args[])
{
int a=2;int b=5;
int min=(a<b)?a:b; System.out.println(min);
}
}
67
Output:
2
CONTROL STATEMENTS
if Statement
if statement is the most simple decision making statement. It is used to decide whether a
certain statement orblock of statements will be executed or not that is if a certain condition is
true then a block of statement is executed otherwise not.
Syntax:
if(condition)
{
//statements to execute if
//condition is true
}
Condition after evaluation will be either true or false. If the value is true then it will execute
the block of statements under it. If there are no curly braces ‘{‘ and ‘}’ after if( condition )
then by default if statement will consider the immediate one statement to be inside its block.
68
Example:
class IfSample
{
public static void main(String args[])
{
int x, y;x = 10;
y = 20;
69
if(x < y)
System.out.println("x is less than y");x = x * 2;
if(x == y)
System.out.println("x now equal to y");x = x * 2;
if(x > y)
System.out.println("x now greater than y");
// this won't display anythingif(x == y)
System.out.println("you won't see this");
}
}
Output:
x is less than y
x now equal to y
x now greater than y
if-else Statement
The Java if-else statement also tests the condition. It executes the if block if condition is true
else if it is falsethe else block is executed.
Syntax:.
If(condition)
{
//Executes this block if
//condition is true
}
else
{
//Executes this block if
//condition is false
}
70
Example:
71
public class IfElseExample
{
public static void main(String[] args)
{
int number=13; if(number%2==0){
System.out.println("even number");
}else
{
System.out.println("odd number");
}} }
Output:
odd number
Nested if Statement
Nested if-else statements, is that using one if or else if statement inside another if or else if
statement(s).
Example:
// Java program to illustrate nested-if statementclass NestedIfDemo
{
public static void main(String args[])
{
int i = 10;
72
if (i == 10)
{
if (i < 15)
System.out.println("i is smaller than 15");if (i < 12)
System.out.println("i is smaller than 12 too");else
System.out.println("i is greater than 15");
73
}
}
}
Output:
i is smaller than 15
i is smaller than 12 too
Example:
public class IfElseIfExample {
public static void main(String[] args) {int marks=65;
74
if(marks<50){ System.out.println("fail");
}
else if(marks>=50 && marks<60){
System.out.println("D grade");
}
else if(marks>=60 && marks<70){System.out.println("C grade");
}
else if(marks>=70 && marks<80){System.out.println("B grade");
}
else if(marks>=80 && marks<90){System.out.println("A grade");
}else if(marks>=90 && marks<100){System.out.println("A+ grade");
}else{
System.out.println("Invalid!");
}
}
}
Output:
C grade
Switch Statements
The switch statement is Java’s multiway branch statement. It provides an easy way to
dispatch execution todifferent parts of your code based on the value of an expression.
Syntax:
switch (expression) {case value1:
// statement sequencebreak;
case value2:
// statement sequencebreak;
.
.
case valueN :
// statement sequencebreak;
default:
// default statement sequence
}
Example:
75
// A simple example of the switch.class SampleSwitch {
public static void main(String args[]) {for(int i=0; i<6; i++)
switch(i) {case 0:
System.out.println("i is zero.");break;
case 1:
System.out.println("i is
one.");break; case 2:
System.out.println("i is two.");break;
case 3:
System.out.println("i is
three.");break; default:
System.out.println("i is greater than 3.");
}}}
Output:
i is zero.i is one. i is two.
i is three.
i is greater than 3.i is greater than 3.
76
ITERATIVE STATEMENTS
In programming languages, loops are used to execute a set of instructions/functions
repeatedly when someconditions become true. There are three types of loops in java.
while loop
do-while loop
For loop
while loop
A while loop is a control flow statement that allows code to be executed repeatedly
based on a givenBoolean condition. The while loop can be thought of as a repeating if
statement.
Syntax:
while(condition) {
// body of loop
77
}
While loop starts with the checking of condition. If it evaluated to true, then the loop
body statements are executed otherwise first statement following the loop is
executed. It is called as Entry controlled loop.
Normally the statements contain an update value for the variable being processed for
the next iteration.
When the condition becomes false, the loop terminates which marks the end of its
life cycle.
Example:
// Demonstrate the while loop.class While {
public static void main(String args[]) {int n = 5;
while(n > 0) { System.out.println("tick " + n);n--;
}
}
}
Output:
tick 5
tick 4
tick 3
tick 2
tick 1
78
do-while loop:
do while loop checks for condition after executing the statements, and therefore it is
called as ExitControlled Loop.
Syntax:
do {
// body of loop
} while (condition);
Example
public class DoWhileExample { public static void main(String[] args) {
int i=1;do{
System.out.println(i);i++;
}while(i<=5);
}
}
Output:
1
2
Compiled By: Er. K. KHAJA MOHIDEEN, Assistant Professor / Information Technology Page 0
3
4
5
for loop
for loop provides a concise way of writing the loop structure. A for statement
consumes the initialization,condition and increment/decrement in one line.
Syntax
for(initialization; condition; iteration) {
// body
}
Initialization condition: Here, we initialize the variable in use. It marks
the start of a for loop. An already declared variable can be used or a
variable can be declared, local to loop only.
Testing Condition: It is used for testing the exit condition for a loop. It
must return a boolean value. It is also an Entry Control Loop as the
condition is checked prior to the execution of the loop statements.
Statement execution: Once the condition is evaluated to true, the
statements in the loop body are executed.
Increment/ Decrement: It is used for updating the variable for next
iteration.
Loop termination:When the condition becomes false, the loop terminates
marking the end of its lifecycle.
Compiled By: Er. K. KHAJA MOHIDEEN, Assistant Professor / Information Technology Page 1
Example
public class ForExample {
public static void main(String[] args) {for(int i=1;i<=5;i++){
System.out.println(i);
}
}}
Output:
1
2
3
4
5
for-each Loop
The for-each loop is used to traverse array or collection in java. It is easier to use
than simple for loop because we don't need to increment value and use subscript
notation. It works on elements basis not index. It returns element one by one in the
defined variable.
Syntax:
for(type itr-var : collection) statement-block
Example:
// Use a for-each style for loop.class ForEach {
public static void main(String args[]) {
int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int sum = 0;
// use for-each style for to display and sum the valuesfor(int x : nums) {
System.out.println("Value is: " + x);sum += x;
}
System.out.println("Summation: " + sum);
}
}
Output:
Value is: 1
Value is: 2
Value is: 3
Value is: 4
Compiled By: Er. K. KHAJA MOHIDEEN, Assistant Professor / Information Technology Page 2
Value is: 5
Value is: 6
Value is: 7
Value is: 8
Value is: 9
Value is: 10
Summation: 55
Nested Loops
Java allows loops to be nested. That is, one loop may be inside another.
Example:
// Loops may be nested.class Nested {
public static void main(String args[]) {int i, j;
for(i=0; i<10; i++) { for(j=i; j<10; j++) System.out.print(".");System.out.println();
}}
}
Output:
..........
.........
........
.......
......
.....
....
...
..
.
JUMP STATEMENTS
Compiled By: Er. K. KHAJA MOHIDEEN, Assistant Professor / Information Technology Page 3
Example:
// Using break to exit a loop.class BreakLoop {
public static void main(String args[]) {for(int i=0; i<100; i++) {
if(i == 10) break; // terminate loop if i is 10System.out.println("i: " + i);
}
System.out.println("Loop complete.");
}
}
Output:
i: 0
i: 1
i: 2
i: 3
i: 4
i: 5
i: 6
i: 7
i: 8
i: 9
Loop complete.
Output:
01
23
45
67
89
return
The last control statement is return.
The return statement is used to explicitly return from a method.
That is,it causes program control to transfer back to the caller of the method.
Example:
// Demonstrate return.class Return {
public static void main(String args[]) { boolean t = true; System.out.println("Before
the return."); if(t) return; // return to caller System.out.println("This won't
execute.");
}
}
Output:
Before the return.
ARRAYS
Array is a collection of similar type of elements that have contiguous
memory location.
Compiled By: Er. K. KHAJA MOHIDEEN, Assistant Professor / Information Technology Page 5
In Java all arrays are dynamically allocated.
Since arrays are objects in Java, we can find their length using member
length.
A Java array variable can also be declared like other variables with [] after
the data type.
The variables in the array are ordered and each have an index beginning
from 0.
Java array can be also be used as a static field, a local variable or a method
parameter.
The size of an array must be specified by an int value and not long or short.
The direct superclass of an array type is Object.
Every array type implements the interfaces Cloneable and
java.io.Serializable.
One-Dimensional Arrays
An array is a group of like-typed variables that are referred to by a common
name.
An array declaration has two components: the type and the name. type
declares the element type of the array.
The element type determines the data type of each element that comprises the
Compiled By: Er. K. KHAJA MOHIDEEN, Assistant Professor / Information Technology Page 6
array.
We can also create an array of other primitive data types like char, float,
double..etc or user defined data type(objects of a class).
Thus, the element type for the array determines what type of data the array
will hold.
Syntax:
type var-name[ ];
Instantiation of an Array in javaarray-var = new type [size];
Example:
class Testarray{
public static void main(String args[]){
int a[]=new int[5];//declaration and instantiationa[0]=10;//initialization
a[1]=20;
a[2]=70;
a[3]=40;
a[4]=50;
//printing array
for(int i=0;i<a.length;i++)//length is the property of arraySystem.out.println(a[i]);
}}
Output:
10
20
70
40
50
Compiled By: Er. K. KHAJA MOHIDEEN, Assistant Professor / Information Technology Page 7
//printing array
for(int i=0;i<a.length;i++)//length is the property of arraySystem.out.println(a[i]);
}}
Output:
33
3
4
5
We can pass the java array to method so that we can reuse the same logic on any
array.
Example:
class Testarray2{
static void min(int arr[]){int min=arr[0];
for(int i=1;i<arr.length;i++)if(min>arr[i])
min=arr[i]; System.out.println(min);
}
Output:
3
Multidimensional Arrays
Multidimensional arrays are arrays of arrays with each element of the array
holding the reference of other array. These are also known as Jagged Arrays.
A multidimensional array is created by appending one set of square brackets
([]) per dimension.
Syntax:
type var-name[ ][ ]=new type[row-size ][col-size ];
Example:
// Demonstrate a two-dimensional array.class TwoDArray {
Compiled By: Er. K. KHAJA MOHIDEEN, Assistant Professor / Information Technology Page 8
public static void main(String args[]) {int twoD[][]= new int[4][5];
int i, j, k = 0; for(i=0; i<4; i++) for(j=0; j<5; j++) {twoD[i][j] = k; k++;
}
for(i=0; i<4; i++) {for(j=0; j<5; j++) System.out.print(twoD[i]
[j] + " ");System.out.println();
}
}
}
Output:
01234
56789
10 11 12 13 14
15 16 17 18 19
When you allocate memory for a multidimensional array, you need only
specify the memory for the first (leftmost) dimension.
You can allocate the remaining dimensions separately.
For example, this following code allocates memory for the first dimension of
twoD when it is declared.
It allocates the second dimension manually.
Syntax:
int twoD[][] = new int[4][];
Compiled By: Er. K. KHAJA MOHIDEEN, Assistant Professor / Information Technology Page 9
twoD[0] = new int[5];
twoD[1] = new int[5];
twoD[2] = new int[5];
twoD[3] = new int[5];
Example:
// Manually allocate differing size second dimensions.class TwoDAgain {
public static void main(String args[]) {int twoD[][] = new int[4][];
twoD[0] = new int[1]; twoD[1] = new int[2]; twoD[2] = new int[3]; twoD[3] = new
int[4];int i, j, k = 0;
for(i=0; i<4; i++) for(j=0; j<i+1; j++) {twoD[i][j] = k;
k++;
}
for(i=0; i<4; i++) {for(j=0; j<i+1; j++)
System.out.print(twoD[i][j] + " ");System.out.println();
}
}
}
Output:
0
12
345
6789
The array created by this program looks like this:
Compiled By: Er. K. KHAJA MOHIDEEN, Assistant Professor / Information Technology Page 10
Compiled By: Er. K. KHAJA MOHIDEEN, Assistant Professor / Information Technology Page 11