Professional Documents
Culture Documents
=====================
IN 1991 JAMES GOSLING (PROJECT LEADER) WANTS TO DEVELOP A SOFTWARE WHICH IS USED IN
TV REMOTES, MICRO WOVENS, REFRIGIRATORS. THE MAIN TEAM MEMBERS ARE BILL JOY, MIKE
SHERADIN, PATRICK NAUGHTON. JAMES GOSLING FIRST SELECTED 'C++' LANGUAGE TO DEVELOP
THAT SOFTWARE. AFTER SOME DEVELOPMENT, HE FINDS SOME PROBLEMS TO DEVELOP SOFTWARE
IN 'C++'. THE PROBLEMS ARE POINTERS AND OPERATOR OVERLOADING. THE MAIN PROBLEM BY
USING C++ IS THAT IS SYSTEM DEPENDENT. THEN HE WANTS FIRST TO DEVELOP A NEW
LANGUAGE WHICH IS SIMILAR TO C++, WHICH ELIMINATES POINTERS AND OPERATOR
OVERLOADING AND DIFFICULT TOPICS IN 'C++' LANGUAGE AND WHICH IS SYSTEM INDEPENDENT.
THEN HE DEVELOPS NEW LANGUAGE CALLED "OAK" (TREE NAME). BUT THE NAME IS ALREADY
REGISTERED IN SOFTWARE INDUSTRY. SO IT WAS RENAMED AS JAVA (COFFE) IN 1995. AFTER
SOME MODIFICATIONS FINALLY JAVA WAS DEVELOPED BY SUN MICRO SYSTEMS OF USA.
VERSIONS OF JAVA
=================
C, C++ ARE CALLED PLATFORM DEPENDENT LANGUAGES. BECAUSE THESE LANGUAGES PRODUCES
EXECUATABLE FILES. THESE EXECUTABLE FILES EXECUTES ONLY ON PARTICULAR PLAFORM
(OPERATING SYSTEM). AFTER COMPILING JAVA PRODUCES CLASS FILE WHICH CONTAINS BYTE
CODES. THESE BYTE CODES ARE INTERMEDIATE CODE, WHICH IS NOT RELATED TO ANY
OPERATING SYSTEM. BUT EXECUTES ON ANY OPERATING SYSTEM WITH THE HELP OF JVM (JAVA
VIRTUAL MACHINE). JVM IS THE INTERPRETER FOR BYTE CODES. JVM CONVERTS THE BYTE
CODES INTO APPROPRIATE OPERATING SYSTEM INSTRUCTIONS. THE SLOGAN OF JAVA IS "WRITE
ONCE, RUN ANYWHERE (OS)".
1) EVES DROPPING :- READING OTHERS DATA ILLEGALLY. THIS IS THE MAJOR PROBLEM ON
INTERNET. TO AVOID THIS PROBLEM, JAVA USES ENCRYPTION / DECRYPTION.
DECRYPTION :- GETTING BACK THE ORIGINAL DATA FROM THE ENCRYPTED FORMAT.
2) TAMPERING :- NOT ONLY READING OTHERS DATA AND ALSO MODIFYING THE DATA. TO AVOID
THIS PROBLEM ALSO, JAVA USES ENCRYPTION / DECRYPTION.
4) VIRUS :- IT S A COMPUTER PROGRAM THAT DAMAGES THE DATA, SOFTWARE AND HARDWARE OF
A COMPUTER SYSTEM.
.EXE, .DOC, .GIF, .JPG, .MP3, .WAV, .MP4 FILES CAN SPREAD VIRUS.
A TEXT FILE (.TXT FILE OR NOTEPAD FILE) CAN NOT SPREAD VIRUS.
.CLASS FILES ARE SIMILAR TO .TXT FILES. SO THERE IS NO CHANCE OF VIRUS ATTACKING TO
THESE FILES. EVEN IF SOMEBODY INTENTIONALLY TRIES TO INCORPORATE THE VIRUS CODE
INTO .CLASS FILE, JVM CAN VERIFY ITS PRESENCE BEFORE RUNNING THE PROGRAM AND IF
FOUND, CAN ABORT THE .CLASS FILE'S EXECUTION.
THE ABOVE REASONS, JAVA IS SUITABLE FOR INTERNET. THE MAIN TWO REASONS ARE
1) IT IS SYSTEM INDEPENDENT.
EDITIONS OF JAVA
=================
FEATURES OF JAVA
==================
OBJECT ORIENTED :- JAVA IS PURELY OBJECT ORIENTED LANGUAGE. WHEREAS C++ IS NOT
PURELY OBJECT ORIENTED LANGUAGE. ANOTHER EXAMPLE FOR PURELY OBJECT ORIENTED
LANGUAGE IS SMALL TALK.
OBJECT :- REAL THINGS THAT WE CAN SEE AND TOUCH ARE CALLED OBJECTS. AN OBJECT IS
ANYTHING THAT EXISTS PHYSICALLY IN THE WORLD. AN OBJECT CAN PERFORM ACTIVITIES.
CLASS :- A CLASS IS A MODEL OR BLUE PRINT FOR CREATING OBJECTS. A CLASS IS A GROUP
NAME GIVEN TO OBJECTS. IT SPECIFIES THE PROPERTIES AND ACTIONS OF OBJECTS.
IN C++, WITHOUT USING CLASS WE CAN WRITE A PROGRAM. SO IT IS NOT A PURELY OBJECT
ORIENTED. IN JAVA, WE MUST WRITE ATLEAST ONE CLASS TO PERFORM ANYTHING.
ROBUST (STRONG / UNBREAKABLE) :- JAVA PROGRAMS WILL NOT CRASH EASILY. BECAUSE OF
ITS MEMORY MANAGEMENT AND EXCEPTION HANDLING FEATURES, WE CAN WRITE BREAK FREE
PROGRAMS. GENERALLY PROGRAMS ARE BREAK DUE TO MEMORY INSUFFICIENCE. IN JAVA, MEMORY
IS ALLOTED BY JVM'S CLASS LOADER SUB SYSTEM AND DEALLOCATION IS DONE BY JVM'S
GARBAGE COLLECTOR.
GARBAGE COLLECTOR :- IT REMOVES UNUSED VARIABLES & OBJECTS FROM THE MEMORY. THIS
MEMORY CAN BE USED BY ANOTHER VARIABLES OR OBJECTS.
ARCHITECURE NEUTRAL :- JAVA'S BYTE CODE IS NOT MACHINE DEPENDENT. IT CAN RUN ON ANY
MACHINE WITH ANY PROCESSOR AND ANY OPERATING SYSTEM.
INTERPRETED :- JAVA PROGRAMS ARE COMPILED TO GENERATED THE BYTE CODE. THIS BYTE
CODE CAN BE DOWNLOADED AND IS EXECUTED BY THE INTERPRETER. BOTH COMPILER AND
INTERPRETER PRESENT IN JAVA.
X.JAVA ====> COMPILER ====> X.CLASS ====> JVM (INTERPRETER + JIT COMPILER)
HIGH PERFORMANCE :- ALONG WITH INTERPRETER, THERE WILL BE A JIT (JUST IN TIME)
COMPILER, WHICH ENHANCES THE SPEED OF EXECUTION. SO THAT BOTH COMPILER AND
INTERPRETER RUN THE PROGRAM SIMULTANEOUSLY.
DYNAMIC :- WE CAN DEVELOP PROGRAMS IN JAVA WHICH DYNAMICALLY INTERACT WITH THE USER
ON INTERNET.
COMMENTS :- COMMENTS ARE USED TO WRITE AIM OF THE PROGRAM. THESE ARE ALSO USED TO
WRITE REFERENCES. THE MAIN ADVANTAGE OF COMMENTS IS READABILITY (UNDERSTANDABLE).
THESE ARE NOT EXECUTABLE STATEMENTS. JAVA SUPPORTS THREE TYPES OF COMMENTS.
1) SINGLE LINE COMMENT :- WHICH STARTS WITH // AND NEED NOT TO END.
3) DOCUMENTATION COMMENT :- WHICH STARTS WITH /** AND ENDS WITH */. THESE COMMENTS
ARE USEFUL TO CONVERT A JAVA PROGRAM INTO A HTML DOCUMENT THAT CONTAINS DESCRIPTION
OF JAVA PROGRAM FEATURES. THAT CONVERTED HTML DOCUMENT IS CALLED API (APPLICATION
PROGRAM INTERFACE) DOCUMENT.
API DOCUMENT :- IT IS A HTML FILE THAT CONTAINS DESCRIPTION OF ALL THE FEATURES OF
A SOFTWARE.
JAVAC (COMPILER):- IT IS USED TO CONVERT JAVA PROGRAM INTO CLASS FILE WHICH
CONTAINS BYTE CODES.
JAVAP (PROFILER COMPILER) :- IT IS USED TO CONVERT CLASS FILE INTO JAVA PROGRAM. IT
GIVES ONLY STRUCTURE OF THE JAVA PROGRAM. IF WE USE "JAD" UTILITY WE GET ENTIRE
JAVA PROGRAM FROM CLASS FILE.
JAVAH (HEADER FILE COMPILER) :- IT IS USED TO INCLUDE NATIVE METHODS, HEADER FILES
INTO JAVA PROGRAM.
1) STANDALONE APPLICATIONS
2) APPLETS
STANDALONE APPLICATIONS :- THESE ARE GENERAL PROGRAMS WHICH ARE NOT RELATED TO
INTERNET. THESE APPLICATIONS ARE EXECUTED BY JAVA INTERPRETER (JAVA TOOL). THESE
APPLICATIONS CONTAINS MAIN( ) METHOD. SO PROGRAM EXECUTION STARTS FROM MAIN( )
METHOD.
APPLETS :- THESE ARE SMALL WEB PROGRAMS. APPLETS ARE EXECUTED BY WEB BROWSER
(INTERNET EXPLORER, MOZILLA FIREFOX, GOOGLE CHROME ETC) OR APPLETVIEWER TOOL.
BECAUSE THESE APPLICATIONS DON'T HAVE MAIN( ) METHOD.
A SAMPLE PROGRAM
===================
First.java
========
class First
{
public static void main(String args[ ])
{
System.out.print("Welcome to Java Programming");
}
}
OUTPUT
========
Welcome to Java Programming
Note :- THE ABOVE PROGRAM MUST BE SAVED AS "First.java". BECAUSE CLASS NAME AND
FILE NAME MUST BE SAME. IN JAVA ALL CLASS NAMES MUST START WITH UPPER CASE
ALPHABET.
EDITOR :- WHICH IS USED TO ADD, MODIFY AND REMOVE TEXT. THE FAMOUS EDITOR FOR MS-
DOS IS "edit" AND WINDOWS IS "notepad".
STEPS TO PROGRAMMING
=======================
SETTING PATH
=============
2) RIGHT CLICK ON COMPUTER ====> PROPERTIES ====> ADVANCED SYSTEM SETTINGS ====>
ENVIRONMENT VARIABLES ====> SELECT PATH ====> EDIT
3) TYPE ;PASTE;
2) C:\USERS\PC> cd\
3) d:
4) cd Java Lab
Notepad First.java
class First
{
public static void main(String args[])
{
System.out.print("This is my first java program");
}
}
Second.java
==========
class Second
{
public static void main(String args[ ])
{
System.out.println("One");
System.out.println("Two");
System.out.print("Three");
}
}
IMPORTING PACKAGES :- BEFORE USING ANY CLASS WE MUST IMPORT THE APPROPRIATE PACKAGE
IN THE FOLLOWING MANNER.
import package_name.class_name;
Ex :- import java.lang.System;
import java.lang.String;
IF WE WRITE
import java.lang.*;
ALL CLASSES ARE IMPORTED FROM java.lang PACKAGE INTO OUR PROGRAM.
java.lang :- IT CONTAINS PRIMARY CLASSES FOR JAVA PROGRAMMING LIKE System, String
ETC. THIS PACKAGE IS IMPORTED BY DEFAULT INTO EVERY JAVA PROGRAM.
ESCAPE SEQUENCES :- WHICH ARE STARTED WITH BACKSLASH. THESE ARE ALSO CALLED NON
PRINTABLE CHARACTERS / ACTION CHARACTERS. BECAUSE THESE CHARACTERS NOT PRINT ON THE
SCREEN. THESE CHARACTERS PERFORMS SOME ACTION.
class Third
{
public static void main(String args[ ])
{
System.out.print("One\n");
System.out.println("Two");
System.out.print("1\t");
System.out.println("2");
System.out.print("Rama\b");
System.out.print("Babu\n");
System.out.println( ); // (Generates Empty Line);
System.out.print("Rama\r");
System.out.println("Sai");
System.out.println("This is Rama\'s Pen");.
System.out.println("This is \"rama\" Pen");
System.out.print("c:\\windows");
}
}
2) CLASS / INTERFACE NAME IN JAVA NAME SHOULD START WITH CAPITAL LETTER. IF A
CLASS OR INTERFACE HAS MULTIPLE WORDS THEN EACH WORD OF CLASS OR INTERFACE START
WITH A CAPITAL LETTER. INITIAL CAPS.
3) METHOD NAME SHOULD START WITH SMALL LETTER. IF A METHOD HAS MULTIPLE WORDS THEN
EACH WORD OF METHOD START WITH A CAPITAL LETTER.
5) CONSTANT (LITERALS) VARIABLES SHOULD BE WRITTEN USING ALL CAPITAL LETTERS. USE
UNDERSCORE IF A CONSTANT HAS MULTIPLE WORDS.
DATA TYPE :- A DATA TYPE REPRESENT THE TYPE OF DATA STORED INTO A VARIABLE.
THE DEFAULT PRIORITY IS SET TO "int" IN INTEGER FAMILY. long INTEGER CONSTANTS MUST
BE POSTFIXED WITH "L" / "l".
Ex :- long x = 100L;
THE DEFAULT PRIORITY IS SET TO "double" IN REAL FAMILY. float CONSTANTS MUST BE
POSTFIXED WITH "F" / "f".
Ex :- float x = 12.34F;
class Third
{
public static void main(String args[])
{
byte b;
short s;
int i;
long l;
float f;
double d;
char c;
boolean b1;
String s1;
b = 10;
s = 30000;
i = 999999;
l = 123456L;
f = 1.23F;
d = 123.456789;
c = 'K';
b1 = true;
s1 = "Rama";
System.out.println(b);
System.out.println("B Value : " + b);
System.out.println(b + " is B Value");
System.out.println("Ravana has " + b + " Heads");
// + ====> Concatenation / Joining Operator
System.out.println("S Value : " + s);
System.out.println("I Value : " + i);
System.out.println("L Value : " + l);
System.out.println("F Value : " + f);
System.out.println("D Value : " + d);
System.out.println("C Value : " + c);
System.out.println("B1 Value : " + b1);
System.out.println("S1 Value : " + s1);
}
}
SQUARE OF A NUMBER
====================
class Four
{
public static void main(String args[ ] )
{
int n,s;
n = 6;
s = n * n;
System.out.println("Square : " + s);
}
}
class Five
{
public static void main(String args[ ] )
{
int a,b,c;
a = 10;
b = 20;
c = a + b;
System.out.println("Sum : " + c);
}
}
PRINTF( )
========
class Six
{
public static void main(String args[ ] )
{
int a;
byte b;
a = 10;
b = 20;
System.out.printf("A Value : %d\n",a);
System.out.printf("B Value : %d",b);
}
}
class Six
{
public static void main(String args[ ] )
{
float f = 123.456F;
double d = 123.456789;
System.out.printf("F Value : %f\n",f);
System.out.printf("F Value : %.2f\n",f);
System.out.printf("D Value : %f\n",d);
System.out.printf("D Value : %.2f\n",d);
}
}
class Six
{
public static void main(String args[ ] )
{
char x;
boolean y;
String z;
x = 'K';
y = true;
z = "Rama";
System.out.printf("X Value : %c\n",x);
System.out.printf("Y Value : %b\n",y);
System.out.printf("Z Value : %s",z);
}
}
THESE ARGUMENTS ARE PASSED BEFORE RUNNING THE PROGRAM FROM COMMAND LINE. THESE
ARGUMENTS ARE STORED IN THE ARRAY NAMED ARGS OF TYPE String.
WRAPPER CLASSES
==================
THESE CLASSES ARE USED TO CONVERT PRIMITIVE DATA TYPES / SIMPLE DATA TYPES (int,
char, float, double, boolean) INTO OBJECT DATA TYPES AND OBJECT DATA TYPES INTO
PRIMITIVE DATA TYPES. ADVANTAGE OF CONVERTING FROM PRIMITIVE DATA TYPES INTO OBJECT
DATA TYPES IS, OBJECTS HAS METHODS TO OPERATE THE DATA.
parseInt( ) :- THIS METHOD IS USED TO CONVERT NUMBER FROM String FORMAT INTO SIMPLE
int FORMAT. parseInt( ) IS A STATIC METHOD IN Integer CLASS.
class Six
{
public static void main(String [ ]args)
{
int n,s;
n = Integer.parseInt(args[0]);
s = n * n;
System.out.println("Square : " + s);
}
}
javac Six.java
java Six 6
java Six 9
java Six 12
SUM OF TWO NUMBERS
======================
class Six
{
public static void main(String [ ]args)
{
int x,y,z;
x = Integer.parseInt(args[0]);
y = Integer.parseInt(args[1]);
z = x + y;
System.out.print("Sum : " + z);
}
}
javac Six.java
java Six 10 20
java Six 30 40
Ex :-
byte k;
k = Byte.parseByte(args[0]);
short k;
k = Short.parseShort(args[0]);
long k;
k = Long.parseLong(args[0]);
String p;
p = args[0];
float x;
x = Float.parseFloat(args[0]);
double d;
d = Double.parseDouble(args[0]);
JAVA DOES NOT SUPPORTS GARBAGE VALUES. BEFORE USING A VARIABLE WE MUST STORE SOME
VALUE IN IT.
class Six
{
public static void main(String args[ ])
{
int a;
System.out.print("A Value : " + a); (error)
}
}
class Six
{
public static void main(String args[ ])
{
int a;
a = 10;
System.out.print("A Value : " + a);
}
}
class Six
{
public static void main(String args[ ])
{
int a = 10;
System.out.print("A Value : " + a);
}
}
class Six
{
public static void main(String args[ ])
{
int a = Integer.parseInt(args[0]);
System.out.print("A Value : " + a);
}
}
java Six 63
LITERALS / CONSTANTS :- THESE VARIABLES STORES ONLY ONE VALUE. WE CAN'T CHANGE
THESE VALUE. GENERALLY KNOWN VALUES ARE DECLARED AS LITERALS. GENERALLY WE MUST
INITIALIZE LITERALS. LITERALS ARE DECLARED BY USING "final" KEYWORD.
class Six
{
public static void main(String args[ ])
{
final int a = 10;
a = 20; // error
System.out.print("A Value : " + a);
}
}
FLEXIBLE DECLARATIONS :- IN JAVA WE CAN DECLARE VARIABLES ANY WHERE IN THE PROGRAM,
JUST BEFORE USE.
class Six
{
public static void main(String args[ ])
{
int a,b;
a = 10;
b = 20;
int c;
c = a + b;
System.out.print("Sum : " + c);
}
}
int c = a + b;
double b = Math.sqrt(64);
A VARIABLE MAY DECLARE IN FOR LOOP ALSO. BUT IT'S SCOPE IS WITHIN FOR LOOP.
class Six
{
public static void main(String args[ ])
{
for(int i = 1; i <= 5; i++)
{
System.out.print(i + "\t");
}
System.out.print(i); (error)
}
}
class Six
{
public static void main(String args[ ])
{
for(int i = 1; i <= 3; i++)
{
int k = 10;
System.out.println("K Value : " + k);
k = k + 10;
}
}
}
TYPE CASTING
==============
IT IS THE CONCEPT OF STORING ONE TYPE OF DATA INTO ANOTHER TYPE OF VARIABLE. THESE
ARE TWO TYPES.
class Six
{
public static void main(String args[ ])
{
int x; // Compatability means adjustability
x = 'A';
System.out.println("X Value : " + x);
char y;
y = 65;
System.out.println("Y Value : " + y);
int i;
i = 10;
float f;
f = i;
System.out.println("I Value : " + i);
System.out.println("F Value : " + f);
f = 12.34F;
i = (int) f;
System.out.println("I Value : " + i);
System.out.println("F Value : " + f);
byte b;
b = 10;
i = b;
System.out.println("B Value : " + b);
System.out.println("I Value : " + i);
i = 20;
b = (byte) i;
System.out.println("B Value : " + b);
System.out.println("I Value : " + i);
}
}
class Six
{
public static void main(String args[ ])
{
byte a,b;
int c;
a = 10;
b = 20;
c = a + b;
System.out.println("Sum : " + c);
byte d;
d = (byte) (a + b);
System.out.print("Sum : " + d);
}
}
class Six
{
public static void main(String args[ ])
{
byte a;
a = 200; (error)
a = (byte) (100 * 2);
System.out.print("A Value : " + a);
}
}
Ex :-
byte a = 10;
float b = (float) a;
Ex :-
double a = 10.25;
int b = (int) a;
OPERATORS
===========
1) UNARY OPERATORS
2) BINARY OPERATORS
[ ++, --, - ]
class Six
{
public static void main(String args[ ])
{
int a,b;
a = 10;
b = -a;
System.out.println("A Value : " + a);
System.out.println("B Value : " + b);
}
}
BINARY OPERATORS :- WHICH WORKS ON TWO OPERANDS. THESE OPERATORS ARE CLASSIFIED
INTO THE FOLLOWING CATEGORIES.
1) ARITHMETICAL OPERATORS
2) ASSIGNMENT OPERATOR
(SHORTHAND OPERATORS)
3) RELATIONAL OPERATORS
4) LOGICAL OPERATORS
5) BOOLEAN OPERATORS
6) BITWISE OPERATORS
[ +, -, *, /, % ]
Ex :- A + B, 10 - 5
Ex :-
A = A + 10; EXPANDED NOTATION
RELATIONAL OPERATORS :- THESE OPERATORS ARE USED TO CHECK RELATION BETWEEN TWO
OPERANDS. THESE OPERATORS ALWAYS RETURN BOOLEAN VALUE.
Ex :- A > B, 10 < 5
LOGICAL OPERATORS :- THESE OPERATORS ARE USED TO JOIN MULTIPLE CONDITIONS. THE
PURPOSE OF THESE OPERATORS IS TO CHECK MORE THAN ONE CONDITION.
BOOLEAN OPERATORS :- THESE OPERATORS ONLY WORK WITH BOOLEAN DATA TYPE VARIABLES.
[ &, |, ^, ! ]
| ====> BOOLEAN OR
^ (CARAT) ====> BOOLEAN XOR (EXCLUSIVE)
class Six
{
public static void main(String args[ ])
{
boolean x,y,res;
x = true;
y = false;
res = x & y;
System.out.println(res);
res = x | y;
System.out.println(res);
res = x ^ y;
System.out.println(res);
y = true;
res = x ^ y;
System.out.println(res);
System.out.println(!x);
}
}
| :- BITWSE OR
class Six
{
public static void main(String args[ ])
{
int a,b;
a = 25;
System.out.println(a);
System.out.println(~a);
a = 15;
b = 25;
System.out.println(a & b);
System.out.println(a | b);
System.out.println(a ^ b);
a = 20;
System.out.println(a << 2);
System.out.println(a >> 2);
a = 24;
System.out.println(a >> 2);
System.out.println(a >>> 2);
a = -24;
System.out.println(a >> 2);
System.out.println(a >>> 2);
}
}
IN CASE OF POSITIVE VALUES, THERE IS NO DIFFERENCE BETWEEN RIGHT SHIFT AND ZERO
FILL RIGHT SHIFT OPERATORS.
SYNTAX
=======
class Six
{
public static void main(String args[ ])
{
int a,b,c;
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);
c = (a > b) ? a : b;
System.out.print("Big Number : " + c);
}
}
java Six 10 20
java Six 100 20
Ex :- java.lang.System, java.util.Arrays
Ex :- Integer.parseInt( ), String.reverse( )
3) IT IS USED TO ACCESS A CONSTANT FROM A CLASS.
Ex :- Math.PI, Font.BOLD
class Six
{
public static void main(String args[ ])
{
String str = "Rama";
boolean b;
b = str instanceof String;
System.out.print(b);
}
}
new OPERATOR :- IT IS THE MOST COMMONLY USED OPERATOR IN JAVA. IT IS USED TO CREATE
OBJECTS. JVM WILL ALLOT MEMORY FOR OBJECTS IN HEAP AREA.
import java.io.PrintStream;
class Six
{
public static void main(String args[ ])
{
PrintStream ps = new PrintStream(System.out);
int a = 10;
ps.println("Program Started");
ps.println("Welcome to Print Stream Class");
ps.printf("A Value : %d\n",a);
ps.print("Program Ended");
}
}
read( ) :- THIS METHOD INPUTS SINGLE CHARACTER. THIS METHOD READS DATA IN int
FORMAT. SO NEED TYPE CASTING. THIS METHOD THROWS IOException. SO WE HAVE TO TYPE
"throws IOException" ALONG WITH main( ) METHOD.
import java.io.PrintStream;
import java.io.IOException;
class Six
{
public static void main(String args[ ]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
char x;
ps.println("Enter Character");
x = (char) System.in.read( );
ps.print("Character : " + x);
}
}
import java.io.PrintStream;
import java.io.IOException;
class Six
{
public static void main(String args[ ]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
int x;
ps.println("Enter Character");
x = System.in.read( );
ps.print("Character : " + (char) x);
}
}
import java.io.*;
class Six
{
public static void main(String args[ ]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
InputStreamReader isr = new InputStreadmReader(System.in);
BufferedReader br = new BufferedReader(isr);
String name;
ps.println("Enter Your Name");
name = br.readLine( );
ps.print("Your Name : " + name);
}
}
import java.io.*;
class Six
{
public static void main(String args[ ]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String name;
ps.println("Enter Your Name");
name = br.readLine( );
ps.print("Your Name : " + name);
}
}
import java.io.*;
class Six
{
public static void main(String args[ ]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
DataInputStream dis = new DataInputStream(System.in);
String name;
ps.println("Enter Your Name");
name = dis.readLine( );
ps.print("Your Name : " + name);
}
}
import java.io.*;
class Tenali
{
public static void main(String args[ ]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
DataInputStream dis = new DataInputStream(System.in);
int a,b,c;
ps.println("Enter Two Numbers");
a = Integer.parseInt(dis.readLine( ));
b = Integer.parseInt(dis.readLine( ));
c = a + b;
ps.print("Sum : " + c);
}
}
BY USING THIS CLASS WE CAN DIRECTLY CONNECT WITH KEYBOARD. THE MAIN ADVANTAGE OF
USING THIS CLASS IS TO READ NUMERIC TYPES OF DATA WITHOUT CONVERTING IT. THIS CLASS
CAN'T THROWS IOException. THIS CLASS CONTAINS THE FOLLOWING METHODS.
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[ ])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
String st;
ps.println("Enter String");
st = sc.next( ); / st = sc.nextLine( );
ps.println("String : " + st);
}
}
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[ ])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int a,b,c;
ps.println("Enter Two Numbers");
a = sc.nextInt( );
b = sc.nextInt( );
c = a + b;
ps.print("Sum : " + c);
}
}
FLOW OF EXECUTION :- THE WAY THE PROGRAM IS EXECUTED. GENERALLY PROGRAMS ARE
EXECUTED IN TWO TYPES OF FLOW OF EXECUTIONS.
1) SEQUENTIAL EXECUTION
2) RANDOM EXECUTION
SEQUENTIAL EXECUTION :- IN THIS MODEL, ALL STATEMENTS ARE EXECUTED ONE BY ONE (TIME
WASTE).
RANDOM EXECUTION :- IN THIS MODEL, WE CAN DIRECTLY EXECUTE THE REQUIRED STATEMENT
(TIME SAVE). TO APPLY RANDOM EXECUTION WE NEED CONTROL FLOW STATEMENTS.
CONTROL FLOW STATEMENTS :- THESE ARE THE STATEMENTS TO CHANGE FLOW OF EXECUTION.
THESE STATEMENTS ARE USED TO TAKE DECISIONS AND TO ITERATE (LOOP) SET OF
STATEMENTS.
1) SIMPLE IF STATEMENT
2) IF ELSE STATEMENT
3) ELSE IF STATEMENT
4) NESTED IF STATEMENT
SIMPLE IF STATEMENT
=====================
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int n,s;
ps.println("Enter Number");
n = sc.nextInt( );
if(n > 0)
{
s = (int) Math.sqrt(n);
ps.print("Square Root : " + s);
}
}
}
IF ELSE STATEMENT
===================
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int m;
ps.println("Enter Marks");
m = sc.nextInt( );
if(m >= 35)
{
ps.print("Result : Pass");
}
else
{
ps.print("Result : Fail");
}
}
}
ELSE IF STATEMENT
===================
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int n;
ps.println("Enter Number");
n = sc.nextInt( );
if(n > 0)
{
ps.print("It is Positive Number");
}
else
if(n < 0)
{
ps.print("It is Negative Number");
}
else
{
ps.print("It is Zero");
}
}
}
NESTED IF STATEMENT
=====================
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int n;
ps.println("Enter Number");
n = sc.nextInt( );
if(n != 0)
{
if(n > 0)
{
ps.print("It is Positive Number");
}
else
{
ps.print("It is Negative Number");
}
}
else
{
ps.print("It is Zero");
}
}
}
SWITCH STATEMENT
===================
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int n;
ps.println("Enter Number [1 - 5]");
n = sc.nextInt( );
switch(n)
{
case 1 :
ps.print("You Entered 1");
break;
case 2 :
ps.print("You Entered 2");
break;
case 3 :
ps.print("You Entered 3");
break;
case 4 :
ps.print("You Entered 4");
break;
case 5 :
ps.print("You Entered 5");
break;
default :
ps.print("You Entered Above 5 / Zero / Negative Number");
}
}
}
FOR LOOP
=========
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int n,i;
ps.println("Enter Choice");
n = sc.nextInt( );
for(i = 1; i <= n; i++) // for(int i = 1; i <= n; i++)
{
ps.print(i + "\t");
}
}
}
WHILE LOOP
============
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int n,i;
ps.println("Enter Choice");
n = sc.nextInt( );
i = 1;
while(i <= n)
{
ps.print(i + "\t");
i++;
}
}
}
DO WHILE LOOP
===============
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int n,i;
ps.println("Enter Choice");
n = sc.nextInt( );
i = 1;
do
{
ps.print(i + "\t");
i++;
}
while(i <= n);
}
}
INFINITE LOOPS
===============
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int n,r;
ps.println("Enter Numbers, 0 to Stop");
while(true) // for(; ;)
{
n = sc.nextInt( );
if(n == 0)
{
break;
}
if(n % 2 == 0)
{
ps.println("Even Number");
}
else
{
ps.println("Odd Number");
}
}
}
}
NESTED LOOPS
==============
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int i,j;
for(i = 1; i <= 5; i++)
{
for(j = 1; j <= 5; j++)
{
ps.print(i + "\t"); / ps.print(j + "\t");
}
ps.println( );
}
}
}
BREAK STATEMENT
==================
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int i;
for(i = 1; i <= 10; i++)
{
ps.print(i + "\t");
if(i == 5)
{
break;
}
}
ps.print(i);
}
}
CONTINUE STATEMENT
=====================
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int i;
for(i = 1; i <= 10; i++)
{
if(i == 5)
{
continue;
}
ps.print(i + "\t");
}
ps.print(i);
}
}
LABELLED LOOPS
================
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int i,j;
xxx :
for(i = 1; i <= 5; i++)
{
for(j = 1; j <= 5; j++)
{
ps.print(j + "\t");
if(j == 3)
{
break xxx;
}
}
ps.println( );
}
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int i,j;
xxx :
for(i = 1; i <= 5; i++)
{
for(j = 1; j <= 5; j++)
{
if(j == 3)
{
continue xxx;
}
ps.print(j + "\t");
}
ps.println( );
}
}
}
ARRAYS
========
AN ARRAY IS A GROUP OF ITEMS OF SIMILAR DATA TYPE. EACH ITEM IS CALLED AN ELEMENT.
EACH ELEMENT HAS AN UNIQUE INDEX. ARRAY INDEX ALWAYS STARTS FROM ZERO. SO AN ARRAY
IS ALWAYS CREATED WITH N-1. IN JAVA ARRAYS ARE CALLED AS OBJECTS. THE MAIN
ADVANTAGE OF OBJECTS IS, OBJECTS CONTAINS METHODS WHICH OPERATES THE DATA. AN
OBJECT IS ALWAYS CREATES WITH THE HELP OF new OPERATOR. AN OBJECT IS DESTROYED BY
ASSIGNING null KEYWORD.
IN JAVA, ARRAYS HAS A SPECIAL PROPERTY CALLED "length", WHICH RETURNS SIZE OF THE
ARRAY.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a[ ];
a = new int[5];
a[0] = 10;
a[1] = 20;
a[2] = 30;
a[3] = 40;
a[4] = 50;
ps.println("Array Elements");
for(int i = 0; i < a.length; i++)
{
ps.print(a[i] + "\t");
}
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a[ ];
a = new int[5];
a[0] = 10;
a[1] = 20;
a[2] = 30;
a[3] = 40;
a[4] = 50;
ps.println("Array Elements");
for(int i : a)
{
ps.print(i + "\t"); (i ====> a[i])
}
}
}
NOTE :- for each loop CAN ACCESS ONLY VALUE FROM THE ARRAY. IT IS UNABLE TO PERFORM
ANY OTHER OPERATION ON THE ARRAY.
INITIALIZING ARRAYS
====================
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a[ ] = {10,20,30,40,50,60};
ps.println("Array Elements");
for(int i : a)
{
ps.print(i + "\t");
}
}
}
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int n;
ps.println("Enter Size of the Array");
n = sc.nextInt( );
int a[ ] = new int[n];
ps.println("Enter " + n + " Elements");
for(int i = 0; i < n; i++)
{
a[i] = sc.nextInt( );
}
ps.println("Array Elements");
for(int i : a)
{
ps.print(i + "\t");
}
}
}
2-D ARRAYS
===========
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a[][]; or int [ ][ ]a; or int [ ]a[ ];
a = new int[3][5];
a[0][0] = 10;
a[0][1] = 20;
a[0][2] = 30;
a[0][3] = 40;
a[0][4] = 50;
a[1][0] = 60;
a[1][1] = 70;
a[1][2] = 80;
a[1][3] = 90;
a[1][4] = 100;
a[2][0] = 110;
a[2][1] = 120;
a[2][2] = 130;
a[2][3] = 140;
a[2][4] = 150;
ps.println("Array Elements");
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[i].length; j++)
{
ps.print(a[i][j] + "\t");
}
ps.println( );
}
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a[][] = {
{10,20,30,40,50},
{60,70,80,90,100},
{110,120,130,140,150}
};
ps.println("Array Elements");
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[i].length; j++)
{
ps.print(a[i][j] + "\t");
}
ps.println( );
}
}
}
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int r,c;
ps.println("Enter Rows, Columns");
r = sc.nextInt( );
c = sc.nextInt( );
int a[][] = new int[r][c];
ps.println("Enter " + (r * c) + " Elements");
for(int i = 0; i < r; i++)
{
for(int j = 0; j < c; j++)
{
a[i][j] = sc.nextInt( );
}
}
ps.println("Array Elements");
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[i].length; j++)
{
ps.print(a[i][j] + "\t");
}
ps.println( );
}
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a[][] = new int[3][];
a[0] = new int[5];
a[1] = new int[3];
a[2] = new int[6];
a[0][0] = 10;
a[0][1] = 20;
a[0][2] = 30;
a[0][3] = 40;
a[0][4] = 50;
a[1][0] = 60;
a[1][1] = 70;
a[1][2] = 80;
a[2][0] = 90;
a[2][1] = 100;
a[2][2] = 110;
a[2][3] = 120;
a[2][4] = 130;
a[2][5] = 140;
ps.println("Array Elements");
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[i].length; j++)
{
ps.print(a[i][j] + "\t");
}
ps.println( );
}
}
}
STRING ARRAYS
===============
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
String names[ ] = new String[5];
ps.println("Enter Five Names");
for(int i = 0; i < names.length; i++)
{
names[i] = sc.nextLine( );
}
ps.print("Names : ");
for(String i : names)
{
ps.print(i + "\t"); (i ====> names[i])
}
}
}
COPYING ARRAYS
=================
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a[] = {10,20,30,40,50};
int b[] = new int[5];
System.arraycopy(a,0,b,0,5);
// arrarycopy(Source Array, Source Array Starting Index,
// Target Array, Target Array Starting Index, Number of Elements To Be // copied)
ps.println("Array A Elements");
for(int i : a)
{
ps.print(i + "\t");
}
ps.println( );
ps.println("Array B Elements");
for(int i : b)
{
ps.print(i + "\t");
}
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a[] = {10,20,30,40,50};
int b[] = {10,20,30,40,50};
if(a == b)
{
ps.print("Both are equal Arrays");
}
else
{
ps.print("Both are not equal Arrays");
}
}
}
equals( ) :- THIS METHOD IS USED TO COMPARE TWO ARRAYS. IF BOTH ARE EQUAL THEN IT
RETURNS TRUE OTHERWISE RETURNS FALSE.
import java.io.PrintStream;
import java.util.Arrays;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a[] = {10,20,30,40,50};
int b[] = {10,20,30,40,50};
if(Arrays.equals(a,b))
{
ps.print("Both are equal Arrays");
}
else
{
ps.print("Both are not equal Arrays");
}
}
}
FILLING ARRAYS
================
fill( ) :- THIS METHOD IS USED TO FILL AN ENTIRE ARRAY / A RANGE (PARTIAL ARRAY)
WITH A SPECIFIC VALUE.
import java.io.PrintStream;
import java.util.Arrays;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a[] = new int[10];
Arrays.fill(a,6);
ps.println("Array A Elements");
for(int i : a)
{
ps.print(i + "\t");
}
ps.println( );
int b[] = new int[10];
Arrays.fill(b,0,3,6); // N = EI - SI
Arrays.fill(b,3,7,3);
Arrays.fill(b,7,10,63);
ps.println("Array B Elements");
for(int i : b)
{
ps.print(i + "\t");
}
}
}
SORTING ARRAYS
================
sort( ) :- THIS METHOD IS USED TO SORT (ARRANGE DATA IN ASCENDING ORDER) AN ENTIRE
ARRAY / A RANGE (PARTIAL ARRAY).
import java.io.PrintStream;
import java.util.Arrays;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a[] = {30,60,50,10,40,20};
ps.println("Before Sorting, Array A Elements");
for(int i : a)
{
ps.print(i + "\t");
}
ps.println( );
Arrays.sort(a);
ps.println("After Sorting, Array A Elements");
for(int i : a)
{
ps.print(i + "\t");
}
ps.println( );
int b[] = {30,60,50,10,40,20};
ps.println("Before Sorting, Array B Elements");
for(int i : b)
{
ps.print(i + "\t");
}
ps.println( );
Arrays.sort(b,0,4);
ps.println("After Sorting, Array B Elements");
for(int i : b)
{
ps.print(i + "\t");
}
}
}
NOTE :- SORT METHOD OF ARRAYS CLASS CAN APPLY ON ANY DATA TYPE, EVEN STRINGS ALSO.
import java.io.PrintStream;
import java.util.Arrays;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String names[ ] = {"Rama","Siva","Divya","Krishna","Tata"};
ps.println("Names Before Sorting");
for(String i : names)
{
ps.print(i + "\t");
}
ps.println( );
Arrays.sort(names);
ps.println("Names After Sorting");
for(String i : names)
{
ps.print(i + "\t");
}
ps.println( );
}
}
SEARCHING
===========
import java.io.PrintStream;
import java.util.Scanner;
import java.util.Arrays;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int a[] = {40,50,60,20,30,10};
int se,pos;
ps.println("Enter Search Element");
se = sc.nextInt( );
Arrays.sort(a);
pos = Arrays.binarySearch(a,se);
if(pos < 0)
{
ps.print("Element Not Found");
}
else
{
ps.print("Element Found at Position : " + (pos+1));
}
}
}
DYNAMIC ARRAYS
=================
FIXED ARRAY :- FIXED ARRAY IS AN ARRAY WHOSE SIZE CAN'T BE CHANGED AFTER CREATION
AND WE CAN'T REMOVE ELEMENTS FROM IT.
DYNAMIC ARRAY :- DYNAMIC ARRAY IS AN ARRAY WHOSE SIZE CAN'T BE SPECIFIED AT THE
TIME OF CREATION. SO WE CAN STORE ANY NUMBER OF ELEMENTS IN IT. WE CAN ALSO REMOVE
ELEMENTS FROM IT.
ARRAYLIST :- ARRAYLIST OBJECT IS CALLED DYNAMIC ARRAY. ARRAYLIST CAN STORE ONLY
OBJECTS & SIMPLE DATA TYPES. IT CAN'T STORE PRIMITIVE TYPES LIKE INT, CHAR, FLOAT
ETC.THE ARRAYLIST CLASS IS AVAILABLE IN JAVA.UTIL PACKAGE. IT CONTAINS THE
FOLLOWING METHODS.
add( ) :- THIS METHODS ADDS ELEMENTS TO THE ARRAY LIST. BY DEFAULT ADDS AT LAST
POSITION. IF WE SPECIFY INDEX THEN ADDS THE ELEMENT AT SPECIFIED POSITION.
remove( ) :- THIS METHOD REMOVES AN ELEMENT FROM THE ARRAY LIST. WE CAN REMOVE
ELEMENT BASED ON ELEMENT AND BASED ON POSITION.
get( ) : - THIS METHOD IS USED TO ACCESS AN ELEMENT FROM THE ARRAY LIST.
import java.io.PrintStream;
import java.util.ArrayList;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
ArrayList al = new ArrayList( );
ps.println("Array List Size : " + al.size( ));
ps.println("Array List Elements : " + al);
al.add(10);
al.add(2.3);
al.add("Rama");
ps.println("Array List Size : " + al.size( ));
ps.println("Array List Elements : " + al);
al.add(20);
al.add("Tata");
ps.println("Array List Size : " + al.size( ));
ps.println("Array List Elements : " + al);
al.add(0,"Eeswar");
ps.println("Array List Size : " + al.size( ));
ps.println("Array List Elements : " + al);
al.remove(3);
ps.println("Array List Size : " + al.size( ));
ps.println("Array List Elements : " + al);
ps.println("Array List Elements");
for(int i = 0; i < al.size( ); i++)
{
ps.println(al.get(i));
}
}
}
VECTORS
========
SAME AS ARRAY LIST. IT INCREASES SIZE BY DOUBLE. THROUGH VECTORS WE CAN ACCESS
INDIVIDUAL ELEMENTS OF THE VECTOR.
import java.io.PrintStream;
import java.util.Scanner;
import java.util.Vector;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Vector ob = new Vector( ); // Default size is 10
//Vector ob = new Vector(5);
//Vector ob = new Vector(5,3);
ps.println("Vector Size : " + ob.capacity( ));
ps.println("Vector Size : " + ob.size( ));
ps.println("Vector Elements : " + ob);
ob.add(10);
ob.add("Divya");
ob.add(12.34);
ps.println("Vector Size : " + ob.capacity( ));
ps.println("Vector Size : " + ob.size( ));
ps.println("Vector Elements : " + ob);
ps.println("Vector Elements");
for(int i = 0; i < ob.size( ); i++)
{
ps.println(ob.elementAt(i));
}
ob.remove(1);
ps.println("Vector Size : " + ob.capacity( ));
ps.println("Vector Size : " + ob.size( ));
ps.println("Vector Elements : " + ob);
ps.println("Vector Elements");
for(int i = 0; i < ob.size( ); i++)
{
ps.println(ob.elementAt(i));
}
}
}
STRINGS
========
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = new String("Rama");
ps.print("String : " + str);
}
}
THIRD WAY : WE CAN CREATE A STRING BY CONVERTING CHARACTER ARRAY INTO STRING
OBJECT.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
char ar[] = {'T','E','N','A','L','I'};
String str = new String(ar);
ps.print("String : " + str);
}
}
NOTE :- WE CAN ALSO CREATE A STRING WITH SOME CHARACTERS FROM A CHARACTER ARRAY.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
char ar[] = {'T','E','N','A','L','I'};
String str = new String(ar,2,3);
ps.print("String : " + str);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "Rama";
String str2 = "Krishna";
String str3;
str3 = str1 + str2;
ps.print("String : " + str3);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "Rama";
String str2 = "Krishna";
String str3;
str3 = str1 + " " + str2;
ps.print("String : " + str3);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "Rama";
String str2 = "Krishna";
String str3,str4;
str3 = str1.concat(str2);
str4 = str2.concat(str1);
ps.println("String : " + str3);
ps.print("String : " + str4);
}
}
NOTE :- CONCATENATION OPERATOR CONCATS ANY TYPE OF DATA. BUT concat( ) METHOD
CONCATS ONLY STRING TYPE OF DATA.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "Rama";
int n = 10;
String str2;
str2 = str1 + n;
ps.print("String : " + str2);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "Rama";
int n = 10;
String str2;
str2 = str1.concat(n); (error)
ps.print("String : " + str2);
}
}
NOTE :- CONCATENATION OPERATORS CONCATS ANY NUMBER OF STRINGS. BUT concat( ) METHOD
CONCATS ONLY TWO STRINGS.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "Raja ";
String str2 = "Ram ";
String str3 = "Mohan ";
String str4 = "Roy";
String str5;
str5 = str1 + str2 + str3 + str4;
ps.print("String : " + str5);
}
}
length( ) :- THIS MEHOD IS USED TO FIND LENGTH OF STRING. LENGTH MEANS HOW MANY
CHARACTERS IN A STRING.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = "Rama Rao";
int n;
n = str.length( );
ps.print("String Length : " + n);
}
}
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
String str;
int n;
ps.println("Enter String");
str = sc.nextLine( );
n = str.length( );
ps.print("String Length : " + n);
}
}
CHARACTER EXTRACTION
=========================
charAt( ):- THIS METHOD IS USED TO EXTRACT (ACCESS / GET) A CHARACTER FROM A
STRING.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = "Rama Krishna";
char x;
x = str.charAt(5);
ps.print("Extracted Character : " + x);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = "Rama Krishna";
ps.println("String : " + str);
ps.print("String : ");
for(int i = 0; i < str.length( ); i++)
{
ps.print(str.charAt(i) + " ");
}
}
}
getChars( ) :- THIS METHOD IS USED TO EXTRACT MULTIPLE CHARACTER FROM A STRING INTO
A CHARACTER ARRAY.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = "Raja Ram Mohan Roy";
char x[] = new char[3];
str.getChars(5,8,x,0);
// getChars(Source String Starting Index, Source String Ending // Index, Target
Array, Target Array Starting Index)
ps.println("String : " + str);
ps.print("Extracted String : ");
for(int i = 0; i < x.length; i++)
{
ps.print(x[i]);
}
}
}
COMPARING STRINGS
====================
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = new String("Rama");
String str2 = new String("Rama");
if(str1 == str2)
{
ps.print("Both are equal Strings");
}
else
{
ps.print("Both are not equal Strings");
}
}
}
equals( ) :- THIS METHOD IS USED TO COMPARE TWO STRINGS. IF BOTH ARE EQUAL THEN IT
RETURNS TRUE OTHERWISE RETURNS FALSE.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = new String("Rama");
String str2 = new String("Rama");
String str3 = new String("RAMA");
if(str1.equals(str2))
{
ps.println("String1 and String2 are equal Strings");
}
else
{
ps.println("String1 and String2 are not equal Strings");
}
if(str1.equals(str3))
{
ps.println("String1 and String3 are equal Strings");
}
else
{
ps.println("String1 and String3 are not equal Strings");
}
if(str1.equalsIgnoreCase(str3))
{
ps.println("String1 and String3 are equal Strings");
}
else
{
ps.println("String1 and String3 are not equal Strings");
}
}
}
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
String str1;
String str2;
int res;
ps.println("Enter Two Strings");
str1 = sc.nextLine( );
str2 = sc.nextLine( );
res = str1.compareTo(str2);
ps.println("Result : " + res);
if(res == 0)
{
ps.println("Both are equal Strings");
}
else
if(res > 0)
{
ps.println("First String is Big");
}
else
{
ps.println("Second String is Big");
}
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "Raja Ram Mohan Roy";
String str2 = "Seeta Rama Raju";
String str3 = "Seeta RAMA Raju";
if(str1.regionMatches(5,str2,6,3))
// regionMatches(first string starting index, second string, second // string
starting index, number of characters to be compared);
{
ps.println("Both are equal Strings");
}
else
{
ps.println("Both are not equal Strings");
}
if(str1.regionMatches(5,str3,6,3))
{
ps.println("Both are equal Strings");
}
else
{
ps.println("Both are not equal Strings");
}
if(str1.regionMatches(true,5,str3,6,3))
// regionMatches(true,first string starting index, second string, // second string
starting index, number of characters to be // compared);
// true :- WITHOUT CASE SENSITIVE.
{
ps.println("Both are equal Strings");
}
else
{
ps.println("Both are not equal Strings");
}
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = "Ramesh";
if(str.startsWith("Ram"))
{
ps.println("Yes");
}
else
{
ps.println("No");
}
}
}
endsWith( ) :- THIS METHOD IS USED TO CHECK A STRING ENDS WITH PARTICULAR STRING OR
NOT.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = "Ramesh";
if(str.endsWith("esh"))
{
ps.println("Yes");
}
else
{
ps.println("No");
}
}
}
SEARCHING STRINGS
====================
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = "This is a book";
int p;
p = str.indexOf("is");
if(p == -1)
{
ps.println("Sub String Not Found");
}
else
{
ps.println("Position : " + (p + 1));
}
p = str.indexOf("was");
if(p == -1)
{
ps.println("Sub String Not Found");
}
else
{
ps.println("Position : " + (p + 1));
}
p = str.indexOf("is",3);
if(p == -1)
{
ps.println("Sub String Not Found");
}
else
{
ps.println("Position : " + (p + 1));
}
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = "This is a book";
int p;
p = str.lastIndexOf("is");
if(p == -1)
{
ps.println("Sub String Not Found");
}
else
{
ps.println("Position : " + (p + 1));
}
p = str.lastIndexOf("was");
if(p == -1)
{
ps.println("Sub String Not Found");
}
else
{
ps.println("Position : " + (p + 1));
}
p = str.lastIndexOf("is",3);
if(p == -1)
{
ps.println("Sub String Not Found");
}
else
{
ps.println("Position : " + (p + 1));
}
}
}
CONVERTING STRINGS
=====================
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = "RAMA";
ps.println("String : " + str);
ps.println("Converted String : " + str.toLowerCase( ));
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = "rama";
ps.println("String : " + str);
ps.println("Converted String : " + str.toUpperCase( ));
}
}
MODIFYING STRINGS
====================
substring( ) :- THIS METHOD IS USED TO GET SUB STRING FROM MAIN STRING.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str = "Raja Ram Mohan Roy";
ps.println("String : " + str);
ps.println("Sub String : " + str.substring(5,8));
ps.println("Sub String : " + str.substring(5));
}
}
replace( ) :- THIS METHOD IS USED TO REPLACE A CHARACTER / SUB STRING WITH ANOTHER
CHARACTER / SUB STRING.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "Raja Ram Mohan Roy Siva Ram Krishna";
String str2,str3;
str2 = str1.replace('a','*');
str3 = str1.replace("Ram","Tata");
ps.println("String : " + str1);
ps.println("Replaced String : " + str2);
ps.println("Replaced String : " + str3);
}
}
trim( ) :- THIS METHOD IS USED TO REMOVE ALL LEADING (BEFORE) AND TRAILING (AFTER)
SPACES .
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String st = " Rama Rao ";
String x = st.trim( );
ps.print("String : " + st);
ps.print("Hai");
ps.println( );
ps.print("String : " + x);
ps.print("Hai");
}
}
split( ) :- THIS METHOD IS USED TO DIVIDE MAIN STRING INTO SOME SUB STRINGS.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "Raja Ram Mohan Roy Siva Rama Krishna";
String str2[ ] = str1.split(" ");
ps.println("String : " + str1);
ps.println("Splitted Strings");
for(String i : str2)
{
ps.println(i);
}
String str3[] = str1.split(" ",5);
ps.println("Splitted Strings");
for(String i : str3)
{
ps.println(i);
}
}
}
NESTING OF METHODS
=====================
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = " Raja Ram ";
int n;
n = str1.length( );
ps.println("String Length : " + n);
n = str1.trim( ).length( );
ps.println("String Length : " + n);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "Raja ";
String str2 = "Ram ";
String str3 = "Mohan ";
String str4 = "Roy";
String str5;
str5 = str1.concat(str2).concat(str3).concat(str4);
ps.println("String : " + str5);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "RAJA RAM MOHAN ROY";
ps.println("Sub String : " + str1.substring(5,8).toLowerCase( ));
5 : STARTING INDEX, 8 : ENDING INDEX
N : ENDING INDEX - STARTING INDEX
}
}
TYPES OF OBJECTS
==================
1) IMMUTABLE OBJECTS
2) MUTABLE OBJECTS
FIXED STRINGS :- STRING CLASS OBJECTS ARE IMMUTABLE OBJECTS / FIXED STRINGS. THESE
OBJECTS SIZE CAN'T BE INCREASED / DECREASED AND WE CAN'T MAKE ANY MODIFICTIONS IN
STRING OBJECTS.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String str1 = "Rama";
String str2;
ps.println("String 1 : " + str1);
str2 = str1.toUpperCase( );
ps.println("String 2 : " + str2);
ps.println("String 1 : " + str1);
ps.println("String 1 : " + str1.toLowerCase( ));
ps.println("String 1 : " + str1);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
StringBuffer str1 = new StringBuffer( );
StringBuffer str2 = new StringBuffer(10);
StringBuffer str3 = new StringBuffer("Rama");
ps.println("String 1 : " + str1);
ps.println("String 1 Length : " + str1.length( ));
ps.println("String 1 Capacity : " + str1.capacity( ));
ps.println("String 2 : " + str2);
ps.println("String 2 Length : " + str2.length( ));
ps.println("String 2 Capacity : " + str2.capacity( ));
ps.println("String 3 : " + str3);
ps.println("String 3 Length : " + str3.length( ));
ps.println("String 3 Capacity : " + str3.capacity( ));
}
}
length( ) :- THIS MEHOD IS USED TO FIND LENGTH OF STRINGBUFFER OBJECT. LENGTH MEANS
HOW MANY CHARACTERS IN A STRINGBUFFER OBJECT.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
StringBuffer str = new StringBuffer("Rama");
int n;
n = str.length( );
ps.print("String Length : " + n);
}
}
append( ) :- THIS METHOD IS USED TO ADD CONTENTS AT END TO THE EXISTING OBJECT.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
StringBuffer str1 = new StringBuffer( );
str1 = "Rama"; (error)
str1.append("Rama");
ps.println("String 1 : " + str1);
ps.println("String 1 Capacity : " + str1.capacity( ));
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
StringBuffer str1 = new StringBuffer("Rama is Boy");
ps.println("String 1 : " + str1);
str1.insert(8,"Good ");
ps.println("String 1 : " + str1);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
StringBuffer str = new StringBuffer("Ramesh");
ps.println("String : " + str);
str.setCharAt(2,'j');
ps.println("String : " + str);
}
}
replace( ) :- THIS METHOD IS USED TO REPLACE A CHARACTER / SUB STRING WITH ANOTHER
CHARACTER / SUB STRING.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
StringBuffer str = new StringBuffer("Siva Rama Krishna");
ps.println("String : " + str);
str.replace(5,9,"Radha");
ps.println("String : " + str);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
StringBuffer str = new StringBuffer("Raxma");
ps.println("String : " + str);
str.deleteCharAt(2); 2 : x
ps.println("String : " + str);
}
}
delete( ) :- THIS METHOD IS USED TO DELETE A SUB STRING FROM MAIN STRING.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
StringBuffer str = new StringBuffer("Siva Rama Krishna");
ps.println("String : " + str);
str.delete(5,10);
ps.println("String : " + str);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
StringBuffer str = new StringBuffer("Rama");
ps.println("String : " + str);
str.reverse( );
ps.println("String : " + str);
}
}
WE CAN'T INPUT DATA AT RUNTIME INTO STRINGBUFFER OBJECT. FIRST CREATE AN EMPTY
STRINGBUFFER OBJECT AND NEXT APPEND STRING TO STRINGBUFFER OBJECT.
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
String str;
StringBuffer strb = new StringBuffer( );
ps.println("Enter String");
str = sc.nextLine( );
strb.append(str);
ps.println("String : " + strb);
}
}
NOTE :- ALL METHODS IN THE CHARACTER CLASS ARE STATIC METHODS. CHARACTER CLASS IS
AVIALABLE IN JAVA.LANG PACKAGE.
import java.io.PrintStream;
import java.io.IOException;
class Six
{
public static void main(String args[]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
char ch;
ps.println("Enter Character");
ch = (char) System.in.read( );
if(Character.isLetterOrDigit(ch))
{
ps.println("It is Alphabet / Digit");
}
else
{
ps.println("It is Not Alphabet / Digit");
}
}
}
import java.io.PrintStream;
import java.io.IOException;
class Six
{
public static void main(String args[]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
char ch;
ps.println("Enter Character");
ch = (char) System.in.read( );
if(Character.isLetter(ch))
{
ps.println("It is Alphabet");
}
else
{
ps.println("It is Not Alphabet");
}
}
}
import java.io.PrintStream;
import java.io.IOException;
class Six
{
public static void main(String args[]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
char ch;
ps.println("Enter Character");
ch = (char) System.in.read( );
if(Character.isDigit(ch))
{
ps.println("It is Digit");
}
else
{
ps.println("It is Not Digit");
}
}
}
import java.io.PrintStream;
import java.io.IOException;
class Six
{
public static void main(String args[]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
char ch;
ps.println("Enter Character");
ch = (char) System.in.read( );
if(Character.isSpaceChar(ch))
{
ps.println("It is Space");
}
else
{
ps.println("It is Not Space");
}
}
}
import java.io.PrintStream;
import java.io.IOException;
class Six
{
public static void main(String args[]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
char ch;
ps.println("Enter Character");
ch = (char) System.in.read( );
if(Character.isWhitespace(ch))
{
ps.println("It is Tab / Space / Enter");
}
else
{
ps.println("It is Not Tab / Space / Enter");
}
}
}
import java.io.PrintStream;
import java.io.IOException;
class Six
{
public static void main(String args[]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
char ch;
ps.println("Enter Alphabet");
ch = (char) System.in.read( );
if(Character.isLowerCase(ch))
{
ps.println("It is Lower Case Alphabet");
}
else
{
ps.println("It is Not Lower Case Alphabet");
}
}
}
import java.io.PrintStream;
import java.io.IOException;
class Six
{
public static void main(String args[]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
char ch;
ps.println("Enter Alphabet");
ch = (char) System.in.read( );
if(Character.isUpperCase(ch))
{
ps.println("It is Upper Case Alphabet");
}
else
{
ps.println("It is Not Upper Case Alphabet");
}
}
}
import java.io.PrintStream;
import java.io.IOException;
class Six
{
public static void main(String args[]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
char ch;
ps.println("Enter Upper Case Alphabet");
ch = (char) System.in.read( );
ps.println("Entered Alphabet : " + ch);
ps.println("Converted Alphabet : " + Character.toLowerCase(ch));
}
}
import java.io.PrintStream;
import java.io.IOException;
class Six
{
public static void main(String args[]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
char ch;
ps.println("Enter Lower Case Alphabet");
ch = (char) System.in.read( );
ps.println("Entered Alphabet : " + ch);
ps.println("Converted Alphabet : " + Character.toUpperCase(ch));
}
}
NOTE :- ALL METHODS IN THE Math CLASS ARE STATIC METHODS. ALMOST ALL METHODS IN
Math CLASS TAKE DOUBLE TYPE PARAMETERS. MATH CLASS IS AVIALABLE IN "java.lang"
PACKAGE.
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
double n,s;
ps.println("Enter Number");
n = sc.nextDouble( );
s = Math.sqrt(n);
ps.println("Square Root : " + s);
}
}
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
double b,p,res;
ps.println("Enter Base, Power");
b = sc.nextDouble( );
p = sc.nextDouble( );
res = Math.pow(b,p);
ps.println("Result : " + res);
}
}
ALL TRIGONOMETRY METHODS TAKES ARGUMENTS AS RADIANS. SO, WE HAVE TO CONVERT RADIANS
INTO DEGREES.
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
double d,r,res;
ps.println("Enter Degrees");
r = sc.nextDouble( );
d = r * Math.PI / 180;
res = Math.sin(d);
// res = 1 / Math.sin(d);
// res = Math.cos(d);
// res = 1 / Math.cos(d);
// res = Math.tan(d);
// res = 1 / Math.tan(d);
ps.println("Result : " + res);
}
}
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
double n,res;
n = 12.3;
res = Math.ceil(n);
ps.println("Result : " + res);
n = 12.9;
res = Math.floor(n);
ps.println("Result : " + res);
n = 12.7;
res = Math.rint(n);
ps.println("Result : " + res);
n = 12.3;
res = Math.rint(n);
ps.println("Result : " + res);
n = 12.5;
res = Math.rint(n);
ps.println("Result : " + res);
}
}
round( ) :- THIS METHOD IS USED TO STORE A FLOAT VALUE INTO A INTEGER VARIABLE WITH
DATA LOSS.
import java.io.PrintStream;
class Six
{
public static void main(String args[]) throws InterruptedException
{
PrintStream ps = new PrintStream(System.out);
float a = 12.25F;
int b;
b = Math.round(a);
ps.println("B Value : " + b);
}
}
abs( ) :- THIS METHOD IS USED TO FIND ABSOLUTE VALUE (ALWAYS POSITIVE VALUE / A
VALUE WITHOUT SIGN) OF A NUMBER.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
double n,res;
n = 12;
res = Math.abs(n);
ps.println("Result : " + res);
n = -12;
res = Math.abs(n);
ps.println("Result : " + res);
}
}
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
double n,s;
ps.println("Enter Number");
n = sc.nextDouble( );
s = Math.sqrt(Math.abs(n));
ps.println("Square Root : " + s);
}
}
import java.io.PrintStream;
import java.util.Scanner;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
double a,b,res;
ps.println("Enter Two Numbers");
a = sc.nextDouble( );
b = sc.nextDouble( );
res = Math.max(a,b);
ps.println("Maximum Number : " + res);
res = Math.min(a,b);
ps.println("Minimum Number : " + res);
}
}
random( ) :- THIS METHOD IS USED TO GENERATE RANDOM NUMBERS BETWEEN 0 AND SPECIFIED
NUMBER.
sleep( ) :- THIS METHOD IS USED TO STAY PROCESSING AT SPECIFIED TIME. THIS IS THE
STATIC METHOD IN THREAD CLASS, WHICH IS AVIALABLE IN JAVA.LANG PACKAGE.
import java.io.PrintStream;
class Six
{
public static void main(String args[]) throws InterruptedException
{
PrintStream ps = new PrintStream(System.out);
double n;
int r;
while(true)
{
n = Math.random( ) * 10;
r = (int) n;
ps.print(r + "\t");
if(r == 0)
{
break;
}
Thread.sleep(3000); // 3000 : 3 THOUSAND MILLI SECONDS
// IT MEANS THREE SECONDS
}
}
}
JAVA PROVIDES SEVERAL CLASSES TO HANDLE DATES. THE MOST COMMONLY USED CLASS IS Date
OF java.util PAKCAGE. THIS CLASS IS USED TO GET CURRENT SYSTEM DATE AND TIME.
import java.io.PrintStream;
import java.util.Date;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Date d = new Date( );
Date d =new Date(95,11,29); Years : Starts From 1900, Month : Array : -1
ps.println("Current Date : " + d);
}
}
OUTPUT
========
Current Date : Mon Apr 19 16:05:50 IST 2010
FORMATTING DATES
===================
THIS CLASS IS USED TO FORMAT DATES. IT IS THE MOST COMMONLY USED DATE FORMAT CLASS.
THIS CLASS IS AVAILABLE IN java.text PACKAGE.
import java.io.PrintStream;
import java.util.Date;
import java.text.SimpleDateFormat;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Date d = new Date( );
String str;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
// MM = MONTH, mm = MINUTE
str = sdf.format(d);
ps.println("Date in Indian Format : " + str);
sdf = new SimpleDateFormat("MM-dd-yyyy");
str = sdf.format(d);
ps.println("Date in American Format : " + str);
sdf = new SimpleDateFormat("yyyy.MM.dd");
str = sdf.format(d);
ps.println("Date in Japan Format : " + str);
sdf = new SimpleDateFormat("hh:mm:ss");
// hh : 12 HOURS FORMAT, HH : 24 HOURS FORMAT
str = sdf.format(d);
ps.println("Current Time in 12 Hours Format : " + str);
sdf = new SimpleDateFormat("HH:mm:ss");
str = sdf.format(d);
ps.println("Current Time in 24 Hours Format : " + str);
}
}
dd, MM, yyyy, hh, HH, mm, ss ARE CALLED DATE AND TIME FORMAT CODES. DATE AND TIME
FORMAT CODES HAS CASE SENSITIVE.
FACTORY METHODS
===================
SOME TIMES OBECTS TO THE CLASSES MAY NOT BE CREATED BY JVM. SO WE UNABLE TO USE new
OPERATOR. FOR SOME CLASSES IN JAVA, WE CAN'T CREATE AN OBJECT TO THAT CLASSES BY
USING new OPERATOR. FOR EXAMPLE WE CAN'T CREATE OBJECT TO System CLASS. BECAUSE
System CLASS DEPENDS ON OPERATING SYSTEM INTERNALLY. IN THIS SITUATIONS WE CAN
CREATE OBJECTS WITH FACTORY METHODS.
Calendar CLASS IS USED TO ACCESS DATE AND TIME PARTS INDIVIDUALLY. Calendar CLASS
IS AVAILABLE IN java.utilPACKAGE. Calendar CLASS IS AN ABSTRACT CLASS. IT MEANS WE
CAN'T CREATE ANOBJECT FROM IT. ONLY WE CAN CREATE REFERENCE. getInstace( ) IS THE
FACTORY METHOD OF Calendar CLASS. THIS CLASS PROVIDES get( ) AND set( ) METHODS TO
ACEESS AND MODIFY DATE AND TIME.
Calendar CLASS PROVIDES THE FOLLOWING CONSTANTS TO GET AND SET INDIVIDUAL PARTS OF
DATE AND TIME. ALL CONSTANTS RETURNS INTEGER.
import java.io.PrintStream;
import java.util.Calendar;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Calendar cobj = Calendar.getInstance( );
int res;
ps.println("Current Date : " + cobj);
res = cobj.get(Calendar.DATE);
ps.println("Day : " + res);
res = cobj.get(Calendar.DAY_OF_WEEK);
ps.println("Day of Week : " + res);
res = cobj.get(Calendar.DAY_OF_WEEK_IN_MONTH);
ps.println("Day of Week in Month : " + res);
res = cobj.get(Calendar.DAY_OF_MONTH);
ps.println("Day of Month : " + res);
res = cobj.get(Calendar.DAY_OF_YEAR);
ps.println("Day of Year : " + res);
res = cobj.get(Calendar.WEEK_OF_MONTH);
ps.println("Week of Month : " + res);
res = cobj.get(Calendar.WEEK_OF_YEAR);
ps.println("Week of Year : " + res);
res = cobj.get(Calendar.MONTH);
// MONTH CONSTANT STARTS FROM ZERO.
ps.println("Month : " + (res+1) );
res = cobj.get(Calendar.YEAR);
ps.println("Year : " + res );
res = cobj.get(Calendar.HOUR);
ps.println("Hours (12 Hours Format) : " + res );
res = cobj.get(Calendar.HOUR_OF_DAY);
ps.println("Hours (24 Hours Format) : " + res );
res = cobj.get(Calendar.MINUTE);
ps.println("Minutes : " + res );
res = cobj.get(Calendar.SECOND);
ps.println("Seconds : " + res );
res = cobj.get(Calendar.MILLISECOND);
ps.println("Milli Seconds : " + res );
res = cobj.get(Calendar.AM_PM);
ps.println("AM / PM : " + res );
// RETURNS ZERO FOR AM AND ONE FOR PM
}
}
import java.io.PrintStream;
import java.util.Calendar;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Calendar cobj = Calendar.getInstance( );
int d,m,y;
d = cobj.get(Calendar.DATE);
m = cobj.get(Calendar.MONTH);
y= cobj.get(Calendar.YEAR);
ps.println("Date in Indian Format : " + d + "/" + (m + 1) + "/" + y);
ps.println("Date in American Format : " + (m + 1) + "-" + d + "-" + y);
ps.println("Date in Japan Format : " + y + "." + (m + 1) + "." + d);
}
}
import java.io.PrintStream;
import java.util.Calendar;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Calendar cobj = Calendar.getInstance( );
int h,m,s,r;
h = cobj.get(Calendar.HOUR);
m = cobj.get(Calendar.MINUTE);
s = cobj.get(Calendar.SECOND);
ps.println("Time in 12 Hours Format : " + h + ":" + m + ":" + s);
h = cobj.get(Calendar.HOUR_OF_DAY);
ps.println("Time in 24 Hours Format : " + h + ":" + m + ":" + s);
h = cobj.get(Calendar.HOUR);
r = cobj.get(Calendar.AM_PM);
ps.print("Current Time : " + h + ":" + m + ":" + s + " ");
if(r == 0)
{
ps.println("AM");
}
else
{
ps.println("PM");
}
}
}
A WRAPPER CLASS IS A CLASS WHOSE OBJECT WRAP (CONTAINS) PRIMITIVE DATA TYPE WITHIN
IT. THESE CLASSES ARE USED TO CONVERT PRIMITIVE DATA TYPES INTO OBJECTS AND
OBJECTS INTO PRIMITIVE DATA TYPES. EVERY PRIMITIVE DATA TYPE HAS RELATED WRAPPER
CLASS.
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int n = 10;
Integer ob = new Integer(n);
ps.println("N Value : " + n);
ps.println("Object Value : " + ob);
}
}
byte n = 10;
Byte ob = new Byte(n);
short n = 10;
Short ob = new Short(n);
long n = 10L;
Long ob = new Long(n);
float n = 10.25F;
Float ob = new Float(n);
double n = 10.25;
Double ob = new Double(n);
char n = 'k';
Character ob = new Character(n);
boolean n = true;
Boolean ob = new Boolean(n);
xxxValue( ) :- THIS METHOD IS USED TO ACCESS VALUE FROM AN OBJECT AND STORES INTO A
PRIMITIVE DATA TYPE. HERE xxx MEANS DATA TYPE.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Integer ob = new Integer(10);
int n = ob.intValue( );
ps.println("Object Value : " + ob);
ps.println("N Value : " + n);
}
}
Byte ob = new Byte((byte)10);
byte n = ob.byteValue( );
toString( ) :- THIS METHOD IS USED TO CONVERT ANY TYPE OF OBJECT INTO STRING TYPE
OBJECT.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Integer iob = new Integer(10);
String sob = iob.toString( );
ps.println("Integer Object Value : " + iob);
ps.println("String Object Value : " + sob);
}
}
valueOf( ) :- EVERY NUMERIC CLASS HAS A STATIC METHOD CALLED valueOf( ). THIS
METHOD IS USED TO CONVERT STRING TYPE OBJECT INTO NUMERIC OBJECT.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String sob = "10";
Integer iob = Integer.valueOf(sob);
ps.println("String Object Value : " + sob);
ps.println("Integer Object Value : " + iob);
}
}
toString( ) :- EVERY NUMERIC CLASS HAS A STATIC METHOD CALLED toString( ). THIS
METHOD IS USED TO CONVERT ANY TYPE OF OBECT INTO STRING TYPE OBJECT.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int n = 10;
String ob = Integer.toString(n);
ps.println("N Value : " + n);
ps.println("String Object Value : " + ob);
}
}
byte n = 10;
String ob = Byte.toString(n);
short n = 10;
String ob = Short.toString(n);
long n = 10L;
String ob = Long.toString(n);
float n = 10.25F;
String ob = Float.toString(n);
double n = 10.25;
String ob = Double.toString(n);
char n = 'K';
String ob = Character.toString(n);
boolean n = true;
String ob = Boolean.toString(n);
parseXxx( ) :- EVERY NUMERIC CLASS HAS A STATIC METHOD CALLED parseXxx( ). THIS
METHOD IS USED TO ACCESS VALUE FROM AN STRING OBJECT AND STORES INTO A PRIMITIVE
NUMERIC DATA TYPE. HERE xxx MEANS DATA TYPE.
import java.io.PrintStream;
class Six
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
String ob = "10";
int n = Integer.parseInt(ob);
ps.println("String Object Value : " + ob);
ps.println("N Value : " + n);
}
}
String ob = "10";
byte n = Byte.parseByte(ob);
String ob = "10";
short n = Short.parseShort(ob);
String ob = "10";
long n = Long.parseLong(ob);
String ob = "10.25";
float n = Float.parseFloat(ob);
String ob = "10.25";
double n = Double.parseDouble(ob);
String ob = "true";
boolean n = Boolean.parseBoolean(ob);
OOPS (OBJECT ORIENTED PROGRAMMING SYSTEM)
===============================================
ONCE WE CREATE THE SOFTWARE, IT IS DIFFICULT TO WRITE AGAIN & AGAIN THE SOLUTIONS
FOR THE PROBLEM GIVE BY CLIENT. THIS IS MAIN PROBLEM IN PROCEDURAL LANGUAGES LIKE
C, C++. FOR EXAMPLE IF SOFTWARE IS EMPLOYEE PAY ROLE ONLY, CLIENT WILL COME AGAIN
AND AGAIN THAT YOUR SOFTWARE IS NOT CALCULATING PF, BANK REPORTS ETC. SO PROGRAMMER
HAS TO WRITE THE SOLUTIONS AGAIN AND AGAIN FOR PARTICULAR PROBLEM.
IN PROCEDURAL APPROACH, CONCENTRAION IS WHAT IS THE PROBLEM AND HOW TO SOLVE THE
PROBLEM. IT DOES NOT STUDY THE BEHAVIOUR OF THE ENTIRE SYSTEM.
PROCEDURAL APPROACH IS NOT SUITABLE FOR DEVELOPING COMPLEX PROGRAMS WHICH HAS
THOUSANDS OF LINES. BECAUSE PROGRAMMER MAY LOOSE THEIR CONTROL ON THE PROGRAM.
OOPS :- OOPS HELPFUL TO CREATE VERY COMPLEX PROGRAMS. OOPS REFLECT HUMAN LIFE. C++
AND JAVA COME UNDER OOPS. SMALL TALK, SIMULA-67 ARE INSIPIRATION BEHIND JAVA
DEVELOPMENT. BUT THEY ARE OBJECT BASED LANGUAGES, WHERE AS C++ AND JAVA ARE OBJECT
ORIENTED LANGUAGES. C++ IS NOT PURE OOPS. IT IS CALLED PARTIAL OOPS. BECAUSE IT
DOES NOT SUPPORT 100% FEATURES OF OOPS. BUT JAVA IS PURE OOPS. IT SUPPORTS 100%
FEATURES OF OOPS. ANOTHER EXAMPLE FOR PURE OOPS IS SMALL TALK.
FEATURES OF OOPS
==================
OBJECT / CLASS :- OOPS DEVELOPED FROM THE ROOT CONCEPT IS CALLED OBJECT. AN OBJECT
IS SOMETHING THAT IS EXISTING IN THE REAL WORLD. AN OBJECT HAVE PROPERTIES AND
ACTIONS. FOR EXAMPLE IF MAN IS AN OBJECT THEN NAME, COLOR, HEIGHT, WEIGHT ARE
CALLED PROPERTIES AND WALK, EAT, SLEEP ARE CALLED ACTIONS. IN PROGRAMMING LANGAUGES
PROPERTIES ARE CALLED VARIABLES AND ACTIONS ARE CALLED METHODS.
A CLASS IS AN ABSTRACT IDEA, NOT REAL. BUT AN OBJECT IS REAL. CLASS DOES NOT EXIST
PHYSICALLY, BUT OBJECT EXIST PHYSICALLY. AN OBJECT DOES NOT EXIST WITHOUT A CLASS,
BUT A CLASS CAN EXIST WIITHOUT AN OBJECT. CLASS IS ALSO A DATA TYPE. A CLASS IS A
GROUP NAME THAT SPECIFIES PROPERTIES AND ACTIONS OF OBJECT. A CLASS IS A MODEL /
BLUE PRINT FOR CREATING OBJECTS. IN JAVA MEMORY IS ALLOTED TO OBJECTS NOT FOR
CLASSES. A CLASS / AN OBJECT CONTAINS VARIABLES AND METHODS.
ABSTRACTION :- HIDING UNNECESSARY DATA FROM THE USER IS CALLED ABSTRACTION. SOME
DATA IS NOT DISPLAYED TO THE USER. USER HAS NO LIGHT TO SEE IT. FOR EXAMPLE ENGINE
IN THE CAR IS HIDDEN. TO PROVIDE ABSTRACTION, A PROGRAMMER USES KEYWORDS LIKE
PRIVATE, PROTECTED, DEFAULT, PUBLIC ETC.
JAVA IS A COMPLETE OOPS. IN OOPS WE CAN'T DO ANYTHING WITHOUT OBJECT. THE WHOLE
OOPS CONCEPT IS IMPLEMENTED THROUGH OBJECT. OBJECT IS THE VEHICLE TO IMPLEMENT ALL
THE FEATURES OF THE OOPS.
class Student
{
int studNo;
String studName;
double studAge;
void setData( )
{
studNo = 101;
studName = "Rama";
studAge = 17.8;
}
void showData( )
{
System.out.println("Student Number : " + studNo);
System.out.println("Student Name : " + studName);
System.out.println("Student Age : " + studAge);
}
};
class StudentDemo1
{
public static void main(String args[])
{
Student ob = new Student( );
ob.showData( );
ob.setData( );
System.out.println("Student Details");
ob.showData( );
}
}
DATA TYPE DEFAULT VALUE
========== ===============
byte 0
short 0
int 0
long 0
float 0.0
double 0.0
boolean FALSE
ONCE A CLASS IS DEFINED WE CAN CREATE ANY NUMBER OF OBJECTS FROM THAT CLASS.
class Student
{
int studNo;
String studName;
double studAge;
void setData( )
{
studNo = 101;
studName = "Rama";
studAge = 17.8;
}
void showData( )
{
System.out.println("Student Number : " + studNo);
System.out.println("Student Name : " + studName);
System.out.println("Student Age : " + studAge);
}
};
class StudentDemo3
{
public static void main(String args[])
{
Student ob1 = new Student( );
ob1.setData( );
System.out.println("First Student Details");
ob1.showData( );
Student ob2 = new Student( );
ob2.setData( );
System.out.println("Second Student Details");
ob2.showData( );
Student ob3 = new Student( );
ob3.setData( );
System.out.println("Third Student Details");
ob3.showData( );
}
}
THE ABOVE PROGRAM IS LOGICALLY NOT CORRECT, BECAUSE ALL OBJECTS HAVE SAME DATA. THE
SOLUTION FOR ABOVE PROBLEM IS PARAMETERIZED METHODS. A PARAMETERIZED METHOD IS
METHOD WHICH HAVE SOME PARAMETERS.
PARAMETERIZED METHODS
==========================
class Student
{
int studNo;
String studName;
double studAge;
void setData(int pstudNo,String pstudName, double pstudAge)
{
studNo = pstudNo;
studName = pstudName;
studAge = pstudAge;
}
void showData( )
{
System.out.println("Student Number : " + studNo);
System.out.println("Student Name : " + studName);
System.out.println("Student Age : " + studAge);
}
};
class Karishma
{
public static void main(String args[])
{
Student s1 = new Student( );
s1.setData(101,"Swetha",99.9);
s1.showData( );
Student s2 = new Student( );
s2.setData(102,"Pravallika",99.8);
s2.showData( );
Student s3 = new Student( );
s3.setData(103,"Chandana",99.7);
s3.showData( );
}
}
SQUARE OF A NUMBER
=====================
class Square
{
int n;
int s;
void set(int x)
{
n = x;
}
void process( )
{
s = n * n;
}
void show( )
{
System.out.println("Square : " + s);
}
};
class SquareDemo1
{
public static void main(String args[])
{
Square ob = new Square( );
ob.set(6);
ob.process( );
ob.show( );
}
}
class Sum
{
int a;
int b;
int c;
void set(int x, int y)
{
a = x;
b = y;
}
void process( )
{
c = a + b;
}
void show( )
{
System.out.println("Sum : " + c);
}
};
class SumDemo1
{
public static void main(String args[])
{
Sum ob = new Sum( );
ob.set(6,3);
ob.process( );
ob.show( );
}
}
RUNTIME INPUT
===============
import java.io.PrintStream;
import java.util.Scanner;
class Square
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int n;
int s;
void input( )
{
ps.println("Enter Number");
n = sc.nextInt( );
}
void process( )
{
s = n * n;
}
void show( )
{
ps.println("Square : " + s);
}
};
class SquareDemo2
{
public static void main(String args[])
{
Square ob = new Square( );
ob.input( );
ob.process( );
ob.show( );
}
}
RETURNABLE METHODS
======================
import java.io.PrintStream;
import java.util.Scanner;
class Square
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int n;
int s;
void input( )
{
ps.println("Enter Number");
n = sc.nextInt( );
}
int process( )
{
s = n * n;
return s;
}
};
class SquareDemo3
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Square ob = new Square( );
int k;
ob.input( );
k = ob.process( );
ps.println("Square : " + k);
}
}
PRIMITIVE DATA TYPES ARE AUTOMATICALLY PASSED BY VALUE AND OBJECT TYPES ARE
AUTOMATICALLY PASSED BY REFERENCE.
import java.io.PrintStream;
class Sample
{
void change(int x)
{
x = 20;
}
};
class PassByValDemo
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Sample ob = new Sample( );
int n = 10;
ps.println("Before Calling Function, N Value : " + n);
ob.change(n);
ps.println("After Calling Function, N Value : " + n);
}
}
import java.io.PrintStream;
class Sample
{
void change(StringBuffer x)
{
x.reverse( );
}
};
class PassByRefDemo
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Sample ob = new Sample( );
StringBuffer str = new StringBuffer("Rama");
ps.println("Before Calling Function, String : " + str);
ob.change(str);
ps.println("After Calling Function, String : " + str);
}
}
OBJECT ARRAYS
===============
import java.io.PrintStream;
import java.util.Scanner;
class Student
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int sno;
String sname;
int em;
int tm;
int hm;
int mm;
int scm;
int som;
int tot;
double avg;
String res;
void input( )
{
ps.println("Enter Student Number, Name");
sno = sc.nextInt( );
sname = sc.next( );
ps.println("Enter English, Telugu, Hindi Marks");
em = sc.nextInt( );
tm = sc.nextInt( );
hm = sc.nextInt( );
ps.println("Enter Maths, Science, Social Marks");
mm = sc.nextInt( );
scm = sc.nextInt( );
som = sc.nextInt( );
}
void process( )
{
tot = em + tm + hm + mm + scm + som;
avg = tot / 6.0;
if(em >= 35 && tm >= 35 && hm >= 35 && mm >= 35 && scm >= 35 && som >= 35)
{
if(avg >= 80)
{
res = "Distniction";
}
else
if(avg >= 60)
{
res = "First Class";
}
else
if(avg >= 50)
{
res = "Second Class";
}
else
if(avg >= 40)
{
res = "Third Class";
}
else
{
res = "Ordinary Pass";
}
}
else
{
res = "Fail";
}
}
void show( )
{
ps.println("Student Number : " + sno);
ps.println("Student Name : " + sname);
ps.println("Total Marks : " + tot);
ps.printf("Average Marks : %.2f\n",avg);
ps.println("Result : " + res);
}
};
class ObjArysDemo
{
public static void main(String args[])
{
Student ob[ ] = new Student[5];
int i;
for(i = 0; i < ob.length; i++)
{
ob[i] = new Student( );
}
for(i = 0; i < ob.length; i++)
{
ob[i].input( );
}
for(i = 0; i < ob.length; i++)
{
ob[i].process( );
}
for(i = 0; i < ob.length; i++)
{
ob[i].show( );
}
/*
for(i = 0; i < ob.length; i++)
{
ob[i].input( );
ob[i].process( );
ob[i].show( );
}
*/
}
}
POLYMORPHISM
===============
IT IS DERIVED FROM TWO GREEK WORDS CALLED "POLY" AND "MORPHIC". POLY MEANS MANY AND
MORPHIC MEANS FORMS. POLYMORPHISM MEANS ONE METHOD DIFFERENT FORMS OR IF SOMETHING
EXIST IN MANY FORMS. IT MEANS SAME METHOD PERFORMING DIFFERENT TASKS BASED ON
SITUATION. IT MEANS THE ABILITY TO EXIST IN DIFFERENT FORMS. JAVA SUPPORTS TWO
TYPES OF POLYMORPHISM.
1) STATIC POLYMORPHISM
2) DYNAMIC POLYMORPHISM
Ex :- METHOD OVERLOADING
METHOD OVERLOADING
======================
IN 'C' LANGAUGE WE CAN USE UNIQUE NAME FOR METHODS (FUNCTIONS) . IT MEANS WE CAN'T
PUT THE SAME NAME FOR TWO METHODS (FUNCTIONS). METHOD OVERLOADING MEANS WE CAN USE
THE SAME NAME FOR SEVERAL METHODS. IT MEANS WE CAN USE SINGLE METHOD FOR SEVERAL
PURPOSES.
import java.io.PrintStream;
class Sum
{
PrintStream ps = new PrintStream(System.out);
void sum(int x, int y)
{
int k;
k = x + y;
ps.println("Integer Sum : " + k);
}
void sum(long x, long y)
{
long k;
k = x + y;
ps.println("Long Sum : " + k);
}
void sum(float x, float y)
{
float k;
k = x + y;
ps.println("Float Sum : " + k);
}
void sum(double x, double y)
{
double k;
k = x + y;
ps.println("Double Sum : " + k);
}
};
class MethOvrLodDemo1
{
public static void main(String args[])
{
Sum ob = new Sum( );
ob.sum(6,3);
ob.sum(63L,36L);
ob.sum(12.34F,56.78F);
ob.sum(98.76,54.32);
}
}
import java.io.PrintStream;
class Sum
{
PrintStream ps = new PrintStream(System.out);
void sum(int x, int y)
{
int k;
k = x + y;
ps.println("Two Parameters Sum : " + k);
}
void sum(int x, int y, int z)
{
int k;
k = x + y + z;
ps.println("Three Parameters Sum : " + k);
}
void sum(int x, int y, int z, int t)
{
int k;
k = x + y + z + t;
ps.println("Four Parameters Sum : " + k);
}
};
class MethOvrLodDemo2
{
public static void main(String args[])
{
Sum ob = new Sum( );
ob.sum(6,3);
ob.sum(10,20,30);
ob.sum(100,200,300,400);
}
}
CONSTRUCTORS
===============
A CONSTRUCTOR IS ALSO ONE OF THE METHOD OF A CLASS. BUT THE SPECIALITY OF THE
CONSTRUCTOR IS WHICH CONTAINS SAME CLASS NAME. CONSTRUCTORS ARE USED TO INITIALIZE
AN OBJECT. THE TASK OF CONSTRUCTOR IS TO INITIALIZE THE DATA MEMBERS. WE MUST
FOLLOW THE RULES IN CONSTRUCTORS.
TYPES OF CONSTRUCTORS
=======================
2) PARAMETERIZED CONSTRUCTORS
3) DEFAULT CONSTRUCTORS
5) CONSTRUCTOR OVERLOADING
NON-PARAMETERIZED CONSTRUCTORS
==================================
import java.io.PrintStream;
class Student
{
PrintStream ps = new PrintStream(System.out);
int sno;
String sname;
double age;
Student( )
{
sno = 101;
sname = "Rama";
age = 12.6;
}
void show( )
{
ps.println("Student Number : " + sno);
ps.println("Student Name : " + sname);
ps.println("Student Age : " + age);
}
};
class ConsDemo1
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Student ob = new Student( );
ps.println("Student Details");
ob.show( );
}
}
PARAMETERIZED CONSTRUCTORS
================================
import java.io.PrintStream;
class Student
{
PrintStream ps = new PrintStream(System.out);
int sno;
String sname;
double age;
Student(int vsno, String vsname, double vage)
{
sno = vsno;
sname = vsname;
age = vage;
}
void show( )
{
ps.println("Student Number : " + sno);
ps.println("Student Name : " + sname);
ps.println("Student Age : " + age);
}
};
class ConsDemo2
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Student ob1 = new Student(101,"Rama",12.6);
ps.println("First Student Details");
ob1.show( );
Student ob2 = new Student(102,"King",15.3);
ps.println("Second Student Details");
ob2.show( );
Student ob3 = new Student(103,"Siva",6.3);
ps.println("Third Student Details");
ob3.show( );
}
}
DEFAULT CONSTRUCTORS
========================
AN OBJECT ALWAYS CREATES WITH THE HELP OF CONSTRUCTOR. IF YOUR CLASS CAN'T CONTAIN
ANY CONSTRUCTOR, THEN JAVA COMPILER AUTOMATICALLY WRITES AND PLACES A DEFAULT
CONSTRUCTOR IN YOUR CLASS. IF YOUR PROGRAM CONTAINS ANY CONSTRUCTOR, JAVA COMPILER
CAN'T WRITE AND PLACE A DEFAULT CONSTRUCTOR IN YOUR CLASS. THEN IT IS PROGRAMMER'S
RESPONSIBILITY TO WRITE DEFAULT CONSTRUCTOR.
class_name( )
{
}
Ex :-
Student( )
{
}
import java.io.PrintStream;
import java.util.Scanner;
class Student
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int sno;
String sname;
double age;
Student( )
{
}
Student(int vsno, String vsname, double vage)
{
sno = vsno;
sname = vsname;
age = vage;
}
void input( )
{
ps.println("Enter Student Number, Name, Age");
sno = sc.nextInt( );
sname = sc.next( );
age = sc.nextDouble( );
}
void show( )
{
ps.println("Student Number : " + sno);
ps.println("Student Name : " + sname);
ps.println("Student Age : " + age);
}
};
class ConsDemo3
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Student ob1 = new Student(101,"Rama",12.6);
Student ob2 = new Student( );
ob2.input( );
ps.println("First Student Details");
ob1.show( );
ps.println("Second Student Details");
ob2.show( );
}
}
import java.io.PrintStream;
import java.util.Scanner;
class Student
{
PrintStream ps = new PrintStream(System.out);
int sno;
String sname;
double age;
Student(int vsno, String vsname, double vage)
{
sno = vsno;
sname = vsname;
age = vage;
}
void show( )
{
ps.println("Student Number : " + sno);
ps.println("Student Name : " + sname);
ps.println("Student Age : " + age);
}
};
class ConsDemo4
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int xsno;
String xsname;
double xage;
ps.println("Enter Student Number, Name, Age");
xsno = sc.nextInt( );
xsname = sc.next( );
xage = sc.nextDouble( );
Student ob = new Student(xsno,xsname,xage);
ob.show( );
}
}
CONSTRUCTOR OVERLOADING
============================
LIKE METHODS, WE CAN ALSO OVERLOAD CONSTRUCTORS. THE MAIN ADVANTAGE OF OVERLOADING
CONSTRUCTORS IS WE CAN CREATE VARIETY OF OBJECTS. IT MEANS FLEXIBLE OBJECTS.
THROUGH CONSTRUCTOR OVERLOADING, USER CAN CREATE OBJECTS AS PER HIS REQUIREMENTS.
import java.io.PrintStream;
import java.util.Scanner;
class Student
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int sno;
String sname;
String addr;
Student( )
{
}
Student(int vsno)
{
sno = vsno;
sname = "Smith";
addr = "Tenali";
}
Student(int vsno, String vsname)
{
sno = vsno;
sname = vsname;
addr = "Guntur";
}
Student(int vsno, String vsname, String vaddr)
{
sno = vsno;
sname = vsname;
addr = vaddr;
}
void input( )
{
ps.println("Enter Student Number, Name, Address");
sno = sc.nextInt( );
sname = sc.next( );
addr = sc.next( );
}
void show( )
{
ps.println("Student Number : " + sno);
ps.println("Student Name : " + sname);
ps.println("Student Address : " + addr);
}
};
class ConsDemo5
{
public static void main(String args[])
{
Student ob1 = new Student( );
ob1.input( );
ob1.show( );
Student ob2 = new Student(101);
ob2.show( );
Student ob3 = new Student(102,"Tata");
ob3.show( );
Student ob4 = new Student(103,"King","Chennai");
ob4.show( );
}
}
THIS KEYWORD
==============
import java.io.PrintStream;
class Student
{
PrintStream ps = new PrintStream(System.out);
int sno;
String sname;
double age;
Student(int sno, String sname, double age)
{
this.sno = sno;
this.sname = sname;
this.age = age;
}
void show( )
{
ps.println("Student Number : " + sno);
ps.println("Student Name : " + sname);
ps.println("Student Age : " + age);
}
};
class ThisDemo1
{
public static void main(String args[])
{
Student ob = new Student(101,"Rama",12.6);
ob.show( );
}
}
import java.io.PrintStream;
class Employee
{
PrintStream ps = new PrintStream(System.out);
int empNo;
String empName;
double sal;
void set(int vempNo, String vempName, double vsal)
{
empNo = vempNo;
empName = vempName;
sal = vsal;
}
Employee incrSal( )
{
sal = sal + sal * 0.1;
return this;
}
void show( )
{
ps.println("Employee Number : " + empNo);
ps.println("Employee Name : " + empName);
ps.println("Employee Salary : " + sal);
}
};
class ThisDemo2
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Employee ob = new Employee( );
ob.set(101,"Rama",2500);
ps.println("Before Incrementing, Employee Details");
ob.show( );
ob = ob.incrSal( );
ps.println("After Incrementing, Employee Details");
ob.show( );
}
}
TYPES OF VARIABLES
====================
JAVA PROVIDES A SPECIAL KEYWORD STATIC. USING THIS KEYWORD, WE CAN DEFINE STATIC
DATA MEMBERS, STATIC METHODS AND STATIC BLOCKS.
THE SPECIALITY OF STATIC DATA MEMBERS IS, IT CAN'T CREATED IN THE OBJECT, IT
CREATED IN CLASS. SO, IT CAN BE USED BY EACH AND EVERY OBJECT CREATED FROM THAT
CLASS. IT MEANS ALL OBJECTS CREATED FROM THAT CLASS CAN SHARE THESE DATA MEMBERS.
THROUGH STATIC DATA MEMBERS, WE CAN SAVE MEMORY AND PROVIDE COMMON DATA (EX :-
COLLEGE NAME, BATCH CODE) TO ALL OBJECTS. WE CAN ALSO REDUCE INVALID ENTRY RISK.
A STATIC VARIABLE IS A VARIABLE WHOSE SINGLE COPY IS SHARED BY ALL THE OBJECTS OF
THE CLASS. ONLY ONE COPY OF THAT VARIABLE IN MEMORY AND IT IS SHARED BY ALL OBJECTS
OF CLASS IS CALLED STATIC VARIABLE.
import java.io.PrintStream;
import java.util.Scanner;
class Student
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int sno;
String sname;
double age;
static String cname = "VSR";
void input( )
{
ps.println("Enter Student Number, Name, Age");
sno = sc.nextInt( );
sname = sc.next( );
age = sc.nextDouble( );
}
void show( )
{
ps.println("Student Number : " + sno);
ps.println("Student Name : " + sname);
ps.println("Student Age : " + age);
ps.println("College Name : " + cname);
}
};
class StatDemo1
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Student ob1 = new Student( );
Student ob2 = new Student( );
Student ob3 = new Student( );
ob1.input( );
ob2.input( );
ob3.input( );
ob1.show( );
ob2.show( );
ob3.show( );
}
}
import java.io.PrintStream;
import java.util.Scanner;
class Student
{
PrintStream ps = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
static int sno;
String sname;
double age;
Student( )
{
sno++;
}
void input( )
{
ps.println("Enter Student Name, Age");
sname = sc.next( );
age = sc.nextDouble( );
}
void show( )
{
ps.println("Student Number : " + sno);
ps.println("Student Name : " + sname);
ps.println("Student Age : " + age);
}
};
class StatDemo2
{
public static void main(String args[])
{
Student ob1 = new Student( );
ob1.input( );
ob1.show( );
Student ob2 = new Student( );
ob2.input( );
ob2.show( );
Student ob3 = new Student( );
ob3.input( );
ob3.show( );
}
}
TYPES OF METHODS
===================
A) ACCESSOR METHODS
B) MUTATOR METHODS
2) STATIC METHODS
3) FACTORY METHODS
INSTANCE METHODS :- THESE METHODS ACT UPON INSTANCE VARIABLES OF A CLASS. THE
VARIABLES WHICH WILL PRESENT IN OBJECTS.
ACCESSOR METHODS :- THESE ARE THE METHODS WHICH ACCESS THE INSTANCE VARIABLES.
MUTATOR METHODS :- THESE ARE THE METHODS WHICH NOT ONLY ACCESS THE INSTANCE
VARIABLES AND ALSO MODIFY THEM.
GENERALLY IF WE WANT TO CALL A METHOD, FIRST WE MUST CREATE AN OBJECT FROM THAT
CLASS. WITHOUT CREATING AN OBJECT, WE CAN'T CALL THE METHOD OF A CLASS. IT THE
METHOD IS STATIC METHOD, THEN WE ARE ABLE TO CALL THAT METHOD, WITHOUT CREATING AN
OBJECT.
static METHOD :- THESE METHODS ACT UPON STATIC VARIABLES OF A CLASS. THESE METHODS
HANDLES ONLY STATIC DATA MEMBERS. NON-STATIC METHODS ARE OBJECT LEVEL METHODS AND
STATIC METHODS ARE CLASS LEVEL METHODS.
import java.io.PrintStream;
class Sample
{
static void show( )
{
System.out.println("Welcome to Static Methods");
}
};
class StatDemo3
{
public static void main(String args[])
{
Sample.show( );
}
}
import java.io.PrintStream;
class Sample
{
static void show1( )
{
System.out.println("Static Method");
}
void show2( )
{
System.out.println("Non Static Method");
}
};
class StatDemo4
{
public static void main(String args[])
{
Sample.show1( );
Sample ob = new Sample( );
ob.show2( );
ob.show1( );
}
}
import java.io.PrintStream;
class Square
{
static int n;
static int s;
static void set(int x)
{
n = x;
}
static void process( )
{
s = n * n;
}
static void show( )
{
System.out.println("Square : " + s);
}
};
class StatDemo5
{
public static void main(String args[])
{
Square.set(6);
Square.process( );
Square.show( );
}
}
STATIC BLOCKS
==============
A STATIC BLOCK IS A BLOCK WHICH IS PREFIXED WITH THE KEYWORD "static". THE
SPECIALITY OF STATIC BLOCK IT EXECUTES BEFORE THE MAIN( ).
class StatDemo6
{
static
{
System.out.println("Static Block");
}
public static void main(String args[])
{
System.out.println("Static Method");
}
}
2) STATIC METHOD
3) STATIC BLOCK
2) STATIC BLOCK
3) STATIC METHOD
class StatDemo7
{
static int a = 10;
static
{
System.out.println("A Value : " + a);
a = 20;
}
public static void main(String args[])
{
System.out.println("A Value : " + a);
}
}
A CLASS WITHIN ANOTHER CLASS IS CALLED INNER CLASS. GENERALLY IF WE WRITE A CLASS,
OTHER PROGRAMMER CAN CREATE OBJECT TO OUR CLASS. HE CAN USE OUR CLASS. SO THERE IS
NO SECURITY.
SECURITY :- RESTRICTING THE ACCESS. THAT IS ONLY SOME POPELE MAY ACCESS.
GENERALLY SECURITY FOR INSTANCE VARIABLES IS PROVIDED THROUGH PRIVATE KEYWORD. BUT
PRIVATE KEYWORD CAN'T BE USED BEFORE A CLASS. BUT WE CAN USE PRIVATE KEYWORD ONLY
FOR INNER CLASS. THAT IS OTHER PROGRAMMER CAN'T CREATE AN OBJECT TO THE INNER
CLASS. BUT WE CAN CREATE AN OBJECT TO THE CLASS AND USE IT.
INNER CLASS IS A SAFETY MECHANISM, WE CAN'T CREATE AN OBJECT FOR INNER CLASS IN ANY
OTHER CLASS, BUT ONLY IN OUTER CLASS. THE OBJECTS OF OUTER AND INNER CLASSES WILL
BE CREATED SEPERATELY IN MEMORY. INNER CLASS CAN ACCESS THE MEMBERS OF OUTER CLASS.
THE OBJECT OF INNER CLASS CONTAINS ANOTHER INVISIBLE FIELD CALLED "this$0" WHICH
CONTAINS THE HASHCODE OF OUTER CLASS OBJECT. AN OBJECT OF INNER CLASS CONTAINS
INVISIBLE FIELD "this$0" THAT REFERES THE OUTER CLASS OBJECT.
THE INNER CLASS DATA MEMBERS CAN BE REFERENCED AS
THIS.MEMBER;
OUTERCLASS.THIS.MEMBER;
class Sample
{
void show( )
{
System.out.println("Outer Class");
Simple v = new Simple( );
v.display( );
}
private class Simple
{
void display( )
{
System.out.println("Inner Class");
}
};
};
class InnerDemo1
{
public static void main(String args[])
{
Sample k = new Sample( );
k.show( );
}
}
INHERITANCE
=============
TYPES OF INHERITANCE
======================
1) SINGLE INHERITANCE
3) HIERARCHICAL INHERITANCE
4) MULTIPLE INHERITANCE
5) MULTI PATH INHERITANCE
6) HYBRID INHERITANCE
JAVA'S RULE IS THAT A CLASS CAN HAVE ONLY ONE SUPER CLASS. SO JAVA DOES NOT SUPPORT
MULTIPLE, MULTI PATH AND HYBRID INHERITANCES DIRECTLY. BUT SUPPORTS INDIRECTLY IN
THE FORM OF INTERFACES. AN INTERFACE IS SIMILAR TO CLASS BUT MINOR DIFFERENCES.
SINGLE INHERITANCE
====================
import java.io.PrintStream;
class One
{
PrintStream ps = new PrintStream(System.out);
void show1( )
{
ps.println("show1 method called from class One");
}
};
class Two extends One
{
void show2( )
{
ps.println("show2 method called from class Two");
}
};
class InhDemo1
{
public static void main(String args[])
{
Two ob = new Two( );
ob.show1( );
ob.show2( );
}
}
METHOD OVERRIDING :- WRITING TWO OR MORE METHODS WITH SAME NAME AND SAME SIGNATURE
IS CALLED METHOD OVERRIDING. THE SUB CLASS METHOD OVERRIDES THE SUPER CLASS METHOD.
super KEYWORD :- IT IS USED TO ACCESS SUPER CLASS METHODS & DATA MEMBERS.
import java.io.PrintStream;
class One
{
PrintStream ps = new PrintStream(System.out);
void show( )
{
ps.println("show method called from class One");
}
};
class Two extends One
{
void show( )
{
super.show( );
ps.println("show method called from class Two");
}
};
class InhDemo2
{
public static void main(String args[])
{
Two ob = new Two( );
ob.show( );
}
}
MULTILEVEL INHERITANCE
==========================
import java.io.PrintStream;
class One
{
PrintStream ps = new PrintStream(System.out);
void show( )
{
ps.println("show method called from class One");
}
};
class Two extends One
{
void show( )
{
super.show( );
ps.println("show method called from class Two");
}
};
class Three extends Two
{
void show( )
{
super.show( );
ps.println("show method called from class Three");
}
};
class Four extends Three
{
void show( )
{
super.show( );
ps.println("show method called from class Four");
}
};
class InhDemo3
{
public static void main(String args[])
{
Four ob = new Four( );
ob.show( );
}
}
IN THE ABOVE PROGRAM CLASS THREE IS THE DIRECT SUPER CLASS TO CLASS FOUR AND CLASS
TWO, ONE ARE THE INDIRECT SUPER CLASSES TO CLASS FOUR.
IN THE ABOVE PROGRAM CLASS FOUR IS THE DIRECT SUB CLASS TO CLASS THREE AND INDIRECT
SUB CLASS TO CLASS TWO AND CLASS ONE.
HIERARCHICAL INHERITANCE
============================
THIS TYPE OF INHERITANCE IS SIMILAR TO A TREE. IN THIS MODEL EACH SUPER CLASS HAS
MINIMUM TWO SUB CLASSES. GENERALLY IN THIS MODEL OBJECTS ARE CREATED FROM LEAF NODE
(LAST SUB) CLASSES.
import java.io.PrintStream;
class One
{
PrintStream ps = new PrintStream(System.out);
void show( )
{
ps.println("show method called from class One");
}
};
class Two extends One
{
void show( )
{
super.show( );
ps.println("show method called from class Two");
}
};
class Three extends One
{
void show( )
{
super.show( );
ps.println("show method called from class Three");
}
};
class Four extends Two
{
void show( )
{
super.show( );
ps.println("show method called from class Four");
}
};
class Five extends Two
{
void show( )
{
super.show( );
ps.println("show method called from class Five");
}
};
class Six extends Three
{
void show( )
{
super.show( );
ps.println("show method called from class Six");
}
};
class Seven extends Three
{
void show( )
{
super.show( );
ps.println("show method called from class Seven");
}
};
class InhDemo4
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
Four ob1 = new Four( );
Five ob2 = new Five( );
Six ob3 = new Six( );
Seven ob4 = new Seven( );
ps.println("Class Four Methods");
ob1.show( );
ps.println("Class Five Methods");
ob2.show( );
ps.println("Class Six Methods");
ob3.show( );
ps.println("Class Seven Methods");
ob4.show( );
}
}
SUPER KEYWORD
===============
import java.io.PrintStream;
class One
{
PrintStream ps = new PrintStream(System.out);
void show( )
{
ps.println("show method called from class One");
}
};
class Two extends One
{
void show( )
{
super.show( );
ps.println("show method called from class Two");
}
};
class SuperDemo1
{
public static void main(String args[])
{
Two ob = new Two( );
ob.show( );
}
}
import java.io.PrintStream;
class One
{
int a;
};
class Two extends One
{
int a;
void set(int x,int y)
{
super.a = x;
a = y;
}
void show( )
{
PrintStream ps = new PrintStream(System.out);
ps.println("Super Class A Value : " + super.a);
ps.println("Sub Class A Value : " + a);
}
};
class SuperDemo2
{
public static void main(String args[])
{
Two ob = new Two( );
ob.set(6,3);
ob.show( );
}
}
class One
{
One( )
{
System.out.println("Class One Constructor");
}
};
class Two extends One
{
Two( )
{
System.out.println("Class Two Constructor");
}
};
class Three extends Two
{
Three( )
{
System.out.println("Class Three Constructor");
}
};
class SuperDemo3
{
public static void main(String args[])
{
Three ob = new Three( );
}
}
import java.io.PrintStream;
class One
{
PrintStream ps = new PrintStream(System.out);
int a;
int b;
One(int x,int y)
{
a = x;
b = y;
}
void show( )
{
ps.println("A Value : " + a);
ps.println("B Value : " + b);
}
};
class Two extends One
{
PrintStream ps = new PrintStream(System.out);
int c;
int d;
Two(int x,int y,int m,int n)
{
super(x,y);
c = m;
d = n;
}
void show( )
{
super.show( );
ps.println("C Value : " + c);
ps.println("D Value : " + d);
}
};
class SuperDemo4
{
public static void main(String args[])
{
Two ob = new Two(10,20,30,40);
ob.show( );
}
}
FINAL KEYWORD
==============
final KEYWORD HAS THREE FORMS. final KEYWORD CAN BE USED TO DECLARE
FINAL VARIABLES
================
class FinalDemo1
{
public static void main(String args[ ])
{
final int a = 10;
System.out.println("A Value : " + a);
a = 20; // error
System.out.println("A Value : " + a);
}
}
FINAL METHODS
===============
class One
{
final void show( )
{
System.out.println("Show Method Called From Class One");
}
};
class Two extends One
{
void show( ) // error
{
super.show( );
System.out.println("Show Method Called From Class Two");
}
};
class FinalDemo2
{
public static void main(String args[])
{
Two ob = new Two( );
ob.show( );
}
}
FINAL CLASSES
==============
DYNAMIC POLYMORPHISM
=======================
CONCRETE METHOD :- IT IS A METHOD WITH BODY. WHEN ALL OBJECTS WANT TO PERFORM SAME
TASK, WE SHOULD WRITE A CONCRETE METHOD IN THE CLASS.
ABSTRACT METHOD :- IT IS A METHOD WITHOUT BODY. WHEN THE SAME METHOD SHOULD BE
IMPLEMENTED DIFFERENTLY FOR DIFFERENT OBJECTS. THEN WE SHOULD WRITE IT AS AN
ABSTRACT METHOD.
AN ABSTRACT METHOD IS A METHOD, WHICH HAVE NO BODY. SUB CLASS MUST OVERRIDE
ABSTRACT METHOD. IF A CLASS CONTAINS ATLEAST ONE ABSTRACT METHOD, THEN THE CLASS
MUST BE DECLARED AS ABSTRACT CLASS. WE CAN'T CREATE OBJECT FROM THE ABSTRACT CLASS.
BUT WE CAN CREATE REFERENCE FROM THE ABSTRACT CLASS.
AN ABSTRACT CLASS MAY HAVE INSTANCE VARIABLES AND CONCRETE METHODS IN ADDITION TO
ABSTRACT METHODS.
WE CAN USE THE SAME METHOD CALL, TO EXEUCTE METHODS FROM DIFFERENT CLASSES.
INTERFACES
===========
interface Sample
{
void show( );
};
class One implements Sample
{
public void show( )
{
System.out.println("Show Method Called From Class One");
}
};
class IntfaceDemo1
{
public static void main(String args[])
{
One OneOb = new One( );
OneOb.show( );
}
}
interface Sample
{
void show( );
};
class One implements Sample
{
public void show( )
{
System.out.println("Show Method Called From Class One");
}
};
class Two implements Sample
{
public void show( )
{
System.out.println("Show Method Called From Class Two");
}
};
class Three implements Sample
{
public void show( )
{
System.out.println("Show Method Called From Class Three");
}
};
class IntfaceDemo2
{
public static void main(String args[])
{
One OneOb = new One( );
OneOb.show( );
Two TwoOb = new Two( );
TwoOb.show( );
Three ThreeOb = new Three( );
ThreeOb.show( );
}
}
interface Sample
{
void show( );
};
class One implements Sample
{
public void show( )
{
System.out.println("Show Method Called From Class One");
}
void display( )
{
System.out.println("Display Method Called From Class One");
}
};
class IntfaceDemo3
{
public static void main(String args[])
{
One OneOb = new One( );
OneOb.show( );
OneOb.display( );
}
}
interface Sample
{
final int a = 10;
static final int b = 20;
};
class One implements Sample
{
void show( )
{
System.out.println("A Value : " +a);
System.out.println("B Value : " + Sample.b);
}
};
class IntfaceDemo4
{
public static void main(String args[])
{
One OneOb = new One( );
OneOb.show( );
}
}
interface One
{
void show( );
};
class Two implements One
{
public void show( )
{
System.out.println("Show Method Called From Class Two");
}
};
class Three implements One
{
public void show( )
{
System.out.println("Show Method Called From Class Three");
}
};
class Four implements One
{
public void show( )
{
System.out.println("Show Method Called From Class Four");
}
};
class Five implements One
{
public void show( )
{
System.out.println("Show Method Called From Class Five");
}
};
class Gopi
{
public static void main(String args[])
{
One ref;
Two ob2 = new Two( );
Three ob3 = new Three( );
Four ob4 = new Four( );
Five ob5 = new Five( );
ref = ob5;
ref.show( );
ref = ob2;
ref.show( );
ref = ob4;
ref.show( );
ref = ob3;
ref.show( );
}
}
INTERFACE INHERITANCE
=======================
interface One
{
void show1( );
};
interface Two extends One
{
void show2( );
};
class Three implements Two
{
public void show1( )
{
System.out.println("Show1 Method Called From Class Three");
}
public void show2( )
{
System.out.println("Show2 Method Called From Class Three");
}
};
class IntfaceDemo6
{
public static void main(String args[])
{
Three t = new Three( );
t.show1( );
t.show2( );
}
}
MULTIPLE INHERITANCE
======================
interface One
{
void show1( );
};
interface Two
{
void show2( );
};
class Three implements One, Two
{
public void show1( )
{
System.out.println("Show1 Method Called From Class Three");
}
public void show2( )
{
System.out.println("Show2 Method Called From Class Three");
}
};
class IntfaceDemo7
{
public static void main(String args[])
{
Three t = new Three( );
t.show1( );
t.show2( );
}
}
A SUB CLASS CAN HAVE ONLY ONE SUPER CLASS AND ANY NUMBER OF INTERFACES. IN THIS
SITUTATION, WE MUST FIRST EXTEND SUPER CLASS AND THEN IMPLEMENTS INTERFACES.
class One
{
void show1( )
{
System.out.println("Show1 Method Called From Class One");
}
};
interface Two
{
void show2( );
};
class Three extends One implements Two
{
public void show2( )
{
System.out.println("Show2 Method Called From Class Three");
}
};
class IntfaceDemo8
{
public static void main(String args[])
{
Three t = new Three( );
t.show1( );
t.show2( );
}
}
HYBRID INHERITANCE
====================
class One
{
void show( )
{
System.out.println("show( ) method called from class One");
}
};
class Two extends One
{
void show( )
{
super.show( );
System.out.println("show( ) method called from class Two");
}
};
interface Three
{
void show( );
};
class Four extends Two implements Three
{
public void show( )
{
super.show( );
System.out.println("show( ) method called from class Four");
}
};
class IntfaceDemo9
{
public static void main(String args[ ])
{
Four f = new Four( );
f.show( );
}
}
EXCEPTION HANDLING
=====================
TYPES OF ERRORS
=================
1) SYNTAX ERRORS
2) LOGICAL ERRORS
3) RUNTIME ERRORS
RUNTIME ERRORS / EXCEPTIONS :- THESE ARE ALSO CALLED AS EXCEPTIONS. THESE ARE VERY
DANGEROUS ERRORS. WHEN AN EXCEPTION IS ENCOUNTERED, IT WILL EFFECT ON ENTIRE
PROJECT. THESE RUNTIME ERRORS ARE MANAGED BY EXCEPTION HANDLING TECHNIQUE.
Object
Throwable
Error Exception
TYPES OF EXCEPTIONS
====================
1) CHECKED EXCEPTIONS
2) UNCHECKED EXCEPTIONS
Exception IS THE SUPER CLASS OF ALL THE EXCEPTIONS. Throwable IS A CLASS THAT
REPRESENTS ALL ERRORS AND EXCEPTIONS. IT MEANS IT IS THE SUPER OF Exception AND
Error CLASS.
TYPES OF EXCEPTIONS
====================
1) BUILT-IN EXCEPTIONS
BUILT-IN EXCEPTIONS
===================
1) ArithmeticException
2) ArrayIndexOutOfBoundsException
3) StringIndexOutOfBoundsException
4) NumberFormatException
5) IOException
6) FileNotFoundException
7) ClassNotFoundException
8) NoSuchMethodException
9) InterruptedException
10) NullPointerException
11) RuntimeException
12) ArrayStoreException
13) Exception
import java.io.PrintStream;
class Excep1
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a,b,c;
ps.println("Module 1");
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);
c = a / b;
ps.println("Quotient : " + c);
ps.println("Module 3");
}
}
import java.io.PrintStream;
class Excep2
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a,b,c;
ps.println("Module 1");
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);
try
{
c = a / b;
ps.println("Quotient : " + c);
}
catch(ArithmeticException ob)
{
ob.printStackTrace( );
ps.println(ob);
ps.println(ob.getMessage( ));
ps.println("Second value not be zero");
}
ps.println("Module 3");
}
}
import java.io.PrintStream;
class Excep3
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a,b,c;
ps.println("Module 1");
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);
try
{
c = a / b;
ps.println("Quotient : " + c);
}
catch(ArithmeticException ob)
{
}
ps.println("Module 3");
}
}
import java.io.PrintStream;
class Excep4
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a,b,c;
ps.println("Module 1");
try
{
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);
c = a / b;
ps.println("Quotient : " + c);
}
catch(ArrayIndexOutOfBoundsException ob)
{
ps.println("Please enter 2 numbers");
}
ps.println("Module 3");
}
}
import java.io.PrintStream;
class Excep5
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a,b,c;
ps.println("Module 1");
try
{
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);
c = a / b;
ps.println("Quotient : " + c);
}
catch(NumberFormatException ob)
{
ps.println("Please enter 2 integers");
}
ps.println("Module 3");
}
}
import java.io.PrintStream;
class Excep6
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a,b,c;
ps.println("Module 1");
try
{
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);
c = a / b;
ps.println("Quotient : " + c);
}
catch(ArrayIndexOutOfBoundsException ob)
{
ps.println("Please enter 2 numbers");
}
catch(NumberFormatException ob)
{
ps.println("Please enter 2 integers");
}
catch(ArithmeticException ob)
{
ps.println("Second value not be zero");
}
catch(Exception ob)
{
ps.println("Some error occured");
}
ps.println("Module 3");
}
}
Exception CLASS OBJECT'S CATCH BLOCK MUST WRITE AS LAST CATCH BLOCK.
import java.io.PrintStream;
class Excep7
{
public static void main(String args[])
{
PrintStream ps = new PrintStream(System.out);
int a,b,c;
ps.println("Module 1");
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);
try
{
c = a / b;
ps.println("Quotient : " + c);
}
catch(ArithmeticException ob)
{
ps.println("Second value not be zero");
}
finally
{
ps.println("Module 3");
}
}
}
import java.io.PrintStream;
import java.io.IOException;
class Excep8
{
public static void main(String args[ ]) throws IOException
{
PrintStream ps = new PrintStream(System.out);
char x;
ps.println("Enter Character");
x = (char) System.in.read( );
ps.print("Character : " + x);
}
}
THROW CLAUSE :- THIS STATEMENT IS USEFUL TO THROW AN EXCEPTION OBJECT AND ALSO
HANDLE IT. IT IS USEDFUL TO CREATE USER-DEFINED EXCEPTIONS AND HANDLE THEM.
import java.io.PrintStream;
class InvalidMarks extends Exception
{
InvalidMarks(String k)
{
System.out.println(k);
}
};
class Excep9
{
public static void main(String args[ ])
{
PrintStream ps = new PrintStream(System.out);
int m;
m = Integer.parseInt(args[0]);
try
{
if(m > 100)
{
throw new InvalidMarks("Invalid Entry");
}
}
catch(InvalidMarks ob)
{
ps.println("Please enter between 0-100");
}
ps.print("Marks : " + m);
}
}
import java.util.Scanner;
class InvalidMarks extends Exception
{
};
class Gopi
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
int m;
System.out.println("Enter Marks");
m = sc.nextInt( );
try
{
if(m > 100)
{
InvalidMarks ob = new InvalidMarks( );
throw ob;
}
System.out.println("Marks : " + m);
}
catch(InvalidMarks ex)
{
System.out.println("Invalid Marks, Please Enter Marks Between 0 - 100");
}
}
}
PACKAGES
==========
A PACKAGE IS A SUB DIRECTORY THAT STORES A GROUP OF CLASSES AND INTERFACES. PACKAGE
MEANS SET OF CLASSES AND INTERFACES. PACKAGE MEANS SIMPLY A FOLDER.
ADVANTAGES OF PACKAGES
=========================
3) THE CLASSES OF ONE PACKAGE ARE ISOLATED FROM THE CLASSES OF ANOTHER PACKAGE. SO,
SAME NAMES CAN BE USED IN TWO DIFFERENT PACKAGES.
4) USING PACKAGE CONCEPT WE CAN ALSO CREATE OUR OWN PACKAGES AND EXTEND ALREADY
AVAILABLE PACKAGES.
package amar;
public class SampleMsg
{
public void show( )
{
System.out.println("Show Method Called From SampleMsg Class Of amar Package");
}
}
javac -d . SampleMsg.java
. : CURRENT DIRECTORY.
import amar.SampleMsg;
class UseSampleMsg
{
public static void main(String args[ ])
{
SampleMsg ob = new SampleMsg( );
ob.show();
}
}
import amar.SampleMsg;
class UseSampleMsg1
{
public static void main(String args[ ])
{
SampleMsg ob = new SampleMsg( );
ob.show();
}
}
import amar.*;
class UseSampleMsg1
{
public static void main(String args[ ])
{
SampleMsg ob = new SampleMsg( );
ob.show();
}
}
WHEN WE WRITE import amar.*; WE MUST COPY SampleMsg.java INTO amar FODLER / ANY
OTHER FOLDER.
SUB PACKAGES
==============
package one.two.three;
public class SimpleMsg
{
public void show( )
{
System.out.println("Show Method Called From SimpleMsg Class Of one.two.three
Package");
}
}
javac -d . SimpleMsg.java
import one.two.three.SimpleMsg;
class UseSimpleMsg
{
public static void main(String args[ ])
{
SimpleMsg ob = new SimpleMsg( );
ob.show();
}
}
protected : INSIDE THE PACAKGE. PACKAGE LEVEL + ANOTHER PACKAGE SUB CLASS.
MULTI THREADING
=================
1) SINGLE TASKING
2) MULTI TASKING
SINGLE TASKING :- EXECUTING ONLY ONE TASK AT A TIME BY THE MIRCO PROCESSOR. MUCH OF
THE PROCESSOR TIME IS WASTED IN SINGLE TASKING.
MULTI TASKING :- EXECUTING MULTIPLE TASKS AT A TIME BY THE MIRCO PROCESSOR. MUCH OF
THE PROCESSOR TIME IS SAVED IN MUTLI TASKING. ADVANTAGE OF USING MUTLI TASKING IS
HERE PROCESSOR TIME IS NOT WASTED. THE PROCESSOR TIME IS UTILIZED IN OPTIMUM
(BETTER) WAY.
ROUND ROBIN :- EXECUTING THE FIRST TASK AFTER THE LAST TASK IN CYCLIC MANNER IS
CALLED ROUND ROBIN METHOD.
PROCESS BASED MULTI TASKING :- IN THIS MODEL MULTIPLE PROCESSES / PROGRAMS ARE
EXECUTED BY THE PROCESSOR AT A TIME.
THREAD BASED MULTI TASKING :- IN THIS MODEL SEVERAL PARTS (METHODS) OF THE SAME
PROGRAM ARE EXECUTED BY THE PROCESSOR AT A TIME USING THREADS.
USES OF THREADS
================
1) THREADS ARE USED IN SERVER SIDE PROGRAMS TO PROVIDE SERVICES TO SEVERAL CLIENTS
AT A TIME.
2) THREADS ARE USED IN ANIMATIONS AND GAMES.
1) MUTLI TASKING
2) MUTLI PROGRAMMING
3) MUTLI THREADING
1) THREAD GROUP
2) THREAD NAME
3) THREAD PRIORITY
a) MIN_PRIORITY (1)
c) MAX_PRIORITY (10)
run( ) METHOD IS THE HEART AND SOUL OF THREAD CLASS. THE CODE WILL BE PLACED INSIDE
THE run( ) METHOD. WHEN WE CALL start( ) METHOD OF THREAD OBJECT, THEN IT CALLS
run( ) METHOD OF THREAD CLASS. main( ) THREAD IS THE DEFAULT THREAD THAT EXECUTES
THE STATEMENTS IN A JAVA PROGRAM.
import java.io.PrintStream;
class ThreadDemo1
{
public static void main(String args[ ])
{
PrintStream ps = new PrintStream(System.out);
Thread ob = Thread.currentThread( );
ps.println("Main thread details");
System.out.println(ob);
ps.println("Thread Group : " + ob.getThreadGroup( ) );
ps.println("Thread Name : " + ob.getName( ) );
ps.println("Thread Priority : " + ob.getPriority( ) );
ob.setName("Sample");
ob.setPriority(10);
ps.println("Thread Name : " + ob.getName( ) );
ps.println("Thread Priority : " + ob.getPriority( ) );
}
}
sleep( ) :- THIS METHOD IS USED TO PAUSE A THREAD AT PARTICULAR TIME. THIS METHOD
THROWS InterruptedException.
SYNCHRONIZATION (LOCKING)
===========================
synchronization :- WHEN A THREAD ACTS ON AN OBJECT, ANY OTHER THREADS ARE NOT
ALLOWED TO ACT UPON THE SAME OBJECT SIMULTENOUSLY. THE OBJECT ON WHICH THE THREADS
ARE SYNCHRONIZED IS CALLED MUTEX (MUTUALLY EXCLUSIVE LOCK).
TYPES OF SYNCHRONIZATION
==========================
1) BLOCK SYNCHRONIZATION
2) THREAD SYNCHRONIZATION
DEADLOCK :- WHEN A THREAD WANTS TO ACT UPON AN OBJECT WHICH IS LOCKED BY ANOTHER
THREAD, AND THE SECOND THREAD WANTS TO ACT UPON THE OBEJCT WHICH IS ALREADY LOCKED
BY FIRST THREAD, BOTH THE THREADS WILL CONTINUE IN WAITING STATE FOREVER. WHEN
DEADLOCK OCCURS FURTHER PROCESSING OF THE PROGRAM IS HALTED. THERE IS NO SOLUTION
FOR DEADLOCK. THE PROGRAMMER SHOULD DESIGN THE LOGIC IN SUCH A WAY THAT IT WILL NOT
INVOLVE THE DEADLOCK.
class Tata
{
synchronized static void show(String str)
{
System.out.print("\n(" + str);
try
{
Thread.sleep(1000);
}
catch(InterruptedException ie)
{
}
System.out.print(")");
}
};
class Sample implements Runnable
{
Thread t;
String st;
Sample(String k)
{
st = k;
t = new Thread(this);
t.start( );
}
public void run( )
{
Tata.show(st);
}
};
class ThreadDemo13
{
public static void main(String args[ ])
{
Sample ob1 = new Sample("This is India");
Sample ob2 = new Sample("I am Indian");
Sample ob3 = new Sample("I love my India");
}
}
FILES
=====
FILES ARE USED TO STORE DATA PERMANENTLY. A FILE IS A ORGANIZED COLLECTION OF DATA
AND STORE PERMANENTLY IN THE HARD DISK OR FLOPPY DISK OR COMPACT DISK.
ADVANTAGES OF FILES
====================
2) FileInputStream / FileReader
BOTH ABOVE STREAMS ARE AVAILABLE IN "java.io" PACKAGE. BOTH ABOVE STREAMS THROW
FileNotFoundException.
import java.io.*;
class File1
{
public static void main(String args[]) throws FileNotFoundException, IOException
{
FileOutputStream fos = new FileOutputStream("Sample.txt");
fos.write('K');
fos.close( );
}
}
import java.io.*;
class File2
{
public static void main(String args[]) throws FileNotFoundException, IOException
{
FileOutputStream fos = new FileOutputStream("Sample.txt",true);
fos.write('V');
fos.close( );
}
}
import java.io.*;
class File3
{
public static void main(String args[]) throws FileNotFoundException, IOException
{
FileInputStream fis = new FileInputStream("Sample.txt");
int t;
t = fis.read( );
System.out.print((char)t);
t = fis.read( );
System.out.print((char)t);
fis.close( );
}
}
import java.io.*;
class File4
{
public static void main(String args[]) throws FileNotFoundException, IOException
{
FileOutputStream fos = new FileOutputStream("Simple.txt");
char t;
System.out.println("Enter text, ends with *");
while(true)
{
t = (char) System.in.read( );
if(t == '*')
break;
fos.write(t);
}
fos.close( );
}
}
import java.io.*;
class File5
{
public static void main(String args[]) throws FileNotFoundException, IOException
{
FileOutputStream fos = new FileOutputStream("Simple.txt",true);
char t;
System.out.println("Enter text, ends with *");
while(true)
{
t = (char) System.in.read( );
if(t == '*')
break;
fos.write(t);
}
fos.close( );
}
}
import java.io.*;
class File6
{
public static void main(String args[]) throws FileNotFoundException, IOException
{
FileInputStream fis = new FileInputStream("Simple.txt");
int t;
System.out.println("Data from simple.txt");
while(true)
{
t = fis.read( );
if(t == -1) // -1 : End of File
break;
System.out.print((char)t);
}
fis.close( );
}
}
import java.io.*;
import java.util.Scanner;
class File7
{
public static void main(String args[ ]) throws FileNotFoundException, IOException
{
Scanner sc = new Scanner(System.in);
String fname;
System.out.println("Enter File Name");
fname = sc.next( );
FileReader fr = new FileReader(fname);
int ch;
while(true)
{
ch = fr.read( );
if(ch == -1)
break;
System.out.print((char)ch);
}
fr.close( );
}
}