java basics - i yangjun chen dept. business computing university of winnipeg

45
Jan. 2004 1 Java Basics - I Yangjun Chen Dept. Business Computing University of Winnipeg

Upload: rune

Post on 04-Jan-2016

46 views

Category:

Documents


1 download

DESCRIPTION

Java Basics - I Yangjun Chen Dept. Business Computing University of Winnipeg. Outline: Basics -I. Basic concepts: class declaration class body, methods variables identifiers comments Primitive data types Operators arithmetic operators logic operators - PowerPoint PPT Presentation

TRANSCRIPT

Jan. 2004 1

Java Basics - I

Yangjun Chen

Dept. Business ComputingUniversity of Winnipeg

Jan. 2004 2

Outline: Basics -I

• Basic concepts:class declarationclass body, methodsvariablesidentifierscomments

• Primitive data types• Operators

arithmetic operatorslogic operatorsbitwise operators

Jan. 2004 3

HelloWorld Application

• Let’s take a look at a little bit more complicated program.import java.lang.*//A simple Java applicationpublic class HelloWorld {

public static void main(String args[]) {s obj=new s();System.out.println(obj.s1);}}

class s {String s1=“HelloWorld!”;}

• Java concepts: class declaration, class body, methods,variables, identifiers, comments

Jan. 2004 4

Class Declaration

• The third line in our program is the class declaration.

public class HelloWorld

• This line creates a class called HelloWorld with it’s implementation contains in the following pair of braces{ and }.

• “public” keyword- makes this class accessible to the outside world.

(More exactly, the key word makes it accessible to the packages which do not contain it.)

Jan. 2004 5

The Class Body

• The next block of code that is contained between the outerpair of braces is called the body of the class:- body in the first class:

{public static void main(String args[]) {s obj=new s();System.out.println(obj.s1);}

}- body in the second class:

{ String s1=“HelloWorld”;

}

Jan. 2004 6

Methods

• The body of the first class contains only one method, namely main().- A method is somewhat like a function or procedure that may or may not take in arguments, performs a task, and then optionally sends

back some information.• When a method is invoked, the statements in the body are

executed. When the method finishes, the control will be returned to the part of the program where the method was first invoked.

• A method takes the form:modifiers returntype methodname(arguments) {

/*list of statements or body of method*/ }

Jan. 2004 7

Methods

• If the return TypeName is “void”, nothing will be returned.• If the return TypeName is not “void”, then the method will

return values of some type or returns back the invocation point with some information.

• The first class contains a method: main(String args[])- It has an argument args which is an array of String- The return type is void so this method does not return any information

Jan. 2004 8

Method Invocation

• The body of the main() method contains two statements.- The second statement invokes the method println()- The general form to invoke the method is:

objectName.methodName(argument list);Example: System.out.println(obj.s1);

- The arguments used in the method invocation must match

those in the definition of the method.- println()’s argument is a string and obj.s1 evaluates to a

string. So it matches.

Jan. 2004 9

Where does the program start?

• We are finished with the program, but where does the main()method get invoked?

• The main() method is always automatically called when the class containing it is executed.

Jan. 2004 10

Variables

• Variables are named locations in memory where values can be stored.- A variable has a name, a type, and a value.- It must be declared before it can be used.

• There are actually three kinds of variables in Java:- instance variables

declared at the class level and represent data that belong to an object of the class.

- class variablessimilar to instance variables except that their values apply to all

that class’s instances rather than having different values for each object.

Jan. 2004 11

Variables

- local variables- declared in a method and has meaning only within that

method- after the method is finished, that local variable will cease to

exist.• We won’t look at class variables at this point.• For instance variables, the declaration consists of a type

followed by a variable name:- int x;- String s1;- boolean ison;

Jan. 2004 12

Variable Declaration

• Declarations of the same type can be strung together:- int x, y, z;- String firstname, lastname;

• You can also initialize variables upon declaration:- int x, y, z=8;- String name=“John”;- boolean ison=true;- int x=5, y=6, z=7;

Jan. 2004 13

Variable Declaration

• Example:

class Triple {double x, y, z;Triple() {

x=0.0; y=0.0; z=0.0;}

double sum() {double theSum=0.0;theSum=x+y+z;return theSum;}

}

Instance variables - can be used inany of the methods

constructor

Local variables - can onlybe used in this method

Jan. 2004 14

Variables

• Each instance of a class (each object) has its own collection of instance variables.

• Suppose “origin” and “center”were two instances of the class Triple.- Variable x in origin and center would be two separate instance

variables.• Local variables must be initialized before they can be used.

Otherwise, a compilation error will occur when compiling your program.

Jan. 2004 15

Java Identifiers

• Variables, method names, class names and package names are collectively known as identifiers.

• The first class is named HelloWorld, but we can have chosen any legal Java name as long as it has not been already defined.

• Legal Java names:- any string of letters, digits, and the underscore as long as it starts with

a letter.- legal names: limitValue, x, swithch72b, a_b_c- illegal names: 2wayStreet, my vaiable, #$rr$!

• Java identifiers are all case sensitive.- HelloWorld, helloWorld, and helloworld are all different names.

• Any identifier can not be the same as a Java keyword.

Jan. 2004 16

Comments in Java

• The following line is a comment://A simple Java Application

• This is a single line comment in Java.- The Java compiler will ignore everything after the double slash

“//” to the end of the line.- This allows us to document our code.

• There are three types of comments in Java:- single line comment- multi-line or block comment- document comment

Jan. 2004 17

Single and Multi-line Comments

• Single line comments:- // This is a single line comment- x=0; //A comment after initializing x

• Multi-line comments:- Begins with /* and ignores everything until a */ is encountered

/*This is a single line multi-line comments, Multi-line comments cango on for many , many, many lines.*/

Jan. 2004 18

Documentation Comments

• The documentation comment works like the multi-line comment but begins with /** and ends with */- This type of comment can be extracted from your code

using a Java tool called javadoc.- This tool will generate an HTML file that can be viewed by a web browser.

• The javadoc can be used in two ways:- embedded HTML- “doc tags”

Jan. 2004 19

Examples of Documentation Comments

• Embedded HTML/*** <pre>* System.out.println(new Date());*</pre>*/

• Doc Tag/**The first Thinking in Java example program.* @author Bruce Eckel* @author http://www.BruceEckel.com* @version 1.0*/

Jan. 2004 20

Identifier Scope

• Now that we know how to declare identifiers, where can we use them?

• The scope of an identifier is the portion of a class where the identifier may be used.

• Class variables, instance variables, and method names can be used anywhere in the class.

• Local variables can only be used after they are declared and within the closest set of braces that enclose the declaration.

Jan. 2004 21

Scope Example

Class Myclass {int inst;

…void method1() {

…{

…int loc

= 3;…

}//inner block

…}//method1

Void method2() {…} //method2

}//class

Jan. 2004 22

Scope Example

Class Myclass {int num=2;

…void method1() {

int num=3;… //is num2 or 3 here?

}//method1void method2() {

… //is num 2 or 3 here?}//method2

}//class

Jan. 2004 23

Scope Example

• What is the value of num?- It is easy to see that num would be 2 in method2() because we can’t see the local variable in it.

• But what is the value of num in method1()?- The value of num in method1 is 3.- Java’s rules for this are common to other languages: the most local variable is the one that is used. - In this case, we say that the local variable (value 3) shadows the less local one (value 2).

Jan. 2004 24

Java Basics - Primitive Data Types

• There are eight primitive data types and they handle common types for integers, floating- point numbers, characters and boolean values.

Type Description keywordcharacter 16-bit Unicode character charboolean true/false values booleanbyte 8-bit signed integer numbers byteshort 16-bit signed integer numbers shortinteger 32-bit signed integer numbers intlong 64-bit signed integer numbers longfloat 32-bit signed floating-point numbers floatdouble 64-bit signed floating-point numbers double

Jan. 2004 25

Integers

• Java has four types to represent integers:- Type Size Rang

byte 8 bits -128 to 127short 16 bits -32,768 to 32767int 32 bits -2,147,483,648 to

2,147,483,647long 64 bits -

9,233,372,036,864,775,808 to 9,233,372,036,854,775,807

• Which type you use depends on the range of values you expect that variable to hold.

• If a value becomes too large for its type then it is truncated.

Jan. 2004 26

Integers

• All primitive types have a default value when they are declared unless you initialize them.- For an integer type, the default is zero- To declare a variable of type int: int x;

It is the same as writing int x=0;

- We can also initialize the variable upon declaration:

int x=5;• Integers may also be expressed in octal or

hexadecimal forms.- An octal: begin with the digit 0 and be followed by the digits 0 through 7: 0173- A hexadecimal: begin with digit 0x or 0X and be

followed by 0 through 9 and a (A) through f (F): 0X11EF.

Jan. 2004 27

Floating Point Numbers

• There are two types for floating-point numbers:- float

32 bits, single precisionapproximately 7 decimal digits of accuracy

- double64 bits, double precision approximately 10 decimal digits of accuracy

• Java also allows scientific notation:- 0.12e-16 is equivalent to 0.000000000000000012

• The default value for floating-point number is 0.0.

Jan. 2004 28

Characters

• Java uses the Unicode character set which means every char type has 16 bits of precision, unsigned.

• Strictly speaking, the character type is an integral type since the characters are stored by their 16 bit Unicode representation.- Example: the character ‘A’ is stored in Java as the

number 65 - 0000 0000 0100 0001. • The default value for char type is the character with

code zero, written ‘\0’, which is a non-printing character.

Jan. 2004 29

Arithmetic Operators and Expressions

• An expression is the simplest form of a statement in Java that actually accomplishes a task.

• Most of the expressions in Java use operators.• Operators are special symbols for things like

arithmetic, assignments, increment, decrement and logical operations.

• Java has 12 arithmetic operations.

Jan. 2004 30

Operators

Operator Meaning+ addition- subtraction (also unary minus)* multiplication/ division% modulus+= addition assignment-= subtraction assignment*= multiplication assignment/= division assignment%= modulus assignment++ increment-- decrement

Jan. 2004 31

Operators

• Each operator takes two operands, one on either side.- The subtraction operator can also be used to negate a

single operand.• Integer division results in an integer.

- Because integer don’t have fractional parts, any remainder is ignored.

- Example: 31/9 results in 3.• The modulus (%) operator gives the remainder after

integer division: 31%9 = 4.-5%3 = -25%-3 = 2- 5%-3 = -2

Jan. 2004 32

Operators

• There are no mixed arithmetic operators.• For expressions that involve mixed types, shorter

types are “promoted” to longer types.- byte, short, char are all promoted to an int.- int to long , to float, or to double are performed as

needed.• Example:

- 9.0/4, the integer 4 is first promoted to a floating-point number equivalent to 4.0, and then the floating-point

division is performed yielding 2.25.- The result would be a floating-point type.

Jan. 2004 33

Type Casting

• Instead of letting the compiler perform promotion for you, it is possible to do it explicitly by yourself.

• This is what is known as a type casting.• For example, if we had a float with the value 1.0,

we could type cast it into an integer by doing the following:- int x;

x = (int) 1.0;• Casting takes on the form:

(typeName) expression

Jan. 2004 34

Type Casting

• Example:

class GoodAssignment {public static void main(String args[]) {

byte b;int i=127;b=(byte) i;System.out.println(b); //display

127}}

class GoodAssignment {public static void main(String args[]) {

byte b;int i=258;b=(byte) i;System.out.println(b); //display 2}}

0 011 0... ...

8 bits

16 bits

Jan. 2004 35

Increment and Decrement

• Increment ++ and decrement -- are both unary operators.

• The increment operator can only be applied to a numeric variable and causes the value to be incremented by 1.

• There are two ways to use this operator - before the operand or - after the operand.

• The simplest way to show the difference between the two uses is by example.

Jan. 2004 36

Increment and Decrement

• Suppose we had an int variable x with the value 4, then what is the result of- 2*++x increment first- The result is 10 and the value of x would be 5.

• Now, if x was 4 again, what is the result of- 2*x++ increment after - The result is 8 and the value of x would be 5.

• The decrement operator works in the same way but instead of increasing the value, it would decrease the value by 1.- What is 2*--x?- What is 2*x--?

Jan. 2004 37

Assignment Operators

• Variable assignments are a form of expression and can be strung together like this:- x = y = z = 0;- The right side of an assignment is always evaluated first before the assignment takes place.

• There are shorthand assignment operators in Java that are taken from C and C++. They are:

Expression Meaningx+=y x=x+yx-=y x=x-yx*=y x=x*yx/=y x=x/y

Jan. 2004 38

Comparison Operators

• There are several comparison operators that test for equality and magnitude.

• All of these expressions return a boolean value as a result.

Operator MeaningExample== equal x == 4!= not equal x != 4< less than x < 4> greater than x > 4<= less than or equal to x <= 4>= greater than or equal to x >= 4

Jan. 2004 39

Logic Operators

• Logical Operators can be used to represent the logical combinations AND, OR, NOT, XOR.- You would use these operators in expressions that result

in a boolean value.• AND Operator

- use either & or && operator: A & B, A && B.- The expression will evaluate to true if both expressions

on either side of the logical operator are true.- If either side of the expressions are false, then result is

false.- The & operator will evaluate both sides of the expression

regardless of the outcome.- The && operator will first evaluate the left side. If it is

false, the expression will return false and not evaluate the right side. This is often called a “short-circuited”

expression.

Jan. 2004 40

Logic Operators

• OR Operator- The OR operator has two variants just like AND operator. They are | and ||: A | B, A || B.- OR expressions return true if either or both sides of the expression are true.- If both sides of the expressions are false, then result is false.- The | operator will evaluate both sides of the expression regardless of the outcome.- The || operator will first evaluate the left side. If it is true, the expression will return true and not evaluate the right side.

Jan. 2004 41

Logic Operators

• XOR Operator- Use the ^ operator: A ^ B.- Evaluate to true if it’s operands are different (one true and one false, or vice versa.)

• In general, the && and || operators are used for logical combinations.

• The &, |, and ^ operators are more commonly used for bitwise logical operations.

• The NOT operator uses the ! Symbol.- It returns the negation of the expression, so if x is true, the !x is false.

Jan. 2004 42

Bitwise OperatorsBitwise Operators

• Number can be represented by a set of bits (a series of 0s and 1s)

• Binary digits take on the value of 0 or 1.• Example:

the binary number (110101)2 represents the decimal number 53.

Operator Meaning& AND| OR^ XOR~ Bitwise complement>> Shift right with sign extension>>> Shift right with zero fill<< Shift left with zero fill

Jan. 2004 43

Bitwise OperatorsBitwise Operators

110101101010

100000

&110101101010

111111 |

110101^ 101010

011111

110101 111010>>

110101 011010>>>

110101 101010<<

|

Jan. 2004 44

import java.lang.*;//bit operationspublic class ShowBits {

public static void main(String args[]){byte b = -5; for (int i = 7; i>=0; i--) { if ((b & 0x80) == 0)

System.out.println("bit " + i + "is 0"); else System.out.println("bit " + i + "is 1"); b <<= 1; }}

}

Jan. 2004 45

PrecedencPrecedence

• All Java operators have a precedence that governs the order in which the operators are evaluated.

Arithmetic:

*, /, %+, -

Relational and logic:

!> >= < <=== !=&|&&||