33
Objectives of this course • To get a thorough knowledge of Core java • To get an experience of SCJP exam through mock tests • To motivate the students to appear for java certification exam

Language Fundamentals

Embed Size (px)

Citation preview

Page 1: Language Fundamentals

Objectives of this course• To get a thorough knowledge of Core java• To get an experience of SCJP exam through mock tests• To motivate the students to appear for java certification exam

Page 2: Language Fundamentals

The Java programmer exam covers:• Declaration and Access control• Flow control and exception handling• Garbage collection• Language fundamentals• Operators and assignments• Overloading, Overriding Runtime type and

object Orientation• Threads• The java.awt package---layout• The java.lang package• The java.util package

Page 3: Language Fundamentals

Briefly about the SCJP2 exam• The Programmer exam (SCPJ2) exam is multiple

choice examination, testing the candidate’s knowledge of the java language and its usage

• To appear for the test, one has to obtain an examination voucher from Sun Educational services after paying the examination fee at any of the registered testing centers.

• The exam consists of 72 questions which have to be answered in 210 minutes.

• Immediately after the exam is over, the candidate is indicated whether he/she has passed or failed.

• Those passing the exam will immediately receive a temporary certificate.

Page 4: Language Fundamentals

• Topics that will be covered today• Fundamentals of java programming• Various data types and their characteristics• Basic structure of a java program• Objects and their creation

Page 5: Language Fundamentals

Basics of Java Programming• Classes- Abstraction is an important concept of object oriented languages which is

implemented through an entity called ‘Class’. Everything in Java must be encapsulated in a class. Thus Java is a truly object oriented language.

• Objects- The classes are instantiated through objects. In Java objects are manipulated through object references or simply references. The process of creating objects in Java involves the following steps:

– Declaration of reference variable to store the reference to an object Syntax: classname reference-variable-name

– Creating an object This involves use of new operator, together with a call to a method of a class called constructor of class syntax: reference-variable-name= new class-name()

The new keyword returns a reference to a new instance of a class.• Each object has a unique identity and has its own copy of variables declared in the

class definition

Page 6: Language Fundamentals

• The declaration and instantiation can also be combined in one statement as:

A a1= new A(10);

• A reference provides a handle to the object created and stored in memory.

• An object can have several references created through aliasing

A a1= new A(10); A b1= new A(); b1=a1; // alias

Object referenceKeyword

new operatorConstructor of

class A

Object

After aliasing, the object referenced by b1 initially is free and can be garbage collected

Page 7: Language Fundamentals

• Instance members- Each object created will have its own instance of member variables and methods defined in a class. The values of the variables in an object comprise its state. Two distinct objects can have same state if their variables have same values.

• Static members- There are cases when certain members should only belong to the class, and not be part of any object created from the class. A static variable is initialized when the class is loaded at runtime. Similarly a class can have static methods that belong only to the class and not to any objects of the class. Static variables are declared with keyword static in their declaration.

Page 8: Language Fundamentals

• For example:• You have a class car and two objects: c1 and c2

• C1 has member variables: color No_of_gears• C2 also has member variables : color No_of_gears• If for C1, color=red and no_of_gear=2, this represents the state of C1 only

and has nothing to do with C2. Such variables which are associated with a particular object rather than a class as a whole, are called instance variables as they belong to an instance of car class

• Similarly, if we have a variable type_of_engine and it holds some value for car class rather than for C1 and C2. Such a variable is called static variable and its value will be same for both the objects. If any object changes the value of static variable, that change will be visible to both the objects

Page 9: Language Fundamentals

• Local variables- Variables that are declared inside a function in a class are called local variables of that function and their scope is limited to that function in which they are declared.

Page 10: Language Fundamentals

Types of Java programs• Two types of programs are there in Java

– Standalone programs– Applets

• A standalone Java application is a source code compiled and directly executed. In order to create a standalone application in java, program must define a class with a special method called main().

• Applets are java programs that must be run in other applications such as web browsers. The appletviewer provided with JDK can be used to test applets

Page 11: Language Fundamentals

• Java Source File Structure• A Java source File structure has the following

elements specified in the following order:• An optional package declaration to indicate the

package name in which classes of the program are included. If no package is indicated, all the classes are included in a default package.

• Zero or more import statements included to import particular package or for importing a particular class of a package.

• Any number of class and interface definitions. The class and interface can be defined in any order.

Page 12: Language Fundamentals
Page 13: Language Fundamentals

Compiling and running a standalone Program• Java is a compiled and interpreted language. Thus a

program created in java is first compiled by a java compiler. The command to compile a java program is :

javac filename.java filename has to be the name of the class with main()

function(case-sensitive)• After compilation, the machine independent Byte code is

created which is represented by a .class file.• This byte code is further interpreted by a java interpreter.

The interpreter is called the Java Virtual machine or JVM which is contained in JDK. The command to invoke java interpreter is

java filename No extensions as it is machine independent code

Page 14: Language Fundamentals

• The java interpreter executes a method called main in class specified on the command line. This is the standard way in which a standalone application is invoked

public static void main(String ar[]){ } The public accessibility with main function signifies that

this function is accessible to every class. static denotes that this function belong to class and not to an object. void signifies that main function does not return any value. By default, the main function takes an array of String class objects as argument. The values are given to the array from command line arguments.

