Outline. Why Java? (1/2) Why Java? (2/2) Java Compiler and Virtual Machine. Classes. COMP9024: Data Structures and Algorithms

Similar documents
Outline. Java Compiler and Virtual Machine. Why Java? Naming Conventions. Classes. COMP9024: Data Structures and Algorithms

Object oriented programming. Instructor: Masoud Asghari Web page: Ch: 3

1. Introduction to Java for JAS

Introduction to Programming Using Java (98-388)

Java Primer 1: Types, Classes and Operators

The Java language has a wide variety of modifiers, including the following:

c) And last but not least, there are javadoc comments. See Weiss.

Introduction to Java

boolean, char, class, const, double, else, final, float, for, if, import, int, long, new, public, return, static, throws, void, while

CS260 Intro to Java & Android 03.Java Language Basics

Tools : The Java Compiler. The Java Interpreter. The Java Debugger

Control Flow Statements

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal

Java Programming Tutorial 1

Full file at

Expressions and Data Types CSC 121 Fall 2015 Howard Rosenthal

Objectives. Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Learning the Java Language. 2.1 Object-Oriented Programming

Course Outline. Introduction to java

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview

CONTENTS: Compilation Data and Expressions COMP 202. More on Chapter 2

Pace University. Fundamental Concepts of CS121 1

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Introduction to. Android Saturday. Yanqiao ZHU Google Camp School of Software Engineering, Tongji University. In courtesy of The Java Tutorials

CS11 Java. Fall Lecture 1

CS 231 Data Structures and Algorithms, Fall 2016

Operators and Expressions

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Program Fundamentals

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Java provides a rich set of operators to manipulate variables. We can divide all the Java operators into the following groups:

CSC 1214: Object-Oriented Programming

Computer Programming, I. Laboratory Manual. Experiment #2. Elementary Programming

PROGRAMMING FUNDAMENTALS

1 Shyam sir JAVA Notes

Java Overview An introduction to the Java Programming Language

Using Java Classes Fall 2018 Margaret Reid-Miller

Expressions & Flow Control

MIDTERM REVIEW. midterminformation.htm

Index COPYRIGHTED MATERIAL

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

Full file at

JAVA OPERATORS GENERAL

Data Structures Lecture 1

CSCI 2010 Principles of Computer Science. Data and Expressions 08/09/2013 CSCI

Programming with Java

Java Bytecode (binary file)

Java Basic Programming Constructs

Computational Expression

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

Lecture Set 2: Starting Java

Outline. Parts 1 to 3 introduce and sketch out the ideas of OOP. Part 5 deals with these ideas in closer detail.

Interpreted vs Compiled. Java Compile. Classes, Objects, and Methods. Hello World 10/6/2016. Python Interpreted. Java Compiled

Java provides a rich set of operators to manipulate variables. We can divide all the Java operators into the following groups:

CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University

Lecture Set 2: Starting Java

Datatypes, Variables, and Operations

Java+- Language Reference Manual

A variable is a name that represents a value. For

12/22/11. Java How to Program, 9/e. public must be stored in a file that has the same name as the class and ends with the.java file-name extension.

Data and Expressions. Outline. Data and Expressions 12/18/2010. Let's explore some other fundamental programming concepts. Chapter 2 focuses on:

Operators. Java operators are classified into three categories:

Java Language Basics: Introduction To Java, Basic Features, Java Virtual Machine Concepts, Primitive Data Type And Variables, Java Operators,

BIT Java Programming. Sem 1 Session 2011/12. Chapter 2 JAVA. basic

8. Decision-Making Statements. Java. Summer 2008 Instructor: Dr. Masoud Yaghini

JAVA Programming Fundamentals

CMPT 125: Lecture 3 Data and Expressions

