overview of the java programming language (2011 edition)

46
Overview of the Java Programming Language (2011 edition)

Upload: silvester-flynn

Post on 05-Jan-2016

217 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Overview of the Java Programming Language (2011 edition)

Overview of the Java Programming Language

(2011 edition)

Page 2: Overview of the Java Programming Language (2011 edition)

If you know Cyou already know the basics of Java

Page 3: Overview of the Java Programming Language (2011 edition)

Common Programming Language Features

• Comments

• Data Types

• Variable Declarations

• Expressions

• Flow of Control Statements

• Functions and Subroutines

• Macros and Preprocessor Commands

• I/O Statements

• Libraries

• Compiler Directives

• External Tools (Compiler, debugger etc)

Page 4: Overview of the Java Programming Language (2011 edition)

Comments in Java• The ability to comment is the most important

feature in any programming language!!!

• Comments should precede any block of code or any code that might be difficult to understand. A comment should describe the intent of what you are trying to do.

• Write your comments BEFORE you write your code. Do not rely on the code itself to document what you are doing as the code may be incorrect

• Comments may also be used to temporarily remove a block of code from your program

• Special comments used to generate help files

• Special comments used in NetBeans to keep track of unfinished tasks and problems

/* This is a comment it can span many lines */

//Single line comments

//* Javadoc comments */

//TODO

Page 5: Overview of the Java Programming Language (2011 edition)

Hello World in Java

class Hello

{

public static void main(String[] args){

System.out.println(“Welcome to Java”); }

}

Page 6: Overview of the Java Programming Language (2011 edition)

6

Why Java?

Java enables users to develop and deploy applications on the Internet on multiple platforms: servers, desktop computers, hand-held and embedded devices such as dvd and blue-ray players, cell phones, RFID devices etc, regardless of the underlying processor or operating system.

Java is a general purpose programming language. Java is the Internet programming language.Write once, deploy everywhere

Page 7: Overview of the Java Programming Language (2011 edition)

7

Characteristics of Java• Java Is Simple • Java Is Object-Oriented • Java Is Distributed • Java Is Interpreted • Java Is Robust • Java Is Secure • Java Is Architecture-Neutral • Java Is Portable • Java's Performance • Java Is Multithreaded • Java Is Dynamic

www.cs.armstrong.edu/liang/intro8e/JavaCharacteristics.pdf

Page 8: Overview of the Java Programming Language (2011 edition)

8

JDK Versions• JDK 1.02 (1995)• JDK 1.1 (1996)• JDK 1.2 (1998)• JDK 1.3 (2000)• JDK 1.4 (2002)• JDK 1.5 (2004) a. k. a. JDK 5 or Java 5• JDK 1.6 (2006) a. k. a. JDK 6 or Java 6• JDK 1.7 (possibly 2010) a. k. a. JDK 7 or Java

7

Page 9: Overview of the Java Programming Language (2011 edition)

9

JDK Editions• Java Standard Edition (J2SE)

– J2SE can be used to develop client-side standalone applications or applets.

• Java Enterprise Edition (J2EE)– J2EE can be used to develop server-side

applications such as Java servlets and Java ServerPages.

• Java Micro Edition (J2ME). – J2ME can be used to develop applications for

mobile devices such as cell phones.

The Course Text uses J2SE to introduce Java programming.

Page 10: Overview of the Java Programming Language (2011 edition)

10

Compiling Java Source CodeUnlike compiled programs written in languages such as C, C++ or Assembler, Java was designed to run object programs on any platform. With Java, you write the program once, and compile the source program into a special type of object code, known as bytecode. The bytecode can then run on any computer with a Java Virtual Machine, as shown below. Java Virtual Machine is a software that interprets Java bytecode.

Java Bytecode

Java Virtual Machine

Any Computer

Page 11: Overview of the Java Programming Language (2011 edition)

Looking at Java as a Language

Remember – the syntax is like

Page 12: Overview of the Java Programming Language (2011 edition)

Primitive Data Types

• boolean, char, byte, int, short, long, float and double.

Page 13: Overview of the Java Programming Language (2011 edition)

Ordinal Constants in Java

• char : ‘A’• int: -200,

– 1000000L– (unsigned) 127– 0x80FA (hex), – 007 (octal)– ‘\u0811’ (unicode)

• range of values depends on word size of the machine. Usually 4 bytes for an int.

“Ordinal” means “countable” – there is usually a next and previous value.

Page 14: Overview of the Java Programming Language (2011 edition)

boolean data types

boolean found=false;

String password=“Swordfish”;

