programming with java: the basics
TRANSCRIPT
Programming with Java
Jussi PohjolainenTampere University of Applied Sciences
HELLOWORLD
HelloWorld.java
public class HelloWorld { public static void main(String [] args) { System.out.println("Hello World"); }}
BOOLEAN ALGEBRA AND CONDITIONS
About Conditions
• Conditions are used in while and in if – sentences– if(condition)• do something
• Condition is a statement that is either true or false
AND
• if(it is raining AND car does not work)– go to work by bus
• In Java, the AND is marked with &&– if(x >= 4 && x<=10)• do something
AND
A B A && B1 1 11 0 00 1 00 0 0
OR
• if(it is raining OR car does not work)– Go to work by bus
• In Java OR is marked with ||– if(x == 3 || x == 10)• do something
OR
A B A && B1 1 11 0 10 1 10 0 0
Negation
• Negation turns true to false and wiseversa• In Java, negation is marked with !• if(!rains)– go to work by bicycly
• if(!(x < 3))– do something
Negation
A !A1 00 1
Combining Conditions
• if(!rains && (temperature > 20C))– Walk with your t-shirt on
• Demos– Conditions.java– BooleanAlgebra.java
PRIMITIVE TYPES
About Variables
• Simple calculator with pseudocode– print "Give number"– a := readInput()– print "Give another number"– b := readInput()– sum := a + b– print sum
• Variables? a, b and sum!
Declaring Variables
• In Java you have to declare a variable before using it
• Declaring?– What is the variable's name?– What is the variable's type?
• Type?– What kind of information will be stored into the
variable?
Declaring Variables in Pseudocode
• Integer age• print "Your age?"• age := readInput()• print age;
Types
• Java has two kind of types– Primitive Types• int, byte, short, long, double, float, boolean, char
– Class Types• Everything else, for example
– String, Scanner, Arrays, Vector, JButton, JCheckBox
Primitive Types in Java
type size Example value
byte 8 bit 5
short 16 bit 10000
int 32 bit 200000
long 64 bit 30000000
float 32 bit 1.1234
double 64 bit 1.23487367
boolean 1 bit (undefined) true or false
char 16 bit 'a'
Declaring Variables with Java
• Examples– int number;– float weight;– char mycharacter;
• You can declare and set the variable– char mycharacter = 'a';
• You can assign a different value to variable after declaring with the =
Declaring Variables with Java
• Declare variable only once!– int x = 5;– x = 10;– System.out.println(x); // prints 10
• This is wrong!– int x = 5;– int x = 10; // Variable already declared!– System.out.println(x);
Final Variable
• Final variable is a special variable which value cannot be assigned later– final double PI = 3.14;– PI = 5.0; // Does not work!
Examples
• int age, shoeSize;• boolean gender;• char myCharacter = 'k';• double average = 7.7;
TYPE CASTING
Type Casting?class MyApp { public static void main(String [] args) { int a = 5; short b = a; System.out.println(b); }}
TB308POHJUS-L-2:temp pohjus$ javac MyApp.javaMyApp.java:4: possible loss of precisionfound : intrequired: short short b = a; ^1 error
Solution
class MyApp { public static void main(String [] args) {
int a = 5; short b = (short) a; System.out.println(b); }}
Why?class MyApp { public static void main(String [] args) { int a = 5; long b = 5; int result = a * b; System.out.println(result); }}MyApp.java:5: possible loss of precisionfound : longrequired: int int result = a * b; ^1 error
Why?
int a = 5;long b = 5;int result = a * b;
int * long -> long!
Example Result of different Calculations
Operand Operator Operand Result
int + / * - int int
long + / * - int, short, long, byte
long
double + / * - float double
double + / * - double double
float + / * - float float
double + / * - int, short, long, byte
double
What is the result?
double a = 5;int b = 5;double result = a / b;
double / int -> double
What is the result?
int a = 5;int b = 5;double result = a / b;
int / int -> int !!!
Solution
int a = 5;int b = 5;double result = (double) a / b;
VISIBILITY OF VARIABLES
What is the problem?import java.util.Scanner;
class MyApp { public static void main(String
[] args) { Scanner input = new
Scanner(System.in); int inputVariable; inputVariable =
input.nextInt(); if(inputVariable == 7) { int myVariable = 80; }
System.out.println(myVariable); }}
TB308POHJUS-L-2:temp pohjus$ javac MyApp.java
MyApp.java:15: cannot find symbolsymbol : variable myVariablelocation: class MyApp System.out.println(myVariable); ^1 errorTB308POHJUS-L-2:temp pohjus$
Braces and Variable visibility• Variable is visible in it's section(braces) and it's child sections• Variable is not visible outside of it's section.• This works:
int a = 1; if(true) { System.out.println(a); }
• This does not: if(true) { int b = 1;}System.out.println(b);
Braces?
• If control statement (if, while, for) contains only one statement you do NOT have to use braces
if(something)doSomething
CLASS - TYPES
Types
• Java has two kind of types– Primitive Types• int, byte, short, long, double, float, boolean, char
– Class Types• Everything else, for example
– String, Scanner, Arrays, Vector, JButton, JCheckBox
Differences
Primitive Type• first letter lowercase
– int
• Initialized with value– int x = 0;
• Does not have methods
Class Type• first letter uppercase
– Scanner
• Initialized with new– Scanner x = new Scanner();
• Does have methods– x.nextInt();
About String
• String is a class type with lot of exceptions compared to other class types.
• Usually class types are initialized with new. In String you can initialize also with value– String example = new String("Hello World");– String example = "Hello World";
Class – type: String
String m = "hello";System.out.println(m);int length = m.length();String newVariable = m + " world";System.out.println(newVariable);
Special Characters
• \t = tabulator• \n = enter• \" = "• \' = '
INPUT AND OUTPUT JAVA
Output
• System.out is a stream that normally outputs the data you write to the console
• Has different methods: – print, without enter– println, with enter
• Usage– System.out.println("Hello World!");– System.out.print(5);– System.out.println('a');
Input
• System.in is an stream connected to keyboard input of console programs
• Problem with System.in is that it can only read one byte at a time from the console.
• If you want to read for example whole line of text, you have to use other classes..
Scanner and System.in• Scanner – class and System.in provides easy
access to keyboard input• You need to import the Scanner– import java.util.Scanner;
• You have to define to Scanner, what stream to be used when reading– Scanner sc = new Scanner(System.in);
• After creating the Scanner, you can read user input:– int i = sc.nextInt();
The use of Scannerimport java.util.Scanner;
public class ScannerDemo { public static void main(String [] args) { Scanner scanner = new Scanner(System.in); String name; int age; System.out.println("Your name: "); name = scanner.nextLine();
System.out.println("Your age: "); age = scanner.nextInt(); System.out.println("Your name is " + name); System.out.println("Your age is " + age); }}
Scanner methods
• Scanner reader = new Scanner(System.in);• int i = reader.nextInt();• double d = reader.nextDouble();• boolean b = reader.nextBoolean();• String line = reader.nextLine();
COMMENTING CODE
Commenting code
• Comments in code are intended for other programmers
• Three different kind of comments– One liner– Multiple lines– Javadoc
Example/*
This is my beautiful hello world application.
Made by Jussi
*/class MyApp { public static void main(String [] args) { // This prints Hello World System.out.println("Hello World!"); }}
Javadoc
• Javadoc is a tool for creating documentation from comments.
• Javadoc comments start with /** and the comments may have special attributes
Javadoc Example/*** Class that provides functionality for printing* the "Hello World" String to the console.** @author Jussi Pohjolainen* @version 2009-10-26*/public class MyApp { /** * Starting point for the app * * @param args command line arguments */ public static void main(String [] args) { // This prints Hello World System.out.println("Hello World!"); }}
Result
More Examples
• Javadoc slides– http://home.tamk.fi/~pohjus/java/lectures/javado
c.html• Java ME Project Works– http://koti.tamk.fi/~t4hheina/mobiili1/– http://koti.tamk.fi/~c5msalo/scorchedtamk/– http://koti.tamk.fi/~c6tkoris/mobile/project/– http://koti.tamk.fi/~c7msorvo/TsunamiGame/ind
ex.html
IF, SWITCH, WHILE, DO-WHILE, FOR
If
if(something) { doSomething;}
if else
if(something) { doSomething;} else { doSomethingElse;}
if else if
if(something1) { doSomething1;} else if(something2) { doSomething2;}
if else if else
if(something1) { doSomething1;} else if(something2) { doSomething2;} else { doSomething3;}
if else if else if else
if(something1) { doSomething1;} else if(something2) { doSomething2;} else if(something3) { doSomething3} else { doSomething4;}
Intro to Switch Case
int a = 1; if(a == 1) { System.out.println("you gave one");
} else if(a == 2) { System.out.println("you gave two");
}
Switch Case (same than previous)
switch(a) { case 1: System.out.println("you gave one");
break; case 2: System.out.println("you gave two");
break; }
Switch Case switch(a) { case 1: System.out.println("you gave one"); break; case 2: System.out.println("you gave two"); break; default: System.out.println("You did NOT give 1 or
2"); }
Switch Case switch(a) { case 1: case 2: System.out.println("you gave one or two"); break; default: System.out.println("You did NOT give 1 or
2"); }
while
int i = 0;while(i < 5) { System.out.println(i); i = i + 1;}
while
int i = 5;while(i >= 0) { System.out.println(i); i = i - 1;}
while to for
int i = 5;while(i >= 0) { System.out.println(i); i = i - 1;}=>for(int i=5; i>=0; i = i – 1) { System.out.println(i);}
Incremental
• i = i + 1;– i++;
• i = i – 1;– i--;
• i = i + 2;– i += 2;
• i = i – 2;– i -= 2;
while to for
for(int i=0; i<5; i++) { System.out.println(i);}
do-while
int i = 0;do { System.out.println("Hello"); i++;} while(i < 3);
EXAMPLES