Hello World java import java awt public class


Hello. World. java import java. awt. *; public class Hello. World extends java. applet. Applet { Text. Field t; public void init() { t = new Text. Field(50); t. set. Text(“Hello World!"); add(t); } }

Java programs • Java programs are created as text files using a text editor (like emacs) • Save to disk with. java file extension Hello. World. java • The file contains characters (stored as bytes) – file can be printed, displayed on monitor, or edited – file cannot be directly executed (run) by the computer system • Java must first translate the program into bytecodes before it can be run

Bytecodes • Java bytecode – machine instruction for the Java processor • Java compiler javac translates the source program into bytecodes • Bytecode file has same name as the source program with a. class file extension: Hello. World. class Hello. World. javac Hello. World. class source program Java compiler Java bytecodes

Java Virtual Machine (JVM) • Bytecode (class) file will contain exactly the same bytecodes no matter what computer system is used • Bytecode file is executed by a Java bytecode interpreter – processor specific executable program • Each type of computer system has its own Java interpreter that can run on that system • Any computer system can execute Java bytecode programs if it has a Java interpreter • Computers with Java interpreters are called Java Virtual Machines – a “computer” with a Java processor that can run Java bytecodes

Java applets • An applet is a Java bytecode program that runs on a Web browser • Most newer Web browsers have Java interpreters • Web pages on the Internet contain instructions that send Java bytecodes to your computer • Web browser runs the Java applet with its built-in interpreter

Data types • Computer memory stores arbitrary bit patterns • Meaning of a bit pattern depends on its use • Pattern used for a particular string of bits is a data type – values are any kind of data a computer can process – all values are represented using some data type • Example: What does the following pattern of 16 bits represent? 000001100111 • No way to know without more information • If data type is short (a Java type) it represents 103

Java data types • Primitive – types of data that are so fundamental ways to represent them are built into Java • Object – built-in or user-defined

Primitive data types • All primitive values belong to one of eight primitive types byte short double int long float char boolean • Primitive data types use a fixed number of bytes – four of these types designate different sizes of bounded integers: byte, short, int, long • A programmer can not create new primitive data types • Any data type you invent will be a type of object • Most commonly used types in practice: int, boolean, and double

Java primitive data types Primitive Type Description Range byte 8 -bit integer -128 to 127 short 16 -bit integer -32768 to 32767 -2147483648 to int 32 -bit integer 2147483647 long 64 -bit integer -263 to 263 -1 float 32 -bit floating point 10 -46 to 1038 double 64 -bit floating point 10 -324 to 10308 char Unicode character boolean Boolean variable false and true

Basic operators Operator = Assignment Arithmetic Java Description assigns rhs to lhs addition, subtraction, +, -, *, /, % multiplication, division, remainder negative, auto increment, auto Unary Equality Relational Logical -, ++, -==, != <, <=, >, >= &&, ||, ! decrement equals to, not equals to less than, less than or equals to, greater than or equals to AND, OR, NOT

Variable declaration • Declaration type <variable-name>; • Declaration + initialization: type <variable-name> = <value>; • Variable names – any combination of letters, numbers, and the underscore character – may not start with number – may not be reserved word • e. g. int, return, if, for, while – may not be same as a subroutine name – case-sensitive (num and Num are different)

Examples • • • int x, y, z; int sum = 0; float f; double pi = 3. 14; char first = ‘T’, middle = ‘L’, last = ‘B’; • char first = ‘T’; char middle = ‘L’; char last = ‘B’;

Operator precedence • Evaluate a + b * c – multiplication first? a + (b * c) – addition first? (a + b) * c • Java solves this problem by assigning priorities to operators (operator precedence) – operators with high priority are evaluated before operators with low priority – operators with equal priority are evaluated left to right Operator priority (highest to lowest) ( ) 2. * / 3. + 4. = 1. %

When in doubt, use parentheses • a + b * c = a + (b * c) – because * has higher priority than + • To perform the + operation first we need to use parentheses – (a + b) * c • If in any doubt use extra parentheses to ensure the correct order of evaluation – parentheses are free! – cause no extra work for the computer – only make it easier for you to work out what is happening

Examples • Java adheres to traditional order of operations • * and / have higher priority than + and – int x = 3 + 5 * 6; (x = 33) int y = (3 + 5) * 6; (y = 48) • Parentheses are free, use them liberally int z = ((3 + 5) * (6)); (z = 48) • Equal priority operations are evaluated left-to-right in the absence of parentheses int w = 3 * 4 / 2 * 6; (w = 36) int x = 3 * 4 / (2 * 6); (x = 1) int y = 3 * 4 + 2 * 6; (y = 24) int z = 3 * (4 + 2) * 6; (z = 108)

Syntax and semantics • Addition, subtraction: + and –, int and double int x = 21+4; (x = 25) double y = 14. 1 -2; (y = 12. 1) • Multiplication: *, int and double int x = 21*4; (x = 84) double y = 14. 1*2. 5; (y = 35. 25) • Division: /, different for int and double int x = 21/4; (x = 5) double y = 21/4; (y = 5. 0) double y = 21/4. 0; (y = 5. 25) • Modulus: %, only for int x = 21%4; (x = 1)

Automatic type conversion Example: • Mixed type expressions are converted to higher Convert Fahrenheit to Celsius compatible types • If all operands are of type double F=41. 0; int then result is type int double C=(F-32. 0)*(5/9); • If any operand is of type double then result is of Question: What is the value of C? type double a) 5 • Cannot convert to a lower b) 0. 0 type c) 9. 0 • Conversion may result in d) 5. 0 loss of precision e) 9

More expressions int g = 12 + 2. 5; int n = 1 – 2 * 3 – (4 + 5); What is the value of n? What is the value of g? a. 0 a. -4 b. 12 b. -2 c. 14 c. 2 d. 14. 5 d. 4 e. error e. none of the above int x = 8 * (7 – 6 + 5) % (4 + 3 / 2) – 1; What is the value of x? a. -1 b. 0 c. 2 d. 3 e. none of the above

Syntax errors • The following Java subroutine computes the inclusive sum between two integers. Find all the syntax errors. int sum. Between( x, y ) { int z = x; Int sum = 1; while( z <= y ){ sum = sum*z; z++ } }

Logic errors • The computer will do precisely what you say even though it may not be what you want • What is wrong with this code? int sum. Between( int x, int y ) { int z = x; int sum = 1; while( z <= y ) sum = sum*z; z++; }

Java objects • Java is an object-oriented programming language – use objects to define both the data type and the operations that can be applied to the data • Objects have attributes and functionality – attributes describe the state of the object – the functionality of an object is the set of actions the object can perform • In Java, we define an object’s attributes using variables and its functionality using methods

Real-world objects • Suppose we want to describe a car in terms of its attributes and functionality • Attributes: – int year; int mileage; – String make; String model; – boolean manual_transmission; • Methods: – void brake() – int get. Mileage() – boolean needs. Gas() – void shift(int gear)

Java classes • Java objects are created using classes • Encapsulation – combining elements to create a new entity • A class encapsulates the variables and methods that define an object • Instantiation – the act of creating an object – objects are called class instances • Java provides many predefined classes • You can also define your own classes

Java String class • The String class represents character strings String first = “Tammy”; String last = “Bailey”; • Strings can be concatenated (added together) using the concatenation operator + String fullname = first + “ ” + last; • Testing for equality: first. equals(“Tammy”); /* returns true */ first. equals(“Amy”); /* returns false */

Instantiation • Creating an object is called instantiation – the new operator is used with class name • Example: Create a Text. Field object Text. Field t = new Text. Field(); • Can create multiple instances of the same class Text. Field t 1 = new Text. Field(); Text. Field t 2 = new Text. Field(); • Exception – the new operator is not required when creating a String

Java Text. Field class • The Text. Field class allows the editing and display of a single line of text Text. Field t = new Text. Field(); • Methods – set. Text(String s) • set the text of the field to the string s – String get. Text() • get the text of the field and assign it to a variable of type string

Invoking an object’s methods • Once we create a text field, we can perform actions on it using its methods • The variables and methods of an object are accessed using the dot operator Text. Field t = new Text. Field(); t. set. Text(“Hello”); • Syntax – object. verb(data); – Perform verb on object using data

Interactive objects • User interaction determines the behavior of the program • Program receives user input through mouse and keyboard and performs associated method or action • Text fields – edit and display single line of text • Buttons – can specify action to occur when button is clicked

Action listeners • If we want a button to know when it is clicked, we have to enable it to “listen” for user input • Use the button method add. Action. Listener Button b = new Button(“click!”); b. add. Action. Listener(this); • If we don’t invoke the add. Action. Listener method on a button, nothing will happen when the button is clicked

Example • We would like our applet to do the following: – get text from text field t 1 and display it in text field t 2 when button b is clicked Text. Field t 1 = new Text. Field(); Text. Field t 2 = new Text. Field(); Button b = new Button(“copy text”); b. add. Action. Listener(this);

Actions • We specify actions to occur when a button is clicked in the action. Performed method public void action. Performed(Action. Event event) { Object cause = event. get. Source(); if(cause == b) { t 2. set. Text(t 1. get. Text()); } }

Numeric input • Suppose we want an applet that allows the user to enter two integers and display the minimum – a text field contains a character string – If we want to perform numeric operations on the input from a text field, we have to convert the string to a numeric data type – numbers are primitive data types, not objects • Can convert using Java type wrappers

Type wrappers • Convert primitive types into objects Primitive Type Wrapper Type byte Byte short Short int Integer long float double char boolean Long Float Double Character Boolean

String conversion • Convert String str to byte b = Byte. parse. Byte(str); • Convert String str to short s = Short. parse. Short(str); • Convert String str to int i int i = Integer. parse. Int(str); • Convert String str to long l = Long. parse. Long(str); • Convert String str to float f = Float. parse. Float(str); • Convert String str to double d = Double. parse. Double(str);

Action performed for integer input public void action. Performed(Action. Event event) { Object cause = event. get. Source(); int x = Integer. parse. Int(t 1. get. Text()); int y = Integer. parse. Int(t 2. get. Text()); if(cause == b) { int min = minimum(x, y); t 3. set. Text(“The minimum is: ” + min); } }
- Slides: 36