04/07/041 Intro to JAVA By: Riyaz Malbari. 04/07/042 History of JAVA Came into existence at Sun...

25
04/07/04 1 Intro to JAVA By: Riyaz Malbari
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    1

Transcript of 04/07/041 Intro to JAVA By: Riyaz Malbari. 04/07/042 History of JAVA Came into existence at Sun...

04/07/04 1

Intro to JAVAIntro to JAVA

By:Riyaz Malbari

04/07/04 2

History of JAVAHistory of JAVA Came into existence at Sun Microsystems, Inc.

in 1991. Was initially called “Oak” but was renamed

JAVA. Originally it was not developed for the Internet

but as a software to be embedded in various consumer electronic devices.

Derives much of its character from C/C++.

04/07/04 3

Types of ProgramsTypes of Programs

Applications a program that runs on

the computer, under its operating system.

it is like a normal program created using C/C++.

Applets a tiny JAVA program that

can be transmitted over the Internet.

it is an intelligent program.

04/07/04 4

BytecodeBytecode

output of a JAVA compiler is Bytecode. executed by the JAVA run-time system, which is

called the JAVA Virtual Machine (JVM). creates truly portable programs. assures security while downloading programs

over the Internet.

04/07/04 5

JAVA Virtual MachineJAVA Virtual Machine

04/07/04 6

Object-Oriented ProgrammingObject-Oriented Programming

The core of JAVA

Encapsulation Inheritance Polymorphism

04/07/04 7

A simple programA simple program /* A program to display the message Hello World.

Call this file “hello.java”. */

