Java

advertisement
CSE 252 Principles of Programming
Languages Lab. Section
WEEK 1
INTRODUCTION TO JAVA
by:
R.A. Kemal Çağrı Serdaroğlu
WEEK 1
 What is Java Programming Language?
 Java Programming Basics: Java vs C.
 Using Classes at Java API.
What is Java Programming Language?
 Java is an high level programming language in the tradition of
C and C++.
 Java is a platform independent programming language.
Platform independence means any program written in a
language can run all operating system platforms.
 Java is an OOP(Object Oriented Programming) Language.
 OOP Languages are based on objects and classes.
JVM (Java Virtual Machine)
 The compilation phase of Java is different than C’s.
 Virtual Machines are hypothetical computer platforms e.g. a
design for a computer that does not really exist on any actual
computer.
 JVM is a kind of VM that is an implementation environment
of a Java Application.
 Java is a platform independent language so it needs JVM.
 JRE(Java Runtime Environment) is an emulation tool that
creates a JVM environment that can execute Java programs.
JRE and JVM
 For running an application written in Java Language, the JRE
must be installed on any computer.
 JRE and JVM are used for running a java program.
 Programs intended to run on a JVM must be compiled into a
standardized portable binary format, which typically comes
in the form of .class files.
JDK(Java Development Kit)
 SDK(Software Development Kit)s are typical set of
development tools for creation of applications.
 JDK is an extension of a SDK which can be used for creation
of java applications.
 JDK is used for creating .class files from .java source files. So
it must be installed at a computer for creating java
applications.
Basics of a Typical Java Environment
Java programs normally undergo five phases
- Edit (JDK):Programmer writes program(.java files) and stores
program on disk
- Compile(JDK):Compiler creates bytecodes (.class files) from
program(.java files)
- Load(JVM):Class loader stores bytecodes in memory
- Verify(JVM) :Verifier ensures bytecodes do not violate
security requirements
-Execute(JVM):Interpreter translates bytecodes into machine
language
Learning Java
 Two groups for learning for java.
 Basic Java Syntax: Variables – Loops – Conditional Statements –
Class – Interface – Inheritence – Polymorphism etc…
 Java API (Application Programming Interface): set of classes and
interfaces that comes with the JDK. Java API is the collection of
libraries(packages) for java program development. Example of
libraries at Java API: File IO, Swing, Math… etc
You will learn how to use Java API for developing a java
application with the help of Java Syntax tools and Object Oriented
Programming concepts such as Classes, Inheritence and
Polymorphism.
Java Programming Basics
(1) Java is an OOP (Object Oriented Programming)
Language.OOP languages uses objects consisting of data
fields(variables) and methods(funcitons) together with
their interactions.
(2) Learning OOP concepts are not a straight-forward process
and a new concept for a student who knows C language. C
is a functional programming language.
(3) OOP has new programming techniques such as
encapsulation, inheritence and polymorphism.
Java Programming Basics
(4) Java API is an important source for developing programs.
Java API consists of basic classes and the elements of JavaAPI
have some OOP concepts.Hence, the basic usage of Java API
requires the basic information of OOP.
The developers must know OOP concepts for program
development in Java. The basic learning of Java starts at
learning OOP concepts !!!
Java Programming Basics
 Every programming languages has a syntax..
 Java has a C-like syntax and there will be similarities with C.
 Of course there will be differences between C language.