Computer Components. Software{ User Programs. Operating System. Hardware

Array. Prepared By - Rifat Shahriyar

Chapter 3: Operators, Expressions and Type Conversion

Programming. Syntax and Semantics

13 th Windsor Regional Secondary School Computer Programming Competition

Lecture 1: Overview of Java

Lecture 2. COMP1406/1006 (the Java course) Fall M. Jason Hinek Carleton University

CMSC131. Introduction to your Introduction to Java. Why Java?

DM550 / DM857 Introduction to Programming. Peter Schneider-Kamp

F1 A Java program. Ch 1 in PPIJ. Introduction to the course. The computer and its workings The algorithm concept

Computer Components. Software{ User Programs. Operating System. Hardware

Review Chapters 1 to 4. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

More Things We Can Do With It! Overview. Circle Calculations. πr 2. π = More operators and expression types More statements

Chapter 2. Elementary Programming

Programming overview

Basics of Java Programming

Text User Interfaces. Keyboard IO plus

A variable is a name for a location in memory A variable must be declared

Research Group. 3: Loops, Arrays

Preview from Notesale.co.uk Page 9 of 108

CGS 3066: Spring 2015 JavaScript Reference

Loops. CSE 114, Computer Science 1 Stony Brook University

Data and Variables. Data Types Expressions. String Concatenation Variables Declaration Assignment Shorthand operators. Operators Precedence

CHAPTER 7 OBJECTS AND CLASSES

Fall 2017 CISC124 9/16/2017

Primitive Data Types: Intro

IC Language Specification

COMP 202 Java in one week

Outline. Overview. Control statements. Classes and methods. history and advantage how to: program, compile and execute 8 data types 3 types of errors

Tester vs. Controller. Elementary Programming. Learning Outcomes. Compile Time vs. Run Time

CEN 414 Java Programming

COMP-202: Foundations of Programming. Lecture 4: Flow Control Loops Sandeep Manjanna, Summer 2015

Transcription:

COMP9024: Data Structures and Algorithms Week One: Java Programming Language (I) Hui Wu Session 2, 2016 http://www.cse.unsw.edu.au/~cs9024 Outline Classes and objects Methods Primitive data types and operators Arrays Control flow I/O streams 1 2 Why Java? (1/2) Why Java? (2/2) Most popular programming language for all applications http://spectrum.ieee.org/computing/software/the-2015-top-ten-programming-languages Simple Architecture neutral Object oriented Portable Distributed High performance Multithreaded Robust Dynamic Secure 3 4 Java Compiler and Virtual Machine Classes Java compiler converts the source program into bytecodes the machine language of Java Virtual Machine (Java VM). Java VM converts the bytecodes into the machine code which can be run directly on the local computer. A class consists of a collection of variables, or fields, and a set of functions, called methods. A class serves as a template of objects. 5 6 1

Naming Conventions A Counter Class Java is case-sensitive; max, max, and max are three different names. Class names begin with a capital letter. All other names begin with a lowercase letter. Subsequent words are capitalized: firstvalue. Underscores are not used in names. public class Counter { protected int count; // a simple integer instance variable /** The default constructor for a Counter object */ Counter() { count=0; /** three methods are defined as follows */ public int getcount() { return count; public void incrementcount() { count++; public void decrementcount() { count--; 7 8 Class Modifiers Variables abstract Describes a class that has abstract methods. A abstract method is declared with the abstract keyword and is empty. final Describes a class with no subclasses. public Describes a class that can be instantiated or extended. Instance variables (non-static fields) fields declared without the static keyword Class variables (static fields) fields declared with the static keyword Local variables Variables declared within a method Parameters 9 10 Variables Modifiers (1/2) Variables Modifiers (2/2) The scope of an instance variable is controlled by the following variable modifiers: public Anyone can access it protected Only the methods of the same package or of its subclasses can access it private Only the methods of the same class can access them If none of the modifiers above are used, then the variable is friendly. Friendly variables can only be accessed by classes in the same package. 11 In addition to scope variable modifiers, there are also usage modifiers: static Declares a variable that is associated with a class, not with individual instances of that class. final Declares a variable that must be assigned an initial value, and then can never be assigned a new value after that. 12 2

Methods Method Modifiers (1/2) Syntax: modifiers type name( type 0 para 0, type n-1 para n-1 ){ // method body type defines the return type of the method. 13 The scope of a method is controlled by the following variable modifiers: public Anyone can call it. protected Only the methods of the same package or of subclasses can call it. private Only the methods of the same class can call it. If none of the modifiers above are used, then the method is friendly. Friendly methods can only be called by objects of classes in the same package. 14 Method Modifiers (2/2) Constructors The above modifiers may be followed by additional modifiers: final This method cannot be overridden by a subclass. static This method is associated with the class itself, not with a particular instance of the class. A class has a special method, called constructor. It is used to initialize the object instantiated from the class. 15 16 Overloading Methods The Main Method Methods within a class can have the same name if they have different parameter lists. Overloaded methods are differentiated by the number and the type of the arguments passed into the method. public class DataArtist {... public void draw(int i) {... public void draw(double f) {... public void draw(int i, double f) {... The main method is the method through which a java program is executed. Syntax: public static void main(string [] args) { \\ main method body 17 18 3

Objects (1/3) Objects (2/3) An object is an instance of a class. Created by using the new operator. A new object is dynamically allocated in memory and all instance variables are initialized to standard default values: null for objects 0 for all base types false for boolean variable The constructor for the new object is called with the parameters specified. After the constructor returns, the new operator returns a reference (memory address) to the newly created object. 19 20 Objects (3/3) String Objects public class Example { public static void main (String args) { Counter c; Counter d = new Counter(); c = new Counter(); d = c; A string is a sequence of characters from the Unicode internal characters set. String objects are immutable, which means that once created, their values cannot be changed. An example of Java strings: String s = kilo + meters where String the name of Java String class and + is the concatenation operator. 21 22 Object References Primitive Types The variables and methods of an object are referenced via the dot operator. Examples of object references: c = new Counter(); c.incrementcount(); boolean true or false char 16-bit Unicode character byte 8-bit signed two s complement integer short int long Same as in C float double No unsigned numbers! 23 24 4

Literals Operators (1/3) Object literal: null Boolean: true and false Integer: Default type is int: -52, 172 Long integer ended with L or l: 186L, 54l Float point Default type is double: 12.5, 1.25 Type float ended with F or f: 12.5F, 1.5f Character Strings literals: dogs cannot fly Operator Purpose + addition of numbers, concatenation of Strings += add and assign numbers, concatenate and assign Strings - subtraction -= subtract and assign * multiplication *= multiply and assign / division /= divide and assign % take remainder %= take remainder and assign ++ increment by one -- decrement by one 25 26 Operators (2/3) Operators (3/3) Operator Purpose > greater than >= greater than or equal to < less than <= less than or equal to! boolean NOT!= not equal to && boolean AND boolean OR == boolean equals = assignment ~ bitwise NOT?: conditional Operator Purpose Instanceof type checking bitwise OR = bitwise OR and assign ^ bitwise XOR ^= bitwise XOR and assign & bitwise AND &= bitwise AND and assign >> shift bits right with sign extension >>= shift bits right with sign extension and assign << shift bits left <<= shift bits left and assign >>> unsigned bit shift right >>>= unsigned bit shift right and assign 27 28 Control Statements if-else if-else switch while loop for loop do-while loop void applybrakes(){ if (ismoving){ // the "if" clause: bicycle must moving currentspeed-- ; // the "then" clause: decrease current speed void applybrakes(){ if (ismoving) { currentspeed--; else { System.err.println("The bicycle has already stopped!"); 29 30 5

switch while Loop class SwitchDemo { public static void main(string[] args) { int day = 1; switch (day) { case 1: System.out.println( Saturday"); break; case 2: System.out.println( Sunday"); break; default: System.out.println( Workday"); break; class WhileDemo{ public static void main(string[] args){ int count = 1; while (count < 11) { System.out.println("Count is: " + count); count++; 31 32 do-while Loop for loop class DoWhileDemo{ public static void main(string[] args){ int count = 1; do { System.out.println("Count is: " + count); count++; while (count <= 11); class ForDemo { public static void main(string[] args){ for(int i=1; i<11; i++) System.out.println("Count is: " + i); 33 34 Arrays (1/4) Arrays (2/4) An array is a container object that holds a fixed number of values of a single type. The length of an array is established when the array is created. After creation, its length is fixed. class ArrayDemo { public static void main(string[] args) { int [] anarray; // declares an array of integers anarray = new int[10]; /** allocates memory for 10 integers */ for (int i=0; i<anarray.length; i++) anarray[i]=i; /* anarray.length returns the length of anarray, i.e. 10. */ 35 36 6

Arrays (3/4) Arrays (4/4) The System class has an arraycopy method that can be used to efficiently copy data from one array into another: public static void arraycopy(object src, int srcpos, Object dest, int destpos, int length) The two Object arguments specify the array to copy from and the array to copy to. The three int arguments specify the starting position in the source array, the starting position in the destination array, and the number of array elements to copy. class ArrayCopyDemo { public static void main(string[] args) { char[] copyfrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't', 'e', 'd' ; char[] copyto = new char[7]; System.arraycopy(copyFrom, 2, copyto, 0, 7); System.out.println(new String(copyTo)); 37 38 Nested Classes Why Nested Classes? A nested class is a member of its enclosing class and, as such, has access to other members of the enclosing class, even if they are declared private. A nested class can be declared private, public, protected, or package private while an outer class can only be declared public or package private. It is a way of logically grouping classes that are only used in one place. It increases encapsulation. Nested classes can lead to more readable and maintainable code. class OuterClass {... class NestedClass {... For more about nested classes, refer to http://java.sun.com/docs/books/tutorial/java/javaoo /innerclasses.html 39 40 Packages (1/4) Packages (2/4) Java package is a mechanism for organizing Java classes into namespaces. A package provides a unique namespace for the types it contains. Classes in the same package can access each other's protected members. A package can contain the following kinds of types. Classes Interfaces Enumerated types Annotations In Java source files, the package that the file belongs to is specified with the package keyword. package java.awt.event; To use a package inside a Java source file, use an import statement to import the classes from the package. //imports all classes from the java.awt.event package: import java.awt.event.*; //imports only the ActionEvent class from the package: import java.awt.event.actionevent; 41 42 7

Packages (3/4) Packages (4/4) After either of these import statements, the ActionEvent class can be referenced using its simple class name: ActionEvent myevent = new ActionEvent(); Classes can also be used directly without an import statement by using the fully-qualified name of the class. For example, java.event.actionevent myevent = new java.awt.event.actionevent(); Packages are usually defined using a hierachical naming pattern, with levels in the hierarchy separated by periods (.) (pronounced "dot"). In general, a package name begins with the top level domain name of the organization and then the organization's domain and then any subdomains listed in reverse order. The organization can then choose a specific name for their package. Package names should be all lowercase characters whenever possible. For more naming details, refer to Java Language Specification( http://java.sun.com/docs/books/jls/third_edition/html/packages.html#7.7). 43 44 I/O Streams (1/3) I/O Streams (2/3) An I/O Stream represents an input source or an output destination. A stream can represent many different kinds of sources and destinations, including disk files, devices, other programs, and memory arrays. No matter how they work internally, all streams present the same simple model to programs that use them: A stream is a sequence of data. A program uses an input stream to read data from a source, one item at a time: 45 46 I/O Streams (3/3) Simple Output Methods A program uses an output stream to write data to a destination, one item at time: Java provides a built-in static object, called System.out to perform output to the standard output device. This object provides the following methods for buffered output stream: print(object o): Print the object o using its tostring methood. print (String s): Print the string s. print(basetype b): Print the base type value of b. println(string s): Print the string s, followed by the newline. character. 47 48 8

Simple Input Methods (1/4) Simple Input Methods (2/4) The Scanner class reads the input and divides it into tokens, which are contiguous strings of characters separated by delimiter. The default delimiters are whitespace, tab and newline. So tokens are separated by strings of whitespaces, tabs and newlines. The resulting tokens may then be converted into values of different types using the various next methods. The Scanner class provides the following methods: hasnext(): Return true if only if there is another token in the input stream. Next(): Return the next token string in the input stream; generate an error if there are no more tokens left. nexttype(): Return the next token in the input stream, returned as the base type corresponding to Type; generate an error if there are no more token left or if the next token cannot be interrpreted as a base type correspondong to Type. 49 50 Simple Input Methods (3/4) Simple Input Methods (4/4) hasnexttype(): Return true if and only if there is another token in the input string and it can be interpreted as the corresponding base type Type, where Type can be Boolean, Byte, Double, Int, Long, or Short. The Scanner class also provides the following methods for processing input line by line: hasnextline(): Return true if and only if the input stream has another line of text nextline(): Adance the input past the current line and returns the input that was skipped. findinline(string s): Attempt to find a string matching the (regular expression) pattern s in the current line. If the pattern is found, it is returned and the scanner advances to the first character after this match. If not, the scanner returns null and does not advance. 51 52 An Example of Simple I/O (1/2) An Example of Simple I/O (2/2) import java.io.*; import java.util.scanner; public class InputExample { public static void main(string args[]) throws IOException { Scanner s = new Scanner(System.in); System.out.print("Enter your height in centimeters: "); float height = s.nextfloat(); System.out.print("Enter your weight in kilograms: "); float weight = s.nextfloat(); float bmi = weight/(height*height)*10000; System.out.println("Your body mass index is " + bmi + "."); System.out.print("Please enter an integer: "); while (!s.hasnextint()) { s.nextline(); System.out.print("That's not an integer; please enter an integer: "); int i = s.nextint(); 53 54 9

Run A Java Program References You need to install a JAVA IDE (Integrated Development Environment), either Netbeans (https://netbeans.org/), or Eclipes (https://www.eclipse.org/). Step One: Create your source file, say HelloWorldApp.java Step Two: Compile your program into bytecodes: javac HelloWorldApp.java Java compiler will convert the source code into bytecodes and store it in the file HelloWorldApp.class Run the bytecodes: java HelloWorldApp 55 1. Chapter 1, Data Structures and Algorithms by Goodrich and Tamassia. 2. The Java TM Tutorials (http://java.sun.com/docs/books/tutorial/). 56 10