class hello { // The program begins with a call to main(). public static void main (String args [ ]) { System.out.println (“Hello World.”) ; } }

save as text file hello.java

at command line type>javac hello.java

execute program by typing>java hello

04/07/04 8

Data TypesData Types

Type Size Range

byte 8 bits -128 to 127

short 16 bits -32768 to 32767

int 32 bits -2147483648 to 2147483647

long 64 bits -9223372036854775808 to 9223372036854775807

float 32 bits 1.7e-308 to 1.7e308

double 64 bits 3.4e-038 to 3.4e038

char 16 bits 0 to 65536

boolean --------- true or false

04/07/04 9

VariablesVariables

basic unit of storage a combination of an identifier, a type and an optional initializer Syntax: type identifier [=value][, identifier[=value],…]; eg. int a,b,c;

int d=4, e, f=7; byte w=12;

double pi=3.14159; char x=‘x’; Dynamic initialization:

class DyIn { public static void main (String args[ ]) { double a=3.0, b=4.0 ; double c=Math.sqrt (a*a+b*b) ; // c is dynamically initialized System.out.println (“Hypotenuse is “ + c);

} }

04/07/04 10

Variable scopeVariable scope scope is defined by a block { } variables that are defined within the scope are not visible to the code that is defined outside the scope. scopes can be nested objects declared in the outer scope will be visible to code within the inner scope eg. class Scope {

public static void main (String args[ ]) { int x ; // known to all code within main

x=10; if (x= =10) {

int y=20; // known only to this block System.out.println (“x and y:” + x + “ “ + y +) ; x=y*2; } y = 100; // y is unknown here and so there is a compile-time error

} } variables declared in the inner and outer scope cannot have the same name eg. class scopeerr {

public static void main (String args[ ]) { int a=10;

{ int a=20; // Compile-time error as variable ‘a’ is already defined } } }

04/07/04 11

ArraysArrays collection of variables of the same data type addressed by a common name an array element is accessed by its index can have one or more dimensions one-dimensional array:

declaration: type var_name[ ]; eg. int month[];allocation: var_name=new type[size]; eg. month = new int[12];

both can be done together: int month[ ] = new int[12];assignment: month[0] = 31;

month[1] = 28; values can also be assigned during declaration:

int month[ ] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; Multi-dimensional arrays: int twoD[ ][ ] = new int[2][3];

[0][0] [0][1] [0][2][1][0] [1][1] [1][2]

04/07/04 12

ClassClass fundamental concept in JAVA defines a data type which can be used to create objects of that type class is a template for an object and object is an instance of a class declared by the class keyword Syntax: class classname

type var; type methodname (parameter list) {

// body of method }

Class

MethodsInstance variables

Class Members

04/07/04 13

Example…Example…

class Box { double width;

double height; // This class declares an object of type Box. double depth; }

class BoxDemo { public static void main (String args[ ]) { Box mybox = new Box(); // An object called mybox is created double vol;

// Assign values to mybox’s instance variables. mybox .width = 10; mybox .height = 20; mybox .depth = 15; vol = mybox .width * mybox .height * mybox .depth;

System.out.println (“The volume is “ + vol) ; }}

Save the file as BoxDemo.java Compilation creates two .class files, one for Box and the other for BoxDemo Execute the BoxDemo.class file

04/07/04 14

changing the instance variables of one object have no effect on that of another

class Box { double width;

double height; double depth; }

class BoxDemo { public static void main (String args[ ]) { Box mybox1 = new Box();

Box mybox2 = new Box(); double vol;

mybox1 .width = 10; mybox1 .height = 20; mybox 1.depth = 15;

mybox2 .width = 3; mybox2 .height = 6; mybox2 .depth = 9;

vol = mybox1 .width * mybox1 .height * mybox1 .depth;System.out.println (“The volume is “ + vol) ;

vol = mybox2 .width * mybox2 .height * mybox2 .depth;System.out.println (“The volume is “ + vol) ;

}}

04/07/04 15

adding a method to the box class…

class Box { double width;

double height; double depth;

void volume() { System.out.println (“Volume is ” + (width * height * depth)) ; } }

class BoxDemo { public static void main (String args[ ]) { Box mybox = new Box(); double vol;

mybox .width = 10; mybox .height = 20; mybox .depth = 15;

mybox .volume(); }}

04/07/04 16

Returning a value… class Box {

double width; double height; double depth;

double volume() { return width * height * depth ; } }

class BoxDemo { public static void main (String args[ ]) { Box mybox = new Box(); double vol;

mybox .width = 10; mybox .height = 20; mybox .depth = 15;

vol = mybox .volume();System.out.println (“Volume is “ + vol) ;

}}

04/07/04 17

ConstructorsConstructors initializes the object immediately upon creation has the same name as that of the class class Box {

double width; double height; double depth;

Box() { // A constructor for the Box class width = 10; height = 20;

depth = 15; }

double volume() { return width * height * depth ; } }

class BoxDemo { public static void main (String args[ ]) { Box mybox = new Box(); double vol;

vol = mybox .volume();System.out.println (“Volume is “ + vol) ;

}}

04/07/04 18

Method OverloadingMethod Overloading

implementation of polymorphism two or more methods within the same class have the same name but different parameter declarations overloaded methods must differ in the type and/or number of their parameters class OverloadDemo {

void test() { System.out.println (“No parameters”) ; } void test(int a) { // Overload test for one integer parameter System.out.println (“a: ” + a) ; }

void test(int a, int b) { // Overload test for two integer parameters System.out.println (“a and b: ” + a + “ “ + b) ; } } class Overload { public static void main (String args[ ]) { OverloadDemo ob = new OverloadDemo() ; ob.test(); ob.test(10); ob.test(10, 20);

} }

04/07/04 19

InheritanceInheritance

defines a general class that defines traits common to a set of related items other specific classes add things that are unique to it a class that is inherited is called a superclass while the one that does the inheriting is called the subclass the extends19 keyword is used to inherit a class multilevel hierarchies can be created

04/07/04 20

class A { // Creating a superclass A

int i, j;

void showij() {

System.out.println (“i and j: “ + i +” “ + j) ;

}

}

class B extends A { // Creating a subclass B by extending class A

int k;

void showk() {

System.out.println (“k: “ + k) ;

}

void sum() {

System.out.println (“i + j + k: “ + (i +j + k)) ;

}

}

class Inheritance {

public static void main (String args[]) {

A superOb = new A();

B subob = new B();

superOb.i = 10;

superOb.j = 20;

superOb.showij();

subOb.i = 3;

subOb.j = 6;

subOb.k = 9;

subOb.showij();

subOb.showk();

subOb.sum();

}

}

04/07/04 21

PackagesPackages partitions the class name space classes defined in a package are not accessible by code outside that package syntax: package package_name; the import statement is used to bring certain packages or the entire package into visibility

package Demo;class Balance { String name;

double bal; Balance(String n, double b) {

name = n; bal = b; } void show() { System.out.println(name + “: $” + bal) ; } } class AccBal { public static void main(String args[ ]) { Balance current[] = new Balance[3] ; current[0] = new Balance(“Bush”, 0.99); current[1] = new Balance(“Donald”, 9.99);

current[2] = new Balance(“Rice”, 19.99); for (int i=0; i<3; i++) current[i].show() ; } }

04/07/04 22

Access SpecifiersAccess Specifiers

public No restrictions. Accessible from anywhere.

private Only accessible from within the class.

package Accessible from package members.

protected Also accessible from subclasses and package members.

04/07/04 23

JAVA for SecurityJAVA for Security

Basic concepts:

Authentication Authorization Confidentiality Integrity

JAVA tools:

JAAS (JAVA Authentication And Authorization Service) JSSE (JAVA Secure Socket Extensions) GSS-API (JAVA Generic Security Service Application Programming

Interface)

04/07/04 24

JAVA Security MechanismsJAVA Security Mechanisms

Authentication Authorization Confidentiality Integrity

JAAS X X

JSSE X X X

GSS-API X X X

04/07/04 25

Thank you!Thank you!