Summary

These lecture notes cover OOP concepts in Java, including inheritance, polymorphism, abstraction, and encapsulation. The document also details the history of Java, versions, features, comments, data types, and variable types. These notes are targeted at second-year B.Tech students.

Full Transcript

JAVA PROGRAMMING LECTURE NOTES B.TECH II YEAR – II SEM (2018-19) NRI INSTITUTE OF TECHNOLOGY An Autonomous Institution, Permanently Affiliated to JNTUK, Kakinada (Accredited by NAAC with ”A” Grade and ISO 9001:2015 Certified Institu...

JAVA PROGRAMMING LECTURE NOTES B.TECH II YEAR – II SEM (2018-19) NRI INSTITUTE OF TECHNOLOGY An Autonomous Institution, Permanently Affiliated to JNTUK, Kakinada (Accredited by NAAC with ”A” Grade and ISO 9001:2015 Certified Institute) Pothavarappadu (V), Via Nunna, Agiripalli (M), PIN-521 212. Ph : 0866 – 2469666 Website : nrigroupofcolleges.com e-mail : [email protected] Lecture Note Prepared by: Mr. E. Karunakar Associate Professor Unit-1 OOP Concepts Object Oriented Programming is a paradigm that provides many concepts such as inheritance, data binding, polymorphism etc. Simula is considered as the first object-oriented programming language. The programming paradigm where everything is represented as an object is known as truly object-oriented programming language. Smalltalk is considered as the first truly object-oriented programming language. OOPs (Object Oriented Programming System) Object means a real word entity such as pen, chair, table etc. Object-Oriented Programming is a methodology or paradigm to design a program using classes and objects. It simplifies the software development and maintenance by providing some concepts: o Object o Class o Inheritance o Polymorphism o Abstraction o Encapsulation Object Any entity that has state and behavior is known as an object. For example: chair, pen, table, keyboard, bike etc. It can be physical and logical. Class Collection of objects is called class. It is a logical entity. Inheritance When one object acquires all the properties and behaviours of parent object i.e. known as inheritance. It provides code reusability. It is used to achieve runtime polymorphism. JAVA PROGRAMMING Page 1 Polymorphism When one task is performed by different ways i.e. known as polymorphism. For example: to convince the customer differently, to draw something e.g. shape or rectangle etc. In java, we use method overloading and method overriding to achieve polymorphism. Another example can be to speak something e.g. cat speaks meaw, dog barks woof etc. Abstraction Hiding internal details and showing functionality is known as abstraction. For example: phone call, we don't know the internal processing. In java, we use abstract class and interface to achieve abstraction. Encapsulation Binding (or wrapping) code and data together into a single unit is known as encapsulation. For example: capsule, it is wrapped with different medicines. A java class is the example of encapsulation. Java bean is the fully encapsulated class because all the data members are private here. Benefits of Inheritance  One of the key benefits of inheritance is to minimize the amount of duplicate code in an application by sharing common code amongst several subclasses. Where equivalent code exists in two related classes, the hierarchy can usually be refactored to move the common code up to a mutual superclass. This also tends to result in a better organization of code and smaller, simpler compilation units.  Inheritance can also make application code more flexible to change because classes that inherit from a common superclass can be used interchangeably. If the return type of a method is superclass  Reusability - facility to use public methods of base class without rewriting the same.  Extensibility - extending the base class logic as per business logic of the derived class. JAVA PROGRAMMING Page 2  Data hiding - base class can decide to keep some data private so that it cannot be altered by the derived class Procedural and object oriented programming paradigms JAVA PROGRAMMING Page 3 Java Programming- History of Java The history of java starts from Green Team. Java team members (also known as Green Team), initiated a revolutionary task to develop a language for digital devices such as set-top boxes, televisions etc. For the green team members, it was an advance concept at that time. But, it was suited for internet programming. Later, Java technology as incorporated by Netscape. Currently, Java is used in internet programming, mobile devices, games, e-business solutions etc. There are given the major points that describes the history of java. 1) James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June 1991. The small team of sun engineers called Green Team. 2) Originally designed for small, embedded systems in electronic appliances like set- top boxes. 3) Firstly, it was called "Greentalk" by James Gosling and file extension was.gt. 4) After that, it was called Oak and was developed as a part of the Green project. Java Version History There are many java versions that has been released. Current stable release of Java is Java SE 8. 1. JDK Alpha and Beta (1995) 2. JDK 1.0 (23rd Jan, 1996) 3. JDK 1.1 (19th Feb, 1997) 4. J2SE 1.2 (8th Dec, 1998) 5. J2SE 1.3 (8th May, 2000) 6. J2SE 1.4 (6th Feb, 2002) 7. J2SE 5.0 (30th Sep, 2004) 8. Java SE 6 (11th Dec, 2006) 9. Java SE 7 (28th July, 2011) 10.Java SE 8 (18th March, 2014) JAVA PROGRAMMING Page 4 Features of Java There is given many features of java. They are also known as java buzzwords. The Java Features given below are simple and easy to understand. 1. Simple 2. Object-Oriented 3. Portable 4. Platform independent 5. Secured 6. Robust 7. Architecture neutral 8. Dynamic 9. Interpreted 10. High Performance 11. Multithreaded 12. Distributed Java Comments The java comments are statements that are not executed by the compiler and interpreter. The comments can be used to provide information or explanation about the variable, method, class or any statement. It can also be used to hide program code for specific time. Types of Java Comments There are 3 types of comments in java. 1. Single Line Comment 2. Multi Line Comment 3. Documentation Comment Java Single Line Comment The single line comment is used to comment only one line. Syntax: 1. //This is single line comment JAVA PROGRAMMING Page 5 Example: public class CommentExample1 { public static void main(String[] args) { int i=10;//Here, i is a variable System.out.println(i); } } Output: 10 Java Multi Line Comment The multi line comment is used to comment multiple lines of code. Syntax: Example: public class CommentExample2 { public static void main(String[] args) { int i=10; System.out.println(i); }} Output: 10 JAVA PROGRAMMING Page 6 Java Documentation Comment The documentation comment is used to create documentation API. To create documentation API, you need to use javadoc tool. Syntax: Example: public class Calculator { public static int add(int a, int b){return a+b;} public static int sub(int a, int b){return a-b;} } Compile it by javac tool: javac Calculator.java Create Documentation API by javadoc tool: javadoc Calculator.java Now, there will be HTML files created for your Calculator class in the current directory. Open the HTML files and see the explanation of Calculator class provided through documentation comment. JAVA PROGRAMMING Page 7 Data Types Data types represent the different values to be stored in the variable. In java, there are two types of data types: o Primitive data types o Non-primitive data types Data Type Default Value Default size boolean False 1 bit char '\u0000' 2 byte byte 0 1 byte short 0 2 byte int 0 4 byte long 0L 8 byte float 0.0f 4 byte double 0.0d 8 byte Java Variable Example: Add Two Numbers class Simple{ public static void main(String[] args){ int a=10; int b=10; int c=a+b; System.out.println(c); }} Output:20 JAVA PROGRAMMING Page 8 Variables and Data Types in Java Variable is a name of memory location. There are three types of variables in java: local, instance and static. There are two types of data types in java: primitive and non-primitive. Types of Variable There are three types of variables in java: o local variable o instance variable o static variable 1) Local Variable A variable which is declared inside the method is called local variable. 2) Instance Variable A variable which is declared inside the class but outside the method, is called instance variable. It is not declared as static. 3) Static variable A variable that is declared as static is called static variable. It cannot be local. We will have detailed learning of these variables in next chapters. Example to understand the types of variables in java class A{ int data=50;//instance variable static int m=100;//static variable void method(){ int n=90;//local variable } }//end of class Constants in Java A constant is a variable which cannot have its value changed after declaration. It uses the 'final' keyword. Syntax modifier final dataType variableName = value; //global constant modifier static final dataType variableName = value; //constant within a c JAVA PROGRAMMING Page 9 Scope and Life Time of Variables The scope of a variable defines the section of the code in which the variable is visible. As a general rule, variables that are defined within a block are not accessible outside that block. The lifetime of a variable refers to how long the variable exists before it is destroyed. Destroying variables refers to deallocating the memory that was allotted to the variables when declaring it. We have written a few classes till now. You might have observed that not all variables are the same. The ones declared in the body of a method were different from those that were declared in the class itself. There are three types of variables: instance variables, formal parameters or local variables and local variables. Instance variables Instance variables are those that are defined within a class itself and not in any method or constructor of the class. They are known as instance variables because every instance of the class (object) contains a copy of these variables. The scope of instance variables is determined by the access specifier that is applied to these variables. We have already seen about it earlier. The lifetime of these variables is the same as the lifetime of the object to which it belongs. Object once created do not exist for ever. They are destroyed by the garbage collector of Java when there are no more reference to that object. We shall see about Java's automatic garbage collector later on. Argument variables These are the variables that are defined in the header oaf constructor or a method. The scope of these variables is the method or constructor in which they are defined. The lifetime is limited to the time for which the method keeps executing. Once the method finishes execution, these variables are destroyed. Local variables A local variable is the one that is declared within a method or a constructor (not in the header). The scope and lifetime are limited to the method itself. One important distinction between these three types of variables is that access specifiers can be applied to instance variables only and not to argument or local variables. In addition to the local variables defined in a method, we also have variables that are defined in bocks life an if block and an else block. The scope and is the same as that of the block itself. JAVA PROGRAMMING Page 10 Operators in java Operator in java is a symbol that is used to perform operations. For example: +, -, *, / etc. There are many types of operators in java which are given below: o Unary Operator, o Arithmetic Operator, o shift Operator, o Relational Operator, o Bitwise Operator, o Logical Operator, o Ternary Operator and o Assignment Operator. Operators Hierarchy JAVA PROGRAMMING Page 11 Expressions Expressions are essential building blocks of any Java program, usually created to produce a new value, although sometimes an expression simply assigns a value to a variable. Expressions are built using values, variables, operators and method calls. Types of Expressions While an expression frequently produces a result, it doesn't always. There are three types of expressions in Java:  Those that produce a value, i.e. the result of (1 + 1)  Those that assign a variable, for example (v = 10)  Those that have no result but might have a "side effect" because an expression can include a wide range of elements such as method invocations or increment operators that modify the state (i.e. memory) of a program. Java Type casting and Type conversion Widening or Automatic Type Conversion Widening conversion takes place when two data types are automatically converted. This happens when:  The two data types are compatible.  When we assign value of a smaller data type to a bigger data type. For Example, in java the numeric data types are compatible with each other but no automatic conversion is supported from numeric type to char or boolean. Also, char and boolean are not compatible with each other. Narrowing or Explicit Conversion If we want to assign a value of larger data type to a smaller data type we perform explicit type casting or narrowing.  This is useful for incompatible data types where automatic conversion cannot be done.  Here, target-type specifies the desired type to convert the specified value to.  JAVA PROGRAMMING Page 12 Java Enum Enum in java is a data type that contains fixed set of constants. It can be used for days of the week (SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY and SATURDAY) , directions (NORTH, SOUTH, EAST and WEST) etc. The java enum constants are static and final implicitly. It is available from JDK 1.5. Java Enums can be thought of as classes that have fixed set of constants. Simple example of java enum class EnumExample1{ public enum Season { WINTER, SPRING, SUMMER, FALL } public static void main(String[] args) { for (Season s : Season.values()) System.out.println(s); }} Output: WINTER SPRING SUMMER FALL Control Flow Statements The control flow statements in Java allow you to run or skip blocks of code when special conditions are met. The “if” Statement The “if” statement in Java works exactly like in most programming languages. With the help of “if” you can choose to execute a specific block of code when a predefined condition is met. The structure of the “if” statement in Java looks like this: if (condition) { // execute this code } JAVA PROGRAMMING Page 13 The condition is Boolean. Boolean means it may be true or false. For example you may put a mathematical equation as condition. Look at this full example: Creating a Stand-Alone Java Application 1. Write a main method that runs your program. You can write this method anywhere. In this example, I'll write my main method in a class called Main that has no other methods. For example: 2. public class Main 3. { 4. public static void main(String[] args) 5. { 6. Game.play(); 7. }} 8. Make sure your code is compiled, and that you have tested it thoroughly. 9. If you're using Windows, you will need to set your path to include Java, if you haven't done so already. This is a delicate operation. Open Explorer, and look inside C:\ProgramFiles\Java, and you should see some version of the JDK. Open this folder, and then open the bin folder. Select the complete path from the top of the Explorer window, and press Ctrl-C to copy it. Next, find the "My Computer" icon (on your Start menu or desktop), right-click it, and select properties. Click on the Advanced tab, and then click on the Environment variables button. Look at the variables listed for all users, and click on the Path variable. Do not delete the contents of this variable! Instead, edit the contents by moving the cursor to the right end, entering a semicolon (;), and pressing Ctrl-V to paste the path you copied earlier. Then go ahead and save your changes. (If you have any Cmd windows open, you will need to close them.) 10. If you're using Windows, go to the Start menu and type "cmd" to run a program that brings up a command prompt window. If you're using a Mac or Linux machine, run the Terminal program to bring up a command prompt. 11. In Windows, type dir at the command prompt to list the contents of the current directory. On a Mac or Linux machine, type ls to do this. JAVA PROGRAMMING Page 14 12. Now we want to change to the directory/folder that contains your compiled code. Look at the listing of sub-directories within this directory, and identify which one contains your code. Type cd followed by the name of that directory, to change to that directory. For example, to change to a directory called Desktop, you would type: cd Desktop To change to the parent directory, type: cd.. Every time you change to a new directory, list the contents of that directory to see where to go next. Continue listing and changing directories until you reach the directory that contains your.class files. 13. If you compiled your program using Java 1.6, but plan to run it on a Mac, you'll need to recompile your code from the command line, by typing: javac -target 1.5 *.java 14. Now we'll create a single JAR file containing all of the files needed to run your program. Arrays Java provides a data structure, the array, which stores a fixed-size sequential collection of elements of the same type. An array is used to store a collection of data, but it is often more useful to think of an array as a collection of variables of the same type. Instead of declaring individual variables, such as number0, number1,..., and number99, you declare one array variable such as numbers and use numbers, numbers, and..., numbers to represent individual variables. This tutorial introduces how to declare array variables, create arrays, and process arrays using indexed variables. Declaring Array Variables: To use an array in a program, you must declare a variable to reference the array, and you must specify the type of array the variable can reference. Here is the syntax for declaring an array variable: dataType[] arrayRefVar; // preferred way. or dataType arrayRefVar[]; // works but not preferred way. Note: The style dataType[] arrayRefVar is preferred. The style dataType arrayRefVar[] comes from the C/C++ language and was adopted in Java to accommodate C/C++ programmers. Example: JAVA PROGRAMMING Page 15 The following code snippets are examples of this syntax: double[] myList; // preferred way. or double myList[]; // works but not preferred way. Creating Arrays: You can create an array by using the new operator with the following syntax: arrayRefVar = new dataType[arraySize]; The above statement does two things:  It creates an array using new dataType[arraySize];  It assigns the reference of the newly created array to the variable arrayRefVar. Declaring an array variable, creating an array, and assigning the reference of the array to the variable can be combined in one statement, as shown below: dataType[] arrayRefVar = new dataType[arraySize]; Alternatively you can create arrays as follows: dataType[] arrayRefVar = {value0, value1,..., valuek}; The array elements are accessed through the index. Array indices are 0-based; that is, they start from 0 to arrayRefVar.length-1. Example: Following statement declares an array variable, myList, creates an array of 10 elements of double type and assigns its reference to myList: double[] myList = new double; Following picture represents array myList. Here, myList holds ten double values and the indices are from 0 to 9. JAVA PROGRAMMING Page 16 Processing Arrays: When processing array elements, we often use either for loop or for each loop because all of the elements in an array are of the same type and the size of the array is known. Example: Here is a complete example of showing how to create, initialize and process arrays: public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Print all the array elements for (int i = 0; i < myList.length; i++) { System.out.println(myList[i] + " "); } // Summing all elements double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("Total is " + total); // Finding the largest element double max = myList; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) max = myList[i]; } System.out.println("Max is " + max); } } JAVA PROGRAMMING Page 17 This would produce the following result: 1.9 2.9 3.4 3.5 Total is 11.7 Max is 3.5 public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Print all the array elements for (double element: myList) { System.out.println(element); }}} Java Console Class The Java Console class is be used to get input from console. It provides methods to read texts and passwords. If you read password using Console class, it will not be displayed to the user. The java.io.Console class is attached with system console internally. The Console class is introduced since 1.5. Let's see a simple example to read text from console. 1. String text=System.console().readLine(); 2. System.out.println("Text is: "+text); Java Console Example import java.io.Console; class ReadStringTest{ public static void main(String args[]){ Console c=System.console(); System.out.println("Enter your name: "); String n=c.readLine(); System.out.println("Welcome "+n); } } JAVA PROGRAMMING Page 18 Output Enter your name: Nakul Jain Welcome Nakul Jain Constructors Constructor in java is a special type of method that is used to initialize the object. Java constructor is invoked at the time of object creation. It constructs the values i.e. provides data for the object that is why it is known as constructor. There are basically two rules defined for the constructor. 1. Constructor name must be same as its class name 2. Constructor must have no explicit return type Types of java constructors There are two types of constructors: 1. Default constructor (no-arg constructor) 2. Parameterized constructor Java Default Constructor A constructor that have no parameter is known as default constructor. Syntax of default constructor: 1. (){} Example of default constructor In this example, we are creating the no-arg constructor in the Bike class. It will be invoked at the time of object creation. class Bike1{ Bike1(){System.out.println("Bike is created");} public static void main(String args[]){ Bike1 b=new Bike1(); }} Output: Bike is created JAVA PROGRAMMING Page 19 Example of parameterized constructor In this example, we have created the constructor of Student class that have two parameters. We can have any number of parameters in the constructor. class Student4{ int id; String name; Student4(int i,String n){ id = i; name = n; } void display(){System.out.println(id+" "+name);} public static void main(String args[]){ Student4 s1 = new Student4(111,"Karan"); Student4 s2 = new Student4(222,"Aryan"); s1.display(); s2.display(); }} Output: 111 Karan 222 Aryan Constructor Overloading in Java Constructor overloading is a technique in Java in which a class can have any number of constructors that differ in parameter lists.The compiler differentiates these constructors by taking into account the number of parameters in the list and their type. Example of Constructor Overloading class Student5{ int id; String name; int age; Student5(int i,String n){ id = i; name = n; } Student5(int i,String n,int a){ id = i; name = n; age=a; } void display(){System.out.println(id+" "+name+" "+age);} public static void main(String args[]){ Student5 s1 = new Student5(111,"Karan"); Student5 s2 = new Student5(222,"Aryan",25); s1.display(); JAVA PROGRAMMING Page 20 s2.display(); }} Output: 111 Karan 0 222 Aryan 25 Java Copy Constructor There is no copy constructor in java. But, we can copy the values of one object to another like copy constructor in C++. There are many ways to copy the values of one object into another in java. They are: o By constructor o By assigning the values of one object into another o By clone() method of Object class In this example, we are going to copy the values of one object into another using java constructor. class Student6{ int id; String name; Student6(int i,String n){ id = i; name = n; } Student6(Student6 s){ id = s.id; name =s.name; } void display(){System.out.println(id+" "+name);} public static void main(String args[]){ Student6 s1 = new Student6(111,"Karan"); Student6 s2 = new Student6(s1); s1.display(); s2.display(); }} Output: 111 Karan 111 Karan JAVA PROGRAMMING Page 21 Java - Methods A Java method is a collection of statements that are grouped together to perform an operation. When you call the System.out.println() method, for example, the system actually executes several statements in order to display a message on the console. Now you will learn how to create your own methods with or without return values, invoke a method with or without parameters, and apply method abstraction in the program design. Creating Method Considering the following example to explain the syntax of a method − Syntax public static int methodName(int a, int b) { // body } Here,  public static − modifier  int − return type  methodName − name of the method  a, b − formal parameters  int a, int b − list of parameters Method definition consists of a method header and a method body. The same is shown in the following syntax − Syntax modifier returnType nameOfMethod (Parameter List) { // method body } The syntax shown above includes −  modifier − It defines the access type of the method and it is optional to use.  returnType − Method may return a value.  nameOfMethod − This is the method name. The method signature consists of the method name and the parameter list. JAVA PROGRAMMING Page 22  Parameter List − The list of parameters, it is the type, order, and number of parameters of a method. These are optional, method may contain zero parameters.  method body − The method body defines what the method does with the statements. Call by Value and Call by Reference in Java There is only call by value in java, not call by reference. If we call a method passing a value, it is known as call by value. The changes being done in the called method, is not affected in the calling method. Example of call by value in java In case of call by value original value is not changed. Let's take a simple example: class Operation{ int data=50; void change(int data){ data=data+100;//changes will be in the local variable only } public static void main(String args[]){ Operation op=new Operation(); System.out.println("before change "+op.data); op.change(500); System.out.println("after change "+op.data); } } Output:before change 50 after change 50 In Java, parameters are always passed by value. For example, following program prints i = 10, j = 20. // Test.java class Test { // swap() doesn't swap i and j public static void swap(Integer i, Integer j) { Integer temp = new Integer(i); i = j; j = temp; } public static void main(String[] args) { Integer i = new Integer(10); Integer j = new Integer(20); swap(i, j); System.out.println("i = " + i + ", j = " + j); JAVA PROGRAMMING Page 23 } } Static Fields and Methods The static keyword in java is used for memory management mainly. We can apply java static keyword with variables, methods, blocks and nested class. The static keyword belongs to the class than instance of the class. The static can be: 1. variable (also known as class variable) 2. method (also known as class method) 3. block 4. nested class Java static variable If you declare any variable as static, it is known static variable. o The static variable can be used to refer the common property of all objects (that is not unique for each object) e.g. company name of employees,college name of students etc. o The static variable gets memory only once in class area at the time of class loading. Advantage of static variable It makes your program memory efficient (i.e it saves memory). Understanding problem without static variable 1. class Student{ 2. int rollno; 3. String name; 4. String college="ITS"; 5. } Example of static variable //Program of static variable class Student8{ int rollno; JAVA PROGRAMMING Page 24 String name; static String college ="ITS"; Student8(int r,String n){ rollno = r; name = n; } void display (){System.out.println(rollno+" "+name+" "+college);} public static void main(String args[]){ Student8 s1 = new Student8(111,"Karan"); Student8 s2 = new Student8(222,"Aryan"); s1.display(); s2.display(); }} Output:111 Karan ITS 222 Aryan ITS Java static method If you apply static keyword with any method, it is known as static method. o A static method belongs to the class rather than object of a class. o A static method can be invoked without the need for creating an instance of a class. o static method can access static data member and can change the value of it. Example of static method //Program of changing the common property of all objects(static field). class Student9{ int rollno; String name; static String college = "ITS"; static void change(){ college = "BBDIT"; } Student9(int r, String n){ rollno = r; name = n; JAVA PROGRAMMING Page 25 } void display (){System.out.println(rollno+" "+name+" "+college);} public static void main(String args[]){ Student9.change(); Student9 s1 = new Student9 (111,"Karan"); Student9 s2 = new Student9 (222,"Aryan"); Student9 s3 = new Student9 (333,"Sonoo"); s1.display(); s2.display(); s3.display(); }} Output:111 Karan BBDIT 222 Aryan BBDIT 333 Sonoo BBDIT Java static block o Is used to initialize the static data member. o It is executed before main method at the time of class loading. Example of static block class A2{ static{System.out.println("static block is invoked");} public static void main(String args[]){ System.out.println("Hello main"); }} Output: static block is invoked Hello main Access Control Access Modifiers in java There are two types of modifiers in java: access modifiers and non-access modifiers. The access modifiers in java specifies accessibility (scope) of a data member, method, constructor or class. There are 4 types of java access modifiers: JAVA PROGRAMMING Page 26 1. private 2. default 3. protected 4. public private access modifier The private access modifier is accessible only within class. Simple example of private access modifier In this example, we have created two classes A and Simple. A class contains private data member and private method. We are accessing these private members from outside the class, so there is compile time error. class A{ private int data=40; private void msg(){System.out.println("Hello java");} } public class Simple{ public static void main(String args[]){ A obj=new A(); System.out.println(obj.data);//Compile Time Error obj.msg();//Compile Time Error }} 2) default access modifier If you don't use any modifier, it is treated as default bydefault. The default modifier is accessible only within package. Example of default access modifier In this example, we have created two packages pack and mypack. We are accessing the A class from outside its package, since A class is not public, so it cannot be accessed from outside the package. //save by A.java package pack; class A{ void msg(){System.out.println("Hello");} } //save by B.java package mypack; import pack.*; JAVA PROGRAMMING Page 27 class B{ public static void main(String args[]){ A obj = new A();//Compile Time Error obj.msg();//Compile Time Error } } In the above example, the scope of class A and its method msg() is default so it cannot be accessed from outside the package. 3) protected access modifier The protected access modifier is accessible within package and outside the package but through inheritance only. The protected access modifier can be applied on the data member, method and constructor. It can't be applied on the class. Example of protected access modifier In this example, we have created the two packages pack and mypack. The A class of pack package is public, so can be accessed from outside the package. But msg method of this package is declared as protected, so it can be accessed from outside the class only through inheritance. //save by A.java package pack; public class A{ protected void msg(){System.out.println("Hello");} } //save by B.java package mypack; import pack.*; class B extends A{ public static void main(String args[]){ B obj = new B(); obj.msg(); }} Output:Hello 4) public access modifier The public access modifier is accessible everywhere. It has the widest scope among all other modifiers. JAVA PROGRAMMING Page 28 Example of public access modifier //save by A.java package pack; public class A{ public void msg(){System.out.println("Hello");} } //save by B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); }} Output:Hello Understanding all java access modifiers Let's understand the access modifiers by a simple table. Access within within outside package by outside Modifier class package subclass only package Private Y N N N Default Y Y N N Protected Y Y Y N Public Y Y Y Y this keyword in java Usage of java this keyword Here is given the 6 usage of java this keyword. 1. this can be used to refer current class instance variable. 2. this can be used to invoke current class method (implicitly) 3. this() can be used to invoke current class constructor. JAVA PROGRAMMING Page 29 4. this can be passed as an argument in the method call. 5. this can be passed as argument in the constructor call. 6. this can be used to return the current class instance from the method. class Student{ int rollno; String name; float fee; Student(int rollno,String name,float fee){ this.rollno=rollno; this.name=name; this.fee=fee; } void display(){System.out.println(rollno+" "+name+" "+fee);} } class TestThis2{ public static void main(String args[]){ Student s1=new Student(111,"ankit",5000f); Student s2=new Student(112,"sumit",6000f); s1.display(); s2.display(); }} Output: 111 ankit 5000 112 sumit 6000 Difference between constructor and method in java Java Constructor Java Method Constructor is used to initialize the state of an object. Method is used to expose behaviour of an object. Constructor must not have return type. Method must have return type. Constructor is invoked implicitly. Method is invoked explicitly. The java compiler provides a default constructor if you Method is not provided by compiler in don't have any constructor. any case. Constructor name must be same as the class name. Method name may or may not be JAVA PROGRAMMING Page 30 same as class name. There are many differences between constructors and methods. They are given belo Constructor Overloading in Java Constructor overloading is a technique in Java in which a class can have any number of constructors that differ in parameter lists.The compiler differentiates these constructors by taking into account the number of parameters in the list and their type. Example of Constructor Overloading class Student5{ int id; String name; int age; Student5(int i,String n){ id = i; name = n; } Student5(int i,String n,int a){ id = i; name = n; age=a; } void display(){System.out.println(id+" "+name+" "+age);} public static void main(String args[]){ Student5 s1 = new Student5(111,"Karan"); Student5 s2 = new Student5(222,"Aryan",25); s1.display(); s2.display(); } } Output: JAVA PROGRAMMING Page 31 111 Karan 0 222 Aryan 25 Method Overloading in java If a class has multiple methods having same name but different in parameters, it is known as Method Overloading. If we have to perform only one operation, having same name of the methods increases the readability of the program. Method Overloading: changing no. of arguments In this example, we have created two methods, first add() method performs addition of two numbers and second add method performs addition of three numbers. In this example, we are creating static methods so that we don't need to create instance for calling methods. class Adder{ static int add(int a,int b){return a+b;} static int add(int a,int b,int c){return a+b+c;} } class TestOverloading1{ public static void main(String[] args){ System.out.println(Adder.add(11,11)); System.out.println(Adder.add(11,11,11)); }} Output: 22 33 Method Overloading: changing data type of arguments In this example, we have created two methods that differs in data type. The first add method receives two integer arguments and second add method receives two double arguments. JAVA PROGRAMMING Page 32 Recursion in Java Recursion in java is a process in which a method calls itself continuously. A method in java that calls itself is called recursive method. Java Recursion Example 1: Factorial Number public class RecursionExample3 { static int factorial(int n){ if (n == 1) return 1; else return(n * factorial(n-1)); }} public static void main(String[] args) { System.out.println("Factorial of 5 is: "+factorial(5)); }} Output: Factorial of 5 is: 120 Java Garbage Collection In java, garbage means unreferenced objects. Garbage Collection is process of reclaiming the runtime unused memory automatically. In other words, it is a way to destroy the unused objects. To do so, we were using free() function in C language and delete() in C++. But, in java it is performed automatically. So, java provides better memory management. Advantage of Garbage Collection o It makes java memory efficient because garbage collector removes the unreferenced objects from heap memory. o It is automatically done by the garbage collector(a part of JVM) so we don't need to make extra efforts. gc() method JAVA PROGRAMMING Page 33 The gc() method is used to invoke the garbage collector to perform cleanup processing. The gc() is found in System and Runtime classes. public static void gc(){} Simple Example of garbage collection in java public class TestGarbage1{ public void finalize(){System.out.println("object is garbage collected");} public static void main(String args[]){ TestGarbage1 s1=new TestGarbage1(); TestGarbage1 s2=new TestGarbage1(); s1=null; s2=null; System.gc(); }} object is garbage collected object is garbage collected Java String string is basically an object that represents sequence of char values. An array of characters works same as java string. For example: 1. char[] ch={'j','a','v','a','t','p','o','i','n','t'}; 2. String s=new String(ch); ssame as: 1. String s="javatpoint"; 2. Java String class provides a lot of methods to perform operations on string such as compare(), concat(), equals(), split(), length(), replace(), compareTo(), intern(), substring() etc. 3. The java.lang.String class implements Serializable, Comparable and CharSequence interfaces. CharSequence Interface JAVA PROGRAMMING Page 34 The CharSequence interface is used to represent sequence of characters. It is implemented by String, StringBuffer and StringBuilder classes. It means, we can create string in java by using these 3 classes. The java String is immutable i.e. it cannot be changed. Whenever we change any string, a new instance is created. For mutable string, you can use StringBuffer and StringBuilder classes. There are two ways to create String object: 1. By string literal 2. By new keyword String Literal Java String literal is created by using double quotes. For Example: 1. String s="welcome"; Each time you create a string literal, the JVM checks the string constant pool first. If the string already exists in the pool, a reference to the pooled instance is returned. If string doesn't exist in the pool, a new string instance is created and placed in the pool. For example: 1. String s1="Welcome"; 2. String s2="Welcome";//will not create new instance By new keyword 1. String s=new String("Welcome");//creates two objects and one reference variable In such case, JVM will create a new string object in normal (non pool) heap memory and the literal "Welcome" will be placed in the string constant pool. The variable s will refer to the object in heap (non pool). Java String Example public class StringExample{ public static void main(String args[]){ String s1="java";//creating string by java string literal char ch[]={'s','t','r','i','n','g','s'}; String s2=new String(ch);//converting char array to string String s3=new String("example");//creating java string by new keyword System.out.println(s1); System.out.println(s2); System.out.println(s3); }} java JAVA PROGRAMMING Page 35 strings example Immutable String in Java In java, string objects are immutable. Immutable simply means unmodifiable or unchangeable. Once string object is created its data or state can't be changed but a new string object is created. Let's try to understand the immutability concept by the example given below: class Testimmutablestring{ public static void main(String args[]){ String s="Sachin"; s.concat(" Tendulkar");//concat() method appends the string at the end System.out.println(s);//will print Sachin because strings are immutable objects } } Output:Sachin class Testimmutablestring1{ public static void main(String args[]){ String s="Sachin"; s=s.concat(" Tendulkar"); System.out.println(s); } } Output:Sachin Tendulkar JAVA PROGRAMMING Page 36 MALLA REDDY COLLEGE OF ENGINEERING & TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Unit-2 Inheritance in Java Inheritance in java is a mechanism in which one object acquires all the properties and behaviors of parent object. Inheritance represents the IS-A relationship, also known as parent- child relationship. Why use inheritance in java o For Method Overriding (so runtime polymorphism can be achieved). o For Code Reusability. Syntax of Java Inheritance 1. class Subclass-name extends Superclass-name 2. { 3. //methods and fields 4. } The extends keyword indicates that you are making a new class that derives from an existing class. The meaning of "extends" is to increase the functionality. class Employee{ float salary=40000; } class Programmer extends Employee{ int bonus=10000; public static void main(String args[]){ Programmer p=new Programmer(); System.out.println("Programmer salary is:"+p.salary); System.out.println("Bonus of Programmer is:"+p.bonus); }} Programmer salary is:40000.0 JAVA PROGRAMMING Page 37 Bonus of programmer is:10000 Types of inheritance in java Single Inheritance Example File: TestInheritance.java class Animal{ void eat(){System.out.println("eating...");} } class Dog extends Animal{ void bark(){System.out.println("barking...");} } class TestInheritance{ public static void main(String args[]){ Dog d=new Dog(); d.bark(); d.eat(); }} Output: barking... eating... Multilevel Inheritance Example File: TestInheritance2.java class Animal{ void eat(){System.out.println("eating...");} } class Dog extends Animal{ void bark(){System.out.println("barking...");} } class BabyDog extends Dog{ void weep(){System.out.println("weeping...");} } class TestInheritance2{ JAVA PROGRAMMING Page 38 public static void main(String args[]){ BabyDog d=new BabyDog(); d.weep(); d.bark(); d.e at(); }} Output: weeping... barking... eating... Hierarchical Inheritance Example File: TestInheritance3.java class Animal{ void eat(){System.out.println("eating...");} } class Dog extends Animal{ void bark(){System.out.println("barking...");} } class Cat extends Animal{ void meow(){System.out.println("meowing...");} } class TestInheritance3{ public static void main(String args[]){ Cat c=new Cat(); c.meow(); c.eat(); //c.bark();//C.T.Error }} Output: meowing... eating... JAVA PROGRAMMING Page 39 Member access and Inheritance A subclass includes all of the members of its super class but it cannot access those members of the super class that have been declared as private. Attempt to access a private variable would cause compilation error as it causes access violation. The variables declared as private, is only accessible by other members of its own class. Subclass have no access to it. super keyword in java The super keyword in java is a reference variable which is used to refer immediate parent class object. Whenever you create the instance of subclass, an instance of parent class is created implicitly which is referred by super reference variable. Usage of java super Keyword 1. super can be used to refer immediate parent class instance variable. 2. super can be used to invoke immediate parent class method. 3. super() can be used to invoke immediate parent class constructor. super is used to refer immediate parent class instance variable. class Animal{ String color="white"; } class Dog extends Animal{ String color="black"; void printColor(){ System.out.println(color);//prints color of Dog class System.out.println(super.color);//prints color of Animal class } } class TestSuper1{ public static void main(String args[]){ Dog d=new Dog(); JAVA PROGRAMMING Page 40 d.printColor(); }} Output: black white Final Keyword in Java The final keyword in java is used to restrict the user. The java final keyword can be used in many context. Final can be: 1. variable 2. method 3. class The final keyword can be applied with the variables, a final variable that have no value it is called blank final variable or uninitialized final variable. It can be initialized in the constructor only. The blank final variable can be static also which will be initialized in the static block only. Object class in Java The Object class is the parent class of all the classes in java by default. In other words, it is the topmost class of java. The Object class is beneficial if you want to refer any object whose type you don't know. Notice that parent class reference variable can refer the child class object, know as upcasting. Let's take an example, there is getObject() method that returns an object but it can be of any type like Employee,Student etc, we can use Object class reference to refer that object. For example: 1. Object obj=getObject();//we don't know what object will be returned from this method The Object class provides some common behaviors to all the objects such as object can be compared, object can be cloned, object can be notified etc. Method Overriding in Java If subclass (child class) has the same method as declared in the parent class, it is known as method overriding in java. JAVA PROGRAMMING Page 41 Usage of Java Method Overriding o Method overriding is used to provide specific implementation of a method that is already provided by its super class. o Method overriding is used for runtime polymorphism Rules for Java Method Overriding 1. method must have same name as in the parent class 2. method must have same parameter as in the parent class. 3. must be IS-A relationship (inheritance). Example of method overriding Class Vehicle{ void run(){System.out.println("Vehicle is running");} } class Bike2 extends Vehicle{ void run(){System.out.println("Bike is running safely");} public static void main(String args[]){ Bike2 obj = new Bike2(); obj.run(); } Output:Bike is running safely 1. class Bank{ int getRateOfInterest(){return 0;} } class SBI extends Bank{ int getRateOfInterest(){return 8;} } class ICICI extends Bank{ int getRateOfInterest(){return 7;} } class AXIS extends Bank{ int getRateOfInterest(){return 9;} } class Test2{ public static void main(String args[]){ SBI s=new SBI(); ICICI i=new ICICI(); AXIS a=new AXIS(); System.out.println("SBI Rate of Interest: "+s.getRateOfInterest()); System.out.println("ICICI Rate of Interest: "+i.getRateOfInterest()); System.out.println("AXIS Rate of Interest: "+a.getRateOfInterest()); }} Output: SBI Rate of Interest: 8 JAVA PROGRAMMING Page 42 ICICI Rate of Interest: 7 AXIS Rate of Interest: 9 Abstract class in Java A class that is declared with abstract keyword is known as abstract class in java. It can have abstract and non-abstract methods (method with body). It needs to be extended and its method implemented. It cannot be instantiated. Example abstract class 1. abstract class A{} abstract method 1. abstract void printStatus();//no body and abstract Example of abstract class that has abstract method abstract class Bike{ abstract void run(); } class Honda4 extends Bike{ void run(){System.out.println("running safely..");} public static void main(String args[]){ Bike obj = new Honda4(); obj.run(); } 1. } running safely.. Interface in Java An interface in java is a blueprint of a class. It has static constants and abstract methods. The interface in java is a mechanism to achieve abstraction. There can be only abstract methods in the java interface not method body. It is used to achieve abstraction and multiple inheritance in Java. Java Interface also represents IS-A relationship. It cannot be instantiated just like abstract class. There are mainly three reasons to use interface. They are given below. o It is used to achieve abstraction. o By interface, we can support the functionality of multiple inheritance. o It can be used to achieve loose coupling. JAVA PROGRAMMING Page 43 Internal addition by compiler Understanding relationship between classes and interfaces //Interface declaration: by first user interface Drawable{ void draw(); } //Implementation: by second user class Rectangle implements Drawable{ public void draw(){System.out.println("drawing rectangle");} } class Circle implements Drawable{ public void draw(){System.out.println("drawing circle");} } //Using interface: by third user class TestInterface1{ public static void main(String args[]){ Drawable d=new Circle();//In real scenario, object is provided by method e.g. getDrawable() d.draw(); }} Output:drawing circle Multiple inheritance in Java by interface interface Printable{ JAVA PROGRAMMING Page 44 void print(); } interface Showable{ void show(); } class A7 implements Printable,Showable{ public void print(){System.out.println("Hello");} public void show(){System.out.println("Welcome");} public static void main(String args[]){ A7 obj = new A7(); obj.print(); obj.show(); }} Output:Hello Welcome Abstract class Interface 1) Abstract class can have abstract Interface can have only abstract methods. Since and non-abstract methods. Java 8, it can have default and static methods also. 2) Abstract class doesn't support Interface supports multiple inheritance. multiple inheritance. 3) Abstract class can have final, non- Interface has only static and final variables. final, static and non-static variables. 4) Abstract class can provide the Interface can't provide the implementation of implementation of interface. abstract class. 5) The abstract keyword is used to The interface keyword is used to declare declare abstract class. interface. 6) Example: Example: public abstract class Shape{ public interface Drawable{ public abstract void draw(); void draw(); } } Java Inner Classes Java inner class or nested class is a class which is declared inside the class or interface. We use inner classes to logically group classes and interfaces in one place so that it can be more readable and maintainable. Syntax of Inner class 1. class Java_Outer_class{ 2. //code 3. class Java_Inner_class{ 4. //code 5. }} JAVA PROGRAMMING Page 45 Advantage of java inner classes There are basically three advantages of inner classes in java. They are as follows: 1) Nested classes represent a special type of relationship that is it can access all the members (data members and methods) of outer class including private. 2) Nested classes are used to develop more readable and maintainable code because it logically group classes and interfaces in one place only. 3) Code Optimization: It requires less code to write. Difference between nested class and inner class in Java Inner class is a part of nested class. Non-static nested classes are known as inner classes. Types of Nested classes There are two types of nested classes non-static and static nested classes.The non-static nested classes are also known as inner classes. o Non-static nested class (inner class) 1. Member inner class 2. Anonymous inner class 3. Local inner class o Static nested class Java Package A java package is a group of similar types of classes, interfaces and sub-packages. Package in java can be categorized in two form, built-in package and user-defined package. There are many built-in packages such as java, lang, awt, javax, swing, net, io, util, sql etc. Advantage of Java Package 1) Java package is used to categorize the classes and interfaces so that they can be easily maintained. 2) Java package provides access protection. 3) Java package removes naming collision. package mypack; public class Simple{ public static void main(String args[]){ System.out.println("Welcome to package"); }} JAVA PROGRAMMING Page 46 How to compile java package If you are not using any IDE, you need to follow the syntax given below: javac -d directory javafilename How to run java package program To Compile: javac -d. Simple.java To Run: java mypack.Simple Using fully qualified name Example of package by import fully qualified name //save by A.java package pack; public class A{ public void msg(){System.out.println("Hello");} } //save by B.java package mypack; class B{ public static void main(String args[]){ pack.A obj = new pack.A();//using fully qualified name obj.msg(); } } Output:Hello JAVA PROGRAMMING Page 47 MALLA REDDY COLLEGE OF ENGINEERING & TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING UNIT-3 Exception Handling The exception handling in java is one of the powerful mechanism to handle the runtime errors so that normal flow of the application can be maintained. What is exception In java, exception is an event that disrupts the normal flow of the program. It is an object which is thrown at runtime. Advantage of Exception Handling The core advantage of exception handling is to maintain the normal flow of the application. Exception normally disrupts the normal flow of the application that is why we use exception handling. Types of Exception There are mainly two types of exceptions: checked and unchecked where error is considered as unchecked exception. The sun microsystem says there are three types of exceptions: 1. Checked Exception 2. Unchecked Exception 3. Error Difference between checked and unchecked exceptions 1) Checked Exception: The classes that extend Throwable class except RuntimeException and Error are known as checked exceptions e.g.IOException, SQLException etc. Checked exceptions are checked at compile-time. 2) Unchecked Exception: The classes that extend RuntimeException are known as unchecked exceptions e.g. ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException etc. Unchecked exceptions are not checked at compile-time rather they are checked at runtime. 3) Error: Error is irrecoverable e.g. OutOfMemoryError, VirtualMachineError, AssertionError etc. JAVA PROGRAMMING Page 48 Hierarchy of Java Exception classes Checked and UnChecked Exceptions JAVA PROGRAMMING Page 49 Java try block Java try block is used to enclose the code that might throw an exception. It must be used within the method. Java try block must be followed by either catch or finally block. Syntax of java try-catch 1. try{ 2. //code that may throw exception 3. }catch(Exception_class_Name ref){} Syntax of try-finally block 1. try{ 2. //code that may throw exception 3. }finally{} Java catch block Java catch block is used to handle the Exception. It must be used after the try block only. You can use multiple catch block with a single try. Problem without exception handling Let's try to understand the problem if we don't use try-catch block. public class Testtrycatch1{ public static void main(String args[]){ int data=50/0;//may throw exception System.out.println("rest of the code..."); }} Output: Exception in thread main java.lang.ArithmeticException:/ by zero As displayed in the above example, rest of the code is not executed (in such case, rest of the code... statement is not printed). There can be 100 lines of code after exception. So all the code after exception will not be executed. Solution by exception handling Let's see the solution of above problem by java try-catch block. public class Testtrycatch2{ JAVA PROGRAMMING Page 50 public static void main(String args[]){ try{ int data=50/0; }catch(ArithmeticException e){System.out.println(e);} System.out.println("rest of the code..."); }} 1. Output: Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code... Now, as displayed in the above example, rest of the code is executed i.e. rest of the code... statement is printed. Java Multi catch block If you have to perform different tasks at the occurrence of different Exceptions, use java multi catch block. Let's see a simple example of java multi-catch block. 1. public class TestMultipleCatchBlock{ 2. public static void main(String args[]){ 3. try{ 4. int a[]=new int; 5. a=30/0; 6. } 7. catch(ArithmeticException e){System.out.println("task1 is completed");} 8. catch(ArrayIndexOutOfBoundsException e){System.out.println("task 2 completed"); 9. } 10. catch(Exception e){System.out.println("common task completed"); 11. } 12. System.out.println("rest of the code..."); 13. } } Output:task1 completed rest of the code... Java nested try example Let's see a simple example of java nested try block. class Excep6{ public static void main(String args[]){ try{ try{ System.out.println("going to divide"); int b =39/0; }catch(ArithmeticException e){System.out.println(e);} try{ JAVA PROGRAMMING Page 51 int a[]=new int; a=4; }catch(ArrayIndexOutOfBoundsException e){System.out.println(e);} System.out.println("other statement); }catch(Exception e){System.out.println("handeled");} System.out.println("normal flow.."); } 1. } Java finally block Java finally block is a block that is used to execute important code such as closing connection, stream etc. Java finally block is always executed whether exception is handled or not. Java finally block follows try or catch block. Usage of Java finally Case 1 Let's see the java finally example where exception doesn't occur. class TestFinallyBlock{ public static void main(String args[]){ try{ int data=25/5; System.out.println(data); } catch(NullPointerException e){System.out.println(e);} finally{System.out.println("finally block is always executed");} System.out.println("rest of the code..."); } } Output:5 finally block is always executed rest of the code... Java throw keyword The Java throw keyword is used to explicitly throw an exception. We can throw either checked or uncheked exception in java by throw keyword. The throw keyword is mainly used to throw custom exception. We will see custom exceptions later. The syntax of java throw keyword is given below. 1. throw exception; JAVA PROGRAMMING Page 52 Java throw keyword example In this example, we have created the validate method that takes integer value as a parameter. If the age is less than 18, we are throwing the ArithmeticException otherwise print a message welcome to vote. 1. public class TestThrow1{ static void validate(int age){ if(ageset classpath=c:\folder\mysql-connector-java-5.0.8-bin.jar;.; How to set the permanent classpath Go to environment variable then click on new tab. In variable name write classpath and in variable value paste the path to the mysqlconnector.jar file by appending mysqlconnector.jar;.; as C:\folder\mysql-connector-java-5.0.8-bin.jar; JDBC-Result Sets The SQL statements that read data from a database query, return the data in a result set. The SELECT statement is the standard way to select rows from a database and view them in a result set. The java.sql.ResultSet interface represents the result set of a database query. JAVA PROGRAMMING Page 90 A ResultSet object maintains a cursor that points to the current row in the result set. The term "result set" refers to the row and column data contained in a ResultSet object. The methods of the ResultSet interface can be broken down into three categories −  Navigational methods: Used to move the cursor around.  Get methods: Used to view the data in the columns of the current row being pointed by the cursor.  Update methods: Used to update the data in the columns of the current row. The updates can then be updated in the underlying database as well. The cursor is movable based on the properties of the ResultSet. These properties are designated when the corresponding Statement that generates the ResultSet is created. JDBC provides the following connection methods to create statements with desired ResultSet −  createStatement(int RSType, int RSConcurrency);  prepareStatement(String SQL, int RSType, int RSConcurrency);  prepareCall(String sql, int RSType, int RSConcurrency); The first argument indicates the type of a ResultSet object and the second argument is one of two ResultSet constants for specifying whether a result set is read-only or updatable. Type of ResultSet The possible RSType are given below. If you do not specify any ResultSet type, you will automatically get one that is TYPE_FORWARD_ONLY. Type Description ResultSet.TYPE_FORWARD_ONLY The cursor can only move forward in the result set. ResultSet.TYPE_SCROLL_INSENSITIVE The cursor can scroll forward and backward, and the result set is not sensitive to changes made by others to the database that occur after the result set was created. JAVA PROGRAMMING Page 91 ResultSet.TYPE_SCROLL_SENSITIVE. The cursor can scroll forward and backward, and the result set is sensitive to changes made by others to the database that occur after the result set was created. Concurrencyof ResultSet The possible RSConcurrency are given below. If you do not specify any Concurrency type, you will automatically get one that is CONCUR_READ_ONLY. Concurrency Description ResultSet.CONCUR_READ_ONLY Creates a read-only result set. This is the default ResultSet.CONCUR_UPDATABLE Creates an updateable result set. Viewinga Result Set The ResultSet interface contains dozens of methods for getting the data of the current row. There is a get method for each of the possible data types, and each get method has two versions  One that takes in a column name.  One that takes in a column index. For example, if the column you are interested in viewing contains an int, you need to use one of the getInt() methods of ResultSet − S.N. Methods & Description 1 public int getInt(String columnName) throws SQLException Returns the int in the current row in the column named columnName. 2 public int getInt(int columnIndex) throws SQLException Returns the int in the current row in the specified column index. The column index starts at 1, meaning the first column of a row is 1, the second column of a row is 2, and so on. JAVA PROGRAMMING Page 92 Similarly, there are get methods in the ResultSet interface for each of the eight Java primitive types, as well as common types such as java.lang.String, java.lang.Object, and java.net.URL. There are also methods for getting SQL data types java.sql.Date, java.sql.Time, java.sql.TimeStamp, java.sql.Clob, and java.sql.Blob. Check the documentation for more information about using these SQL data types. For a better understanding, let us study Viewing - Example Code. Updatinga Result Set The ResultSet interface contains a collection of update methods for updating the data of a result set. As with the get methods, there are two update methods for each data type −  One that takes in a column name.  One that takes in a column index. JAVA PROGRAMMING Page 93 For example, to update a String column of the current row of a result set, you would use one of the following updateString() methods − S.N. Methods & Description 1 public void updateString(int columnIndex, String s) throws SQLException Changes the String in the specified column to the value of s. 2 public void updateString(String columnName, String s) throws SQLException Similar to the previous method, except that the column is specified by its name instead of its index. There are update methods for the eight primitive data types, as well as String, Object, URL, and the SQL data types in the java.sql package. Updating a row in the result set changes the columns of the current row in the ResultSet object, but not in the underlying database. To update your changes to the row in the database, you need to invoke one of the following methods. S.N. Methods & Description 1 public void updateRow() Updates the current row by updating the corresponding row in the database. 2 public void deleteRow() Deletes the current row from the database 3 public void refreshRow() Refreshes the data in the result set to reflect any recent changes in the database. 4 public void cancelRowUpdates() Cancels any updates made on the current row. 5 public void insertRow() Inserts a row into the database. This method can only be invoked when the cursor is pointing to the insert row. JAVA PROGRAMMING Page 94 MALLA REDDY COLLEGE OF ENGINEERING & TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING UNIT-5 GUI Programming with java The AWT Class hierarchy Java AWT (Abstract Window Toolkit) is an API to develop GUI or window-based applications in java. Java AWT components are platform-dependent i.e. components are displayed according to the view of operating system. AWT is heavyweight i.e. its components are using the resources of OS. The java.awt package provides classes for AWT api such as TextField, Label, TextArea, RadioButton, CheckBox, Choice, List etc. Java AWT Hierarchy The hierarchy of Java AWT classes are given below. JAVA PROGRAMMING Page 95 Container The Container is a component in AWT that can contain another components like buttons, textfields, labels etc. The classes that extends Container class are known as container such as Frame, Dialog and Panel. Window The window is the container that have no borders and menu bars. You must use frame, dialog or another window for creating a window. Panel The Panel is the container that doesn't contain title bar and menu bars. It can have other components like button, textfield etc. Frame The Frame is the container that contain title bar and can have menu bars. It can have other components like button, textfield etc. Useful Methods of Component class Method Description public void add(Component c) inserts a component on this component. public void setSize(int width,int height) sets the size (width and height) of the component. public void setLayout(LayoutManager defines the layout manager for the component. m) public void setVisible(boolean status) changes the visibility of the component, by default false. Java AWT Example To create simple awt example, you need a frame. There are two ways to create a frame in AWT. o By extending Frame class (inheritance) o By creating the object of Frame class (association) JAVA PROGRAMMING Page 96 AWT Example by Inheritance Let's see a simple example of AWT where we are inheriting Frame class. Here, we are showing Button component on the Frame. import java.awt.*; class First extends Frame{ First(){ Button b=new Button("click me"); b.setBounds(30,100,80,30);// setting button position add(b);//adding button into frame setSize(300,300);//frame size 300 width and 300 height setLayout(null);//no layout manager setVisible(true);//now frame will be visible, by default not visible } public static void main(String args[]){ First f=new First(); }} The setBounds(int xaxis, int yaxis, int width, int height) method is used in the above example that sets the position of the awt button. Java Swing Java Swing tutorial is a part of Java Foundation Classes (JFC) that is used to create window- based applications. It is built on the top of AWT (Abstract Windowing Toolkit) API and entirely written in java. Unlike AWT, Java Swing provides platform-independent and lightweight components. The javax.swing package provides classes for java swing API such as JButton, JTextField, JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser etc. JAVA PROGRAMMING Page 97 Difference between AWT and Swing. No. Java AWT Java Swing 1) AWT components are platform- Java swing components are platform- dependent. independent. 2) AWT components are heavyweight. Swing components are lightweight. 3) AWT doesn't support pluggable look Swing supports pluggable look and and feel. feel. 4) AWT provides less components than Swing provides more powerful Swing. componentssuch as tables, lists, scrollpanes, colorchooser, tabbedpane etc. 5) AWT doesn't follows MVC(Model View Swing follows MVC. Controller) where model represents data, view represents presentation and controller acts as an interface between model and view. Commonly used Methods of Component class Method Description public void add(Component c) add a component on another component. public void setSize(int width,int height) sets size of the component. public void setLayout(LayoutManager sets the layout manager for the component. m) public void setVisible(boolean b) sets the visibility of the component. It is by default false. JAVA PROGRAMMING Page 98 Hierarchy of Java Swing classes The hierarchy of java swing API is given below. Java Swing Examples There are two ways to create a frame: o By creating the object of Frame class (association) o By extending Frame class (inheritance) We can write the code of swing inside the main(), constructor or any other method. Simple Java Swing Example Let's see a simple swing example where we are creating one button and adding it on the JFrame object inside the main() method. File: FirstSwingExample.java JAVA PROGRAMMING Page 99 import javax.swing.*; public class FirstSwingExample { public static void main(String[] args) { JFrame f=new JFrame();//creating instance of JFrame JButton b=new JButton("click");//creating instance of JButton b.setBounds(130,100,100, 40);//x axis, y axis, width, height f.add(b);//adding button in JFrame f.setSize(400,500);//400 width and 500 height f.setLayout(null);//using no layout managers f.setVisible(true);//making the frame visible }} Containers Java JFrame The javax.swing.JFrame class is a type of container which inherits the java.awt.Frame class. JFrame works like the main window where components like labels, buttons, textfields are added to create a GUI. Unlike Frame, JFrame has the option to hide or close the window with the help of setDefaultCloseOperation(int) method. JFrame Example import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.Jpanel; public class JFrameExample { public static void main(String s[]) { JFrame frame = new JFrame("JFrame Example"); JPanel panel = new JPanel(); panel.setLayout(new FlowLayout()); JLabel label = new JLabel("JFrame By Example"); JButton button = new JButton(); button.setText("Button"); panel.add(label); JAVA PROGRAMMING Page 100 panel.add(button); frame.add(panel); frame.setSize(200, 300); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }} JApplet As we prefer Swing to AWT. Now we can use JApplet that can have all the controls of swing. The JApplet class extends the Applet class. Example of EventHandling in JApplet: import java.applet.*; import javax.swing.*; import java.awt.event.*; public class EventJApplet extends JApplet implements ActionListener{ JButton b; JTextField tf; public void init(){ tf=new JTextField(); tf.setBounds(30,40,150,20); b=new JButton("Click"); b.setBounds(80,150,70,40); add(b);add(tf); b.addActionListener(this); setLayout(null); } public void actionPerformed(ActionEvent e){ tf.setText("Welcome"); }} In the above example, we have created all the controls in init() method because it is invoked only once. myapplet.html 1. 2. 3. JAVA PROGRAMMING Page 101 JDialog The JDialog control represents a top level window with a border and a title used to take some form of input from the user. It inherits the Dialog class. Unlike JFrame, it doesn't have maximize and minimize buttons. JDialog class declaration Let's see the declaration for javax.swing.JDialog class. 1. public class JDialog extends Dialog implements WindowConstants, Accessible, RootPaneConta iner Commonly used Constructors: Constructor Description JDialog() It is used to create a modeless dialog without a title and without a specified Frame owner. JDialog(Frame owner) It is used to create a modeless dialog with specified Frame as its owner and an empty title. JDialog(Frame owner, String title, It is used to create a dialog with the specified title, boolean modal) owner Frame and modality. JAVA PROGRAMMING Page 102 Java JDialog Example import javax.swing.*; import java.awt.*; import java.awt.event.*; public class DialogExample { private static JDialog d; DialogExample() { JFrame f= new JFrame(); d = new JDialog(f , "Dialog Example", true); d.setLayout( new FlowLayout() ); JButton b = new JButton ("OK"); b.addActionListener ( new ActionListener() { public void actionPerformed( ActionEvent e ) { DialogExample.d.setVisible(false); } }); Output: d.add( new JLabel ("Click button to continue.")); d.add(b); d.setSize(300,300); d.setVisible(true); } public static void main(String args[]) { new DialogExample(); }} JPanel The JPanel is a simplest container class. It provides space in which an application can attach any other component. It inherits the JComponents class. It doesn't have title bar. JAVA PROGRAMMING Page 103 JPanel class declaration 1. public class JPanel extends JComponent implements Accessible Java JPanel Example import java.awt.*; import javax.swing.*; public class PanelExample { PanelExample() { JFrame f= new JFrame("Panel Example"); JPanel panel=new JPanel(); panel.setBounds(40,80,200,200); panel.setBackground(Color.gray); JButton b1=new JButton("Button 1"); b1.setBounds(50,100,80,30); b1.setBackground(Color.yellow); JButton b2=new JButton("Button 2"); b2.setBounds(100,100,80,30); b2.setBackground(Color.green); panel.add(b1); panel.add(b2); f.add(panel); f.setSize(400,400); f.setLayout(null); f.setVisible(true); } public static void main(String args[]) { new PanelExample(); }} Overview of some Swing Components Java JButton The JButton class is used to create a labeled button that has platform independent implementation. The application result in some action when the button is pushed. It inherits AbstractButton class. JAVA PROGRAMMING Page 104 JButton class declaration Let's see the declaration for javax.swing.JButton class. 1. public class JButton extends AbstractButton implements Accessible Java JButton Example import javax.swing.*; public class ButtonExample { public static void main(String[] args) { JFrame f=new JFrame("Button Example"); JButton b=new JButton("Click Here"); b.setBounds(50,100,95,30); f.add(b); f.setSize(400,400); f.setLayout(null); f.setVisible(true); } } Java JLabel The object of JLabel class is a component for placing text in a container. It is used to display a single line of read only text. The text can be changed by an application but a user cannot edit it directly. It inherits JComponent class. JLabel class declaration Let's see the declaration for javax.swing.JLabel class. 1. public class JLabel extends JComponent implements SwingConstants, Accessible Commonly used Constructors: Constructor Description JLabel() Creates a JLabel instance with no image and with an empty string for the title. JLabel(String s) Creates a JLabel instance with the specified text. JLabel(Icon i) Creates a JLabel instance with the specified image. JLabel(String s, Icon i, int Creates a JLabel instance with the specified text, horizontalAlignment) image, and horizontal alignment. JAVA PROGRAMMING Page 105 Commonly used Methods: Methods Description String getText() t returns the text string that a label displays. void setText(String text) It defines the single line of text this component will display. void setHorizontalAlignment(int It sets the alignment of the label's contents along alignment) the X axis. Icon getIcon() It returns the graphic image that the label displays. int getHorizontalAlignment() It returns the alignment of the label's contents along the X axis. Java JLabel Example import javax.swing.*; class LabelExample { public static void main(String args[]) { JFrame f= new JFrame("Label Example"); JLabel l1,l2; l1=new JLabel("First Label."); l1.setBounds(50,50, 100,30); l2=new JLabel("Second Label."); l2.setBounds(50,100, 100,30); f.add(l1); f.add(l2); f.setSize(300,300); f.setLayout(null); f.setVisible(true); } } JAVA PROGRAMMING Page 106 JTextField The object of a JTextField class is a text component that allows the editing of a single line text. It inherits JTextComponent class. JTextField class declaration Let's see the declaration for javax.swing.JTextField class. 1. public class JTextField extends JTextComponent implements SwingConstants Java JTextField Example import javax.swing.*; class TextFieldExample { public static void main(String args[]) { JFrame f= new JFrame("TextField Example"); JTextField t1,t2; t1=new JTextField("Welcome to Javatpoint."); t1.setBounds(50,100, 200,30); t2=new JTextField("AWT Tutorial"); t2.setBounds(50,150, 200,30); f.add(t1); f.add(t2); f.setSize(400,400); f.s etLayout(null); f.setVisible(true); } } Java JTextArea The object of a JTextArea class is a multi line region that displays text. It allows the editing of multiple line text. It inherits JTextComponent class JTextArea class declaration Let's see the declaration for javax.swing.JTextArea class. 1. public class JTextArea extends JTextComponent Java JTextArea Example JAVA PROGRAMMING Page 107 import javax.swing.*; public class TextAreaExample { TextAreaExample(){ JFrame f= new JFrame(); JTextArea area=new JTextArea("Welcome to javatpoint"); area.setBounds(10,30, 200,200); f.add(area); f.setSize(300,300); f.setLayout(null); f.setVisible(true); } public static void main(String args[]) { new TextAreaExample(); }} Simple Java Applications import javax.swing.JFrame; import javax.swing.SwingUtilities; public class Example extends JFrame { public Example() { setTitle("Simple example"); setSize(300, 200); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { Example ex = new Example(); ex.setVisible(true); }} JAVA PROGRAMMING Page 108 Layout Management Java LayoutManagers The LayoutManagers are used to arrange components in a particular manner. LayoutManager is an interface that is implemented by all the classes of layout managers. BorderLayout The BorderLayout provides five constants for each region: 1. public static final int NORTH 2. public static final int SOUTH 3. public static final int EAST 4. public static final int WEST 5. public static final int CENTER Constructors of BorderLayout class: o BorderLayout(): creates a border layout but with no gaps between the components. o JBorderLayout(int hgap, int vgap): creates a border layout with the given horizontal and vertical gaps between the components. Example of BorderLayout class: import java.awt.*; Output: import javax.swing.*; public class Border { JFrame f; Border() { f=new JFrame(); JButton b1=new JButton("NORTH");; JButton b2=new JButton("SOUTH");; JButton b3=new JButton("EAST");; JButton b4=new JButton("WEST");; JButton b5=new JButton("CENTER");; f.add(b1,BorderLayout.NORTH); f.add(b2,BorderLayout.SOUTH); f.add(b3,BorderLayout.EAST); f.add(b4,BorderLayout.WEST); f.add(b5,BorderLayout.CENTER); f.setSize(300,300); f.setVisible(true); } public static void main(String[] args) { new Border(); }} JAVA PROGRAMMING Page 109 Java GridLayout The GridLayout is used to arrange the components in rectangular grid. One component is displayed in each rectangle. Constructors of GridLayout class 1. GridLayout(): creates a grid layout with one column per component in a row. 2. GridLayout(int rows, int columns): creates a grid layout with the given rows and columns but no gaps between the components. 3. GridLayout(int rows, int columns, int hgap, int vgap): creates a grid layout with the given rows and columns alongwith given horizontal and vertical gaps. Example of GridLayout class 1. import java.awt.*; 2. import javax.swing.*; public class MyGridLayout{ JFrame f; MyGridLayout(){ f=new JFrame(); JButton b1=new JButton("1"); JButton b2=new JButton("2"); JButton b3=new JButton("3"); JButton b4=new JButton("4"); JButton b5=new JButton("5"); JButton b6=new JButton("6"); JButton b7=new JButton("7"); JButton b8=new JButton("8"); JButton b9=new JButton("9"); f.add(b1);f.add(b2);f.add(b3);f.add(b4);f.add(b5); f.add(b6);f.add(b7);f.add(b8);f.add(b9); f.setLayout(new GridLayout(3,3)); //setting grid layout of 3 rows and 3 columns f.setSize(300,300); f.s etVisible(true); } public static void main(String[] args) { new MyGridLayout(); }} Java FlowLayout The FlowLayout is used to arrange the components in a line, one after another (in a flow). It is the default layout of applet or panel. Fields of FlowLayout class 1. public static final int LEFT 2. public static final int RIGHT 3. public static final int CENTER 4. public static final int LEADING 5. public static final int TRAILING JAVA PROGRAMMING Page 110 Constructors of FlowLayout class 1. FlowLayout(): creates a flow layout with centered alignment and a default 5 unit horizontal and vertical gap. 2. FlowLayout(int align): creates a flow layout with the given alignment and a default 5 unit horizontal and vertical gap. 3. FlowLayout(int align, int hgap, int vgap): creates a flow layout with the given alignment and the given horizontal and vertical gap. Example of FlowLayout class import java.awt.*; import javax.swing.*; public class MyFlowLayout{ JFrame f; MyFlowLayout(){ f=new JFrame(); JButton b1=new JButton("1"); JButton b2=new JButton("2"); JButton b3=new JButton("3"); JButton b4=new JButton("4"); JButton b5=new JButton("5"); f.add(b1);f.add(b2);f.add(b3);f.add(b4);f.add(b5); f.setLayout(new FlowLayout(FlowLayout.RIGHT)); //setting flow layout of right alignment f.setSize(300,300); f.s etVisible(true); } public static void main(String[] args) { new MyFlowLayout(); }} Event Handling Event and Listener (Java Event Handling) Changing the state of an object is known as an event. For example, click on button, dragging mouse etc. The java.awt.event package provides many event classes and Listener interfaces for event handling. Types of Event The events can be broadly classified into two categories:  Foreground Events - Those events which require the direct interaction of user.They are generated as consequences of a person interacting with the graphical components in Graphical User Interface. For example, clicking on a button, moving the mouse, entering a character through keyboard,selecting an item from list, scrolling the page etc.  Background Events - Those events that require the interaction of end user are known as JAVA PROGRAMMING Page 111 background events. Operating system interrupts, hardware or software failure, timer expires, an operation completion are the example of background events. Event Handling Event Handling is the mechanism that controls the event and decides what should happen if an event occurs. This mechanism have the code which is known as event handler that is executed when an event occurs. Java Uses the Delegation Event Model to handle the events. This model defines the standard mechanism to generate and handle the events.Let's have a brief introduction to this model. The Delegation Event Model has t

Use Quizgecko on...
Browser
Browser