found=(myInput.equals(“password”);

if(found==true)

System.out.println(“Yes we found it!”)

elseSystem.out.println(“No we did not”);

Page 15: Overview of the Java Programming Language (2011 edition)

Special Character Constants

• ‘\n’ - newline• ‘\r’ - carriage return• ‘\t’ - tab• ‘\\’ - backslash• ‘\’’ - quoted apostrophe• ‘\”’ –quoted quote• ‘\0’ – null character• ‘\a’ – audible alert• ‘\b’ - backspace

Page 16: Overview of the Java Programming Language (2011 edition)

Non-Ordinal Constants

• float : 12.5E-12. -0.5

• double: 12.5E+200

always use doubles

Page 17: Overview of the Java Programming Language (2011 edition)

17

Numerical Data Types

Name Range Storage Size

byte –27 (-128) to 27–1 (127) 8-bit signed

short –215 (-32768) to 215–1 (32767) 16-bit signed

int –231 (-2147483648) to 231–1 (2147483647) 32-bit signed

long –263 to 263–1 64-bit signed (i.e., -9223372036854775808 to 9223372036854775807)

float Negative range: 32-bit IEEE 754 -3.4028235E+38 to -1.4E-45 Positive range: 1.4E-45 to 3.4028235E+38

double Negative range: 64-bit IEEE 754 -1.7976931348623157E+308 to -4.9E-324 Positive range: 4.9E-324 to 1.7976931348623157E+308

Page 18: Overview of the Java Programming Language (2011 edition)

Non-Primitive Data Types

contain multiple values

• arrays• classes (start with

the idea of C’s structs)

• Collections

Page 19: Overview of the Java Programming Language (2011 edition)

Declaring Scalar Variables

• short cake;

• int i;• unsigned int value;• long face;• float icecream;• double mint;• boolean result;

Page 20: Overview of the Java Programming Language (2011 edition)

Arrays

int [ ] x = new int[20];

x[5] = 7;

n=40;String [ ] names;names=new String[n];

//2 Dimensional ArraysVehicle[ ][ ] parkingLot=new Vehicle[40][25];

Page 21: Overview of the Java Programming Language (2011 edition)

Operators in Java

• Assignment: =

• Arithmetic : * / + - ++ -- %

• Logical: && || !

• Relational: > < == <>

• Bitwise: & | ^ << >> ~

• String: +

• Grouping: () [] ,

• Triadic: (cond) ? value1 : value2

Page 22: Overview of the Java Programming Language (2011 edition)

Operators in C• Operators can be binary or

unary.

• ?: is a special triadic operator.• Any binary operator can be

combined with the assignmentoperator, ie:

a*=3;

is the same as

a=a*3;

• Assignment isn’t special – its an operator like any other a=b+(c=7);

Page 23: Overview of the Java Programming Language (2011 edition)

Expressions: Operator Precedence

comma: sequence operator,13

Arithmetic Assignment

Bitwise assignment

= += -= *= /= %=

&= |= ^= <<== >>=

12

logical and, logical or (short circuit operators&& ||11

bitwise or|10

bitwise xor^9

bitwise and&8

equal to, not equal to = = !=7

less than, less than or equal to

greater than, greater than or equal 2

<  <=>  >=

6

bitwise left shift, bitwise right shift<<  >> 5

plus, minus+  -4

times/divide/mod*  /  % 3

Unary pre/post increment/ decrementUnary plus/minusUnary logical negation/bitwise complementUnary cast (change type)DereferenceAddress of

size in bytes

++  --+  -!  ~

(type) 

2

Parentheses (grouping)Brackets (array subscript)Member selection

Member selection via pointer

()[ ].

1

DescriptionOperator Priority

Page 24: Overview of the Java Programming Language (2011 edition)

Expressions: Operator Precedence• When in doubt use

brackets ()

• If you know the correct operator precedence, but aren’t so sure others will know it as well – use use brackets ()

• use brackets to make your meaning clear ( : - )

• did I mention you should use () ?

Page 25: Overview of the Java Programming Language (2011 edition)

Expressions: Type Precedence• float + double double

• float + int float

• short * long long

• char + int int

• address + int address

When 2 operands are ofdifferent types, the result is thelarger or more complicated type

When in doubt of the result, use thecast operator

result = (float) (myDouble + myInt);

Page 26: Overview of the Java Programming Language (2011 edition)

Expressions: Type Precedence

Remember:

x = 1/4; /* x 0 */

x = 1.0/7; /* x .25*/

C does very little type

checking!!

Page 27: Overview of the Java Programming Language (2011 edition)

Flow of Control: IF stmt

if(condition) stmt;

else stmt;

if(x>10) System.out.print(“Too Big”);

else System.out.print(“Value OK”);

Page 28: Overview of the Java Programming Language (2011 edition)

Flow of Control: if stmt

if(x>10 && x<20) { /* block of code */ }else { /* another block of code */ }

Page 29: Overview of the Java Programming Language (2011 edition)

Secret SlideThe triadic operator is a shorter form of if/then/else

examples:

if(x>10) y=2; else y=0; y= (x>10) ? 2 : 0

if(x>10) System.out.println(”X is big”); else System.out.println(”X is small”);

System.out.println(x>10 ? “X is big” : “x is small”);

if(a>b) return a; else return b; return (a>b) ? a : b;

Page 30: Overview of the Java Programming Language (2011 edition)

Flow of Control: switch/case

switch(ordinalValue){ case ‘A’: case ‘a’:

puts(“A chosen”); break;

case 2: puts(“# 2 choice”); break;

default: puts(“None of the above”); }

Page 31: Overview of the Java Programming Language (2011 edition)

Flow of Control: while

while(condition)

{

int localValue;

doStuff();

}

Variables can be declared at the start of any block of code { }

Page 32: Overview of the Java Programming Language (2011 edition)

Forever loop: while

while(true)

{

int localValue;

doStuff();

}

Page 33: Overview of the Java Programming Language (2011 edition)

Flow of Control: do while

do

{

doStuff();

} while(condition);

This kind of loop is always executed at least once. The test is at the end of the loop

Page 34: Overview of the Java Programming Language (2011 edition)

Flow of Control: for loops

for(initialization; condition; increment)

{

doStuff();

...

}

doStuff

increment

Test

initialization

Page 35: Overview of the Java Programming Language (2011 edition)

The break and continue statements

for(int i=0;i<10;i+=2){

for(init; cond; incr){ .... some code ... if(condition1) break; ... if(condition2) continue; }

}

break: exits the inner loop

continue: jump to the end of the inner loop and loops around again

Page 36: Overview of the Java Programming Language (2011 edition)

Flow of Control: For Loops (cont’d)

for(int i=0;i<10;i++) {}

for(;i;i--) {}

for(;condition;) {}

for(;;) {}

Page 37: Overview of the Java Programming Language (2011 edition)

Flow of Control: Labels and the dreaded Goto

• You probably were not taught about the goto statement

• If you were, you were told that it was bad

• use break, continue, exit(n) instead

• Use it only in emergencies ....

Page 38: Overview of the Java Programming Language (2011 edition)

Flow of Control: An example of goto

for ( ...)

for(...)

{

if(errorCond) goto errorLabel;

}

errorLabel:

fprintf(stderr,”Bad mojo – quitting program”);

Page 39: Overview of the Java Programming Language (2011 edition)

I/O

Java has no I/O commands. All I/O is performed using library functions

Page 40: Overview of the Java Programming Language (2011 edition)

Output to the Console

//Unformatted Output

System.out.println(value1+val2+val3);

//Formatted I/O

String name="John Smith";

int age=20;

System.out.printf(“Name: %-20s: Age: %4d\n” ,

name,age);

Page 41: Overview of the Java Programming Language (2011 edition)

41

Frequently-Used Specifiers Specifier Output Example

%b a boolean value true or false

%c a character 'a'

%d a decimal integer 200

%f a floating-point number 45.460000

%e a number in standard scientific notation 4.556000e+01

%s a string "Java is cool"

int count = 5;

double amount = 45.56;

System.out.printf("count is %d and amount is %f", count, amount);

display count is 5 and amount is 45.560000

items

Page 42: Overview of the Java Programming Language (2011 edition)

String name;int age=20;//Wrap a Scanner around the input consoleScanner myScanner=new Scanner(System.in);

//Input a stringSystem.out.print("Name: "); //Promptname=myScanner.nextLine();

//Input an integerSystem.out.print("Age: "); //Promptage=myScanner.nextInt();

System.out.printf("Name: %-20s: Age: %4d\n", name,age);

Input from the Console

Page 43: Overview of the Java Programming Language (2011 edition)

String name;int age=20;//Wrap a Scanner around the input consoleScanner myScanner=new Scanner(new File(“c:\\myData.txt”));

//Input a whole line as a Stringname=myScanner.nextLine();

//Input an integerage=myScanner.nextInt();

System.out.printf("Name: %-20s: Age: %4d\n", name,age);

Input from a file

Page 44: Overview of the Java Programming Language (2011 edition)

Input from a web site on the Internet String name; int age; //This looks complicated – but only at first. All it is doing is creating a connection//to a remote file!Scanner myScanner=new Scanner( (new URL("http://munro.humber.ca/~king/abc.txt")) .openConnection().getInputStream());

//The rest is exactly the samename=myScanner.nextLine();age=myScanner.nextInt();System.out.printf("Name: %-20s: Age: %4d\n", name,age);

Page 45: Overview of the Java Programming Language (2011 edition)

Getting Input from Input Dialog Boxes String input = JOptionPane.showInputDialog(

"Enter an input");

Page 46: Overview of the Java Programming Language (2011 edition)

46

(GUI) Confirmation Dialogs

int option = JOptionPane.showConfirmDialog

(null, "Continue");