Page 15: Language Fundamentals

Key points of a java program There can be any number of classes in a Java

program but there can be only one public class that will contain the main function.

The name of the Java program has to be the same as the name of the class containing the main function with the extension . java

Java is a case sensitive language By default, in Java API(Application programming

interface), each class name starts with a capital letter and package name starts with a small letter.

Each class in the Java program is compiled into its separate class file

Page 16: Language Fundamentals

Language Building BlocksLike any other programming language, Java language is also defined by grammar rules that specify how syntactically legal constructs can be formed using the language elements.• identifiers- A name in a program is called an identifier. Identifiers can be used to denote classes, methods and variables.• In Java identifier is composed of a sequence of characters, where each character can be either a letter, a digit , a connecting punctuation (underscore) or any currency symbol and cannot start with a digit

Page 17: Language Fundamentals

• Keywords are reserved identifiers that are predefined in a language and cannot be used to denote other entities.

Page 18: Language Fundamentals

Keywords in Java

Page 19: Language Fundamentals

Reserved keywords not currently in use const gotoReserved literals in Java null true false

Page 20: Language Fundamentals

• Literals- A literal denotes a constant value.This value can be numerical value (integer or float), a character value, a boolean or a string.In addition there is a null literal to denote the null reference.

• Integer literals- Integer data types are composed of following primitive types:

byte ,short, int and long The default type of an integer literal is int but it

can be specified as long by appending the suffix l(or L) to the integer value.

No suffix is required for a short or a byte literal

Page 21: Language Fundamentals

• Octal and hexadecimal numbers- In addition to decimal number system, integer literals can also be specified in octal(base 8) and hexadecimal(base 16) number systems

• In Java , octal and hexadecimal numbers are specified with 0 and 0x prefix respecitvely.

• Floating point literal- Floating point data types come in two flavors:

• float and double• Default type of a floating point literal is

double. A floating point literal can be declared as float by adding a suffix f(or F) at the end.

Page 22: Language Fundamentals

• Boolean literal- boolean truth values are indicated by keywords true and false.

• Character literal- A character literal is indicated by enclosing the character in single quotes(’ )

• Escape sequences- Certain escape sequences define special character values

• String literals-A string literal is a sequence of characters which must be quoted in quotation marks (“).

• White spaces- Sequence of spaces, tabs and line terminator characters. A java program is a free form sequence of characters

Page 23: Language Fundamentals
Page 24: Language Fundamentals

• Comments- three types of comments are there in Java

• Single line //• Multiple-line /* */• A documentation comment /** */ ---used by javadoc facility to generate HTML documentation of the program

Page 25: Language Fundamentals

• Primitive data types- • Integer---byte, short, int and long . All are

signed integers• Character --- char data type represents the

character .Represents the symbols in unicode character set.

• Floating point types: float and double• Boolean type- datatype boolean represents the

truth values true and false• The above given are the atomic data types and

are not objects. Each primitive data type has its own wrapper class that can be used to represent the primitive as an object

Page 26: Language Fundamentals

• Variable declarations – Variables in Java come in three forms

• Instance variables- That are members of a class and are instantiated for each object of the class.

• Static variables- Also members of a class but these are not instantiated for any object and therefore belong to the class

• Local variables( or automatic variables)- declared in methods, in blocks and are instantiated for each invocation of the method or block.

Page 27: Language Fundamentals

• Declaration of a variable- A variable stores value of a datatype.

• int a;

• int a=10;

• In objects, these variables are called reference variables as they store reference or handle to an object

DatatypeName of variable

Declaration of variable

Declaration and initialization of variable

Page 28: Language Fundamentals

• Range of integer/real and character values

Page 29: Language Fundamentals

Float and double data type represents three additional constants. The special value NaN called “Not a Number” that occurs as the result of undefined mathematical operations. The values POSITIVE_INFINITY and NEGATIVE_INFINITY representing infinity values in positive and negative direction.

The range of character is 0 to 216 -1

Page 30: Language Fundamentals

• Wrapper classes- Wrapper classes for primitive data types are found in java.lang package. For each primitive data type , there is a corresponsing wrapper class. All the wrapper classes of integers (Byte, Short, Integer, and Long) and for floating point numbers (Float and Double)are subclasses of the java.lang.Number class

Page 31: Language Fundamentals

• Initial values for variables- The default values for the member variables of a class are

• boolean false• char ‘\u0000’• integer(byte,short,int,long) 0• Floating point(float, double) 0.0F or 0.0D• Object reference null

Page 32: Language Fundamentals

• Key points for variable initializationStatic variables are initialized to default values

when class is loaded, if they are not initializedinstance variables are also initialized to default

values when class is instantiated, if they are not initialized

Local variables are not initialized by default and have to be explicitly initialized before use, else the compiler will complain that the variable is not initialized.

Local reference variables are also not initialized by default and have to be explicitly initialized before use, else the compiler will throw NullPointerException

Page 33: Language Fundamentals

• A simple Java Program to print hello on screen class A { static int k; int i; public static void main(String ar[]) { int j=12; System.out.println(“hello” +j); } }

Static member variable

Non-static member variable

Local variable

Member method

Name of the class

A predefined class

An object of Printstream class

Method of Printstream class

String argument of println method