Java vs C
(1) Programming Language Structure
C
Java
Type of language
Functional, not OOP OOP
Basic
programming str.
functions.
objects.
Main method
int main(){
…
return 0;
}
public class ExampleClass{
public static void
main(String[] args){
…
}
}
It is required to define a class.
Java vs C
(1) Programming Language Structure
C
File names
File Names
Java
No
1) Ends with .java
constrai
nt, ends
2) File name must be the name with class name.
with .c
Example: ExampleClass.java:
public class ExampleClass{
public static void main(String[] args){
}
}
Java vs C
(1) Programming Language Structures
C
Java
Variable declaration
At the beginning of the
block
Before using it
Variable declaration
int main(void){
int a,b;
a=5;
b=3;
return 0;
}
public class
ExampleClass{
public static void
main(String[] args){
int a;
a=5;
int b;
b=3;
}
Java vs C
(1) Programming Language Structure
C
Java
Accessing a library
#include <stdio.h>
import java.io
Memory address
pointer
Reference
Java vs C
(2) HelloWorld Application & User Interaction
C
Java
#include<stdio.
h>
public class HelloWorld {
int main(void)
public static void main(String[]
args) {
Hello,Wor {
printf("Hell
System.out.println("Hello");
ld
o\n");
}
return 0;
}
}
Java vs C
(2) HelloWorld Application and User Interaction
C
printf (Using int a;
not
a=3;
formatted)
(1)
printf(“A is %d”,a);
Java
int a;
a=3;
System.out.print(“A is ” + a);
Java vs C
(2) HelloWorld Application and User Interaction
C
Java
int a;
a=3;
System.out.print(“A is ” + a + “\n”);
printf(Usin
int a;
g not
----------------formatted)
printf(“A is %d\n”,a);
(2)
int a;
a=3;
System.out.println(“A is ” + a);
Java vs C
(2) HelloWorld Application and User Interaction
C
Java
#include
<stdio.h>
import java.util.Scanner;
int
public class UserInteraction {
main(void){
public static void main(String[] args) {
Scanner userIn = new
int num;
Scanner(System.in);
scanf
int num=userIn.nextInt();
scanf(“%d”,&n
System.out.println(num);
um);
}
printf(“%d”,n
}
um);
}
C
Java
Java vs C
int max(int a,int b){}
----------------(2)
HelloWorld Application and User Interaction
Example:
static int max(int a,int b){}
#include <stdio.h>
------public class FunctionExample {
public static void main(String[] args){
int a=max(4,15);
System.out.println(a);
int max(int a,int b){
Cfunction
}
s
return a>b?a:b;
}
static int max(int a,int b){
return a>b?a:b;
}
int main(){
int a=max(4,15);
printf("%d\n",a);
return 0;
}
}
Java vs C
C
short 16 bit.
integer types
int usually 32 bit 2's
complement;
long usually 32 bit 2's
complement
Java
short 16 bit.
int is 32 bit 2's
complement;
long is 64 bit 2's
complement
floating point types
float usually 32 bit;
double usually 64 bit
float is 32 bit(same)
double is 64 bit (same)
boolean type
use int: 0 for false,
nonzero for true
boolean is its own type stores value true or false
char is usually 8 bit ASCII
char is 16 bit UNICODE
-------------
------------------------
char c;
char c;
c=’a’;
c=’a’;
character type
Java vs C
 Comments
Comments are same !!!
Java vs C
 If-Switch Statements:
C
if(1)
Java
if(1){} is not accepted
if(1){}
if(true){} is used
if(2)
if(x==5){}
İf(x==5){}
if(3)
if(x==5 && x!=6 || x<7){}
if(x==5 && x!==6 || x<7){}
boolean f=true;
if(f){
if(4)
No boolean expression
System.out.println(“true is
“ + f);
}
Java vs C
 Loops
C
For loop
Java
int i;
for(int i=0;i<N;i++){}
for(i=0;i<N;i++){}
While(1){} is not accepted!!
while(true){}
While loop (1) while(1){}
-------------------------boolean t=true;
while(t){}
Java vs C
 Loops
C
Java
int i=3;
int i=3;
while(i<5){
while(i<5){
i++;
i++;
}
}
while(1){
while(true){
if(x==0){break;}
if(x==0){break;}
}
}
int i=10;
int i=10;
while(i>0){
while(i>0){
if(i==5){continue;}
if(i==5){continue;}
i--;
i--;
}
}
While loop(2)
break
continue
Using Classes at Java API
Look at this example:
import java.util.Scanner;// --- (1)
public class UserInteraction {
public static void main(String[] args)
{
Scanner userIn = new
Scanner(System.in); // --- (2)
int num=userIn.nextInt();// -- (3)
System.out.println(num);
}
}
Using Classes at Java API
 (1)
import java.util.Scanner;
Scanner is a class which is existed in Java API and it is at
java.util package under Java API. In our program, we want
to use it so we must import this class.
import java.util.*;
If we want to use more classes at java.util package, we will
use the statement above.
Using Classes at Java API
 (2)
Scanner userIn = new Scanner(System.in);
Here, we want to use a Scanner object in our program.
object  the meaningful structure which has behaviours and
variables for a program. Objects are allocated at the memory.We
must create objects of the classes in Java API to have
functionalities.
class  programming structure which defines the behaviour and
variable types of an object. For Java API classes, we don’t know the
structure of a class. They serve functionalities for our programs so
we use instances of them.
Using Classes at Java API
 (2)
Scanner userIn = new Scanner(System.in);
new Scanner(System.in)  creates an object
with Scanner type. Scanner is a class. Memory is allocated for
storing fields at Scanner class. If this line will be
implemented without an assign operation, the program
cannot access fields or methods of the object.
Scanner userIn = new Scanner(System.in); This
assignment operation is used for accessing object after creation of it.
userIn is the accessor for created Scanner object and we can use it for
accessing this object’s variables and methods.
Using Classes at Java API
 (3)
int num=userIn.nextInt();
userIn is the accessor for our new created object.
Here we want to use object’s nextInt() method.
userIn is here a reference type and it is like a pointer at C.
However, reference types have no pointer arithmetic and they
access memory safely.
Primitive Types
 Primitive types at Java are : int, short, long, boolean, char,
float, double
Example:
int a; // (1)
a=500; // Assigning to a primitive type (2)
Reference Types
 Other types are in java are reference types.
 Reference types look like a pointer.
 You cannot access any other memory address using pointer
arithmetic.
 In Java, objects are accessible with a reference type.
 Arrays are too reference types.
Reference Type Example(1)
String s=“Kemal”; // alias to String s=new String(“Kemal”);
Reference Type Example(2)
String s=“Kemal”; // (1)
s=“Ali”; //(2)
Reference Type Example(3)
Scanner s=new Scanner(System.in);// object creation (1)
Scanner t=new Scaner(System.in); // object creation(2)
Reference Type Examples(4)
Scanner s=new Scanner(System.in);// object creation (1)
s=new Scaner(System.in); // object creation(2)
// Same with example 2
Arrays
Arrays are reference types at Java.
Creation of an array (1): Primitive Type Array:
Download