Helloworld.Java Java Programs Bytecodes Java Virtual Machine (JVM)

Helloworld.Java Java Programs Bytecodes Java Virtual Machine (JVM)

HelloWorld.java import java.awt.*; public class HelloWorld extends java.applet.Applet { TextField t; public void init() { t = new TextField(50); t.setText(“Hello World!"); add(t); } } Java programs Bytecodes • Java programs are created as text files using a text • Java bytecode editor (like emacs) – machine instruction for the Java processor • Save to disk with .java file extension • Java compiler javac translates the source program into HelloWorld.java bytecodes • The file contains characters (stored as bytes) • Bytecode file has same name as the source program – file can be printed, displayed on monitor, or edited with a .class file extension: – file cannot be directly executed (run) by the computer HelloWorld.class system • Java must first translate the program into bytecodes before it can be run HelloWorld.java javac HelloWorld.class Java source program Java bytecodes compiler Java Virtual Machine (JVM) Java applets • Bytecode (class) file will contain exactly the same • An applet is a Java bytecode program that runs on a bytecodes no matter what computer system is used Web browser • Bytecode file is executed by a Java bytecode interpreter • Most newer Web browsers have Java interpreters – processor specific executable program • Web pages on the Internet contain instructions that send • Each type of computer system has its own Java Java bytecodes to your computer interpreter that can run on that system • Web browser runs the Java applet with its built-in • Any computer system can execute Java bytecode interpreter 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 1 Data types Java data types • Computer memory stores arbitrary bit patterns • Primitive • Meaning of a bit pattern depends on its use – types of data that are so fundamental ways to • Pattern used for a particular string of bits is a data type represent them are built into Java – values are any kind of data a computer can process • Object – all values are represented using some data type – built-in or user-defined • Example: What does the following pattern of 16 bits represent? 0000000001100111 • No way to know without more information • If data type is short (a Java type) it represents 103 Primitive data types Java primitive data types • All primitive values belong to one of eight primitive types Primitive Type Description Range byte short int long float byte 8-bit integer -128 to 127 double char boolean short 16-bit integer -32768 to 32767 • Primitive data types use a fixed number of bytes -2147483648 to int 32-bit integer – four of these types designate different sizes of 2147483647 bounded integers: byte, short, int, long long 64-bit integer -263 to 263-1 • A programmer can not create new primitive data types float 32-bit floating point 10-46 to 1038 • Any data type you invent will be a type of object double 64-bit floating point 10-324 to 10308 • Most commonly used types in practice: int, boolean, and double char Unicode character boolean Boolean variable false and true Basic operators Variable declaration Operator Java Description • Declaration Assignment = assigns rhs to lhs type <variable-name>; • Declaration + initialization: addition, subtraction, Arithmetic +,-,*,/,% multiplication, division, type <variable-name> = <value>; remainder • Variable names negative, auto increment, auto Unary -,++,-- – any combination of letters, numbers, and the decrement underscore character Equality ==, != equals to, not equals to – may not start with number less than, less than or equals – may not be reserved word Relational <,<=,>,>= to, greater than, greater than or • e.g. int, return, if, for, while equals to – may not be same as a subroutine name Logical &&,||,! AND, OR, NOT – case-sensitive (num and Num are different) 2 Examples Operator precedence • int x, y, z; • Evaluate a + b * c • int sum = 0; – multiplication first? a + (b * c) • float f; – addition first? (a + b) * c • double pi = 3.14; • Java solves this problem by assigning priorities to • char first = ‘T’, operators (operator precedence) middle = ‘L’, Operator priority last = ‘B’; – operators with high priority are evaluated before (highest to lowest) • char first = ‘T’; operators with low priority char middle = ‘L’; 1. ( ) char last = ‘B’; – operators with equal priority are evaluated left to right 2. * / % 3. + - 4. = When in doubt, use parentheses Examples • a + b * c = a + (b * c) • Java adheres to traditional order of operations – because * has higher priority than + • * and / have higher priority than + and – • To perform the + operation first we need to use int x = 3 + 5 * 6; (x = 33) parentheses int y = (3 + 5) * 6; (y = 48) – (a + b) * c • Parentheses are free, use them liberally • If in any doubt use extra parentheses to ensure the int z = ((3 + 5) * (6)); (z = 48) correct order of evaluation • Equal priority operations are evaluated left-to-right in the – parentheses are free! absence of parentheses – cause no extra work for the computer int w = 3 * 4 / 2 * 6; (w = 36) – only make it easier for you to work out what is int x = 3 * 4 / (2 * 6); (x = 1) happening int y = 3 * 4 + 2 * 6; (y = 24) int z = 3 * (4 + 2) * 6; (z = 108) Syntax and semantics Automatic type conversion • Addition, subtraction: + and –, int and double • Mixed type expressions Example: int x = 21+4; (x = 25) are converted to higher Convert Fahrenheit to Celsius double y = 14.1-2; (y = 12.1) compatible types • If all operands are of type • Multiplication: *, int and double double F=41.0; int then result is type int int x = 21*4; (x = 84) double C=(F-32.0)*(5/9); • If any operand is of type double y = 14.1*2.5; (y = 35.25) double then result is of Question: What is the value of C? • Division: /, different for int and double type double a) 5 int x = 21/4; (x = 5) • Cannot convert to a lower b) 0.0 double y = 21/4; (y = 5.0) type c) 9.0 double y = 21/4.0; (y = 5.25) • Conversion may result in d) 5.0 • Modulus: %, only for int loss of precision e) 9 int x = 21%4; (x = 1) 3 More expressions Syntax errors int g = 12 + 2.5; int n = 1 – 2 * 3 – (4 + 5); • The following Java subroutine computes the inclusive What is the value of g? What is the value of n? sum between two integers. Find all the syntax errors. a. 0 a. -4 b. 12 b. -2 c. 14 c. 2 int sumBetween( x, y ) d. 14.5 d. 4 { e. error e. none of the above int z = x; Int sum = 1; int x = 8 * (7 – 6 + 5) % (4 + 3 / 2) – 1; What is the value of x? while( z <= y ){ a. -1 sum = sum*z; b. 0 z++ c. 2 d. 3 } e. none of the above } Logic errors Java objects • The computer will do precisely what you say even • Java is an object-oriented programming language though it may not be what you want – use objects to define both the data type and the • What is wrong with this code? operations that can be applied to the data • Objects have attributes and functionality int sumBetween( int x, int y ) – attributes describe the state of the object { – the functionality of an object is the set of actions the int z = x; object can perform int sum = 1; • In Java, we define an object’s attributes using variables while( z <= y ) and its functionality using methods sum = sum*z; z++; } Real-world objects Java classes • Suppose we want to describe a car in terms of its • Java objects are created using classes attributes and functionality • Encapsulation • Attributes: – combining elements to create a new entity – int year; int mileage; • A class encapsulates the variables and methods that – String make; String model; define an object – boolean manual_transmission; • Instantiation • Methods: – the act of creating an object – void brake() – int getMileage() – objects are called class instances – boolean needsGas() • Java provides many predefined classes – void shift(int gear) • You can also define your own classes 4 Java String class Instantiation • The String class represents character strings • Creating an object is called instantiation String first = “Tammy”; – the new operator is used with class name String last = “Bailey”; • Example: Create a TextField object TextField t = new TextField(); • Strings can be concatenated (added together) using the concatenation operator + • Can create multiple instances of the same class String fullname = first + “ ” + last; TextField t1 = new TextField(); TextField t2 = new TextField(); • Testing for equality: • Exception first.equals(“Tammy”); /* returns true */ – the new operator is not required when creating a first.equals(“Amy”); /* returns false */ String Java TextField class Invoking an object’s methods • The TextField class allows the editing and display of a • Once we create a text field, we can perform actions on it single line of text using its methods TextField t = new TextField(); • The variables and methods of an object are accessed using the dot operator • Methods TextField t = new TextField(); – setText(String s) t.setText(“Hello”); • set the text of the field to the string s • Syntax – String getText() – object.verb(data); • get the text of the field and assign it to a variable of – Perform verb on object using data type string Interactive objects Action listeners • User interaction determines the behavior of the program • If we want a button to know when it is clicked, we have • Program receives user input through mouse and to enable it to “listen” for user input keyboard and performs associated method or action • Use the button method addActionListener • Text fields – edit and display single line of text Button b = new Button(“click!”);

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    6 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us