Java Programming Basics. COMP 401, Spring 2017 Lecture 2

Similar documents
Java Programming Basics. COMP 401, Fall 2017 Lecture 2

Basic Java Syntax. COMP 401, Fall 2015 Lecture 2 1/13/2014

Basic Java Syntax, cont d. COMP 401, Fall 2015 Lecture 3 1/15/2015

Strings and Arrays. COMP 401, Fall 2017 Lecture 4

PROGRAMMING FUNDAMENTALS

Full file at

Basics of Java Programming

Java Notes. 10th ICSE. Saravanan Ganesh

CS313D: ADVANCED PROGRAMMING LANGUAGE

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

Operators. Java operators are classified into three categories:

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

Values and Variables 1 / 30

CS 231 Data Structures and Algorithms, Fall 2016

Programming with Java

1007 Imperative Programming Part II

Introduction to Programming Using Java (98-388)

Binghamton University. CS-211 Fall Syntax. What the Compiler needs to understand your program

Java Bytecode (binary file)

13 th Windsor Regional Secondary School Computer Programming Competition

WEEK 4 OPERATORS, EXPRESSIONS AND STATEMENTS

An overview of Java, Data types and variables

Lexical Considerations

CGS 3066: Spring 2015 JavaScript Reference

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

1 Lexical Considerations

Getting started with Java

BASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018

Programming Language Basics

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

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University

Lexical Considerations

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University

C++ Basics. Lecture 2 COP 3014 Spring January 8, 2018

Zheng-Liang Lu Java Programming 45 / 79

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

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

CprE 288 Introduction to Embedded Systems Exam 1 Review. 1

Language Fundamentals Summary

Sequence structure. The computer executes java statements one after the other in the order in which they are written. Total = total +grade;

More Programming Constructs -- Introduction

CS313D: ADVANCED PROGRAMMING LANGUAGE

Operators in java Operator operands.

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

CS260 Intro to Java & Android 03.Java Language Basics

Introduction to Java & Fundamental Data Types

Flow Control. CSC215 Lecture

Pace University. Fundamental Concepts of CS121 1

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

Lecture Set 2: Starting Java

Language Reference Manual

In Java, data type boolean is used to represent Boolean data. Each boolean constant or variable can contain one of two values: true or false.

Flow Control in C++ Condi&onals & Loops CS 16: Solving Problems with Computers I Lecture #4

Control Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003

7/8/10 KEY CONCEPTS. Problem COMP 10 EXPLORING COMPUTER SCIENCE. Algorithm. Lecture 2 Variables, Types, and Programs. Program PROBLEM SOLVING

Simple Java Reference

COMP-202 Unit 2: Java Basics. CONTENTS: Using Expressions and Variables Types Strings Methods

Fall 2017 CISC124 9/16/2017

Mr. Monroe s Guide to Mastering Java Syntax

Lecture Set 4: More About Methods and More About Operators

CSC 1214: Object-Oriented Programming

Expressions and Data Types CSC 121 Fall 2015 Howard Rosenthal

Key Differences Between Python and Java

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal

Lecture Set 2: Starting Java

CS251L REVIEW Derek Trumbo UNM

COMP Primitive and Class Types. Yi Hong May 14, 2015

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

Advanced Computer Programming

Expressions and Data Types CSC 121 Spring 2017 Howard Rosenthal

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

CMPT 125: Lecture 3 Data and Expressions

3. Java - Language Constructs I

Crash Course in Java. Why Java? Java notes for C++ programmers. Network Programming in Java is very different than in C/C++

Object-Oriented Programming

Syntax and Variables

Index COPYRIGHTED MATERIAL

Java is an objet-oriented programming language providing features that support

Introduction to Java

Operators. Lecture 3 COP 3014 Spring January 16, 2018

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

CS11 Java. Fall Lecture 1

Java Programming. Atul Prakash

Chapter 1 Getting Started

Information Science 1

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program

Chapter 2: Basic Elements of C++

4 Programming Fundamentals. Introduction to Programming 1 1

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

Chapter 2: Basic Elements of C++ Objectives. Objectives (cont d.) A C++ Program. Introduction

Computational Applications in Nuclear Astrophysics using Java Java course Lecture 2

CS111: PROGRAMMING LANGUAGE II

Sri Vidya College of Engineering & Technology

Following is the general form of a typical decision making structure found in most of the programming languages:

ARG! Language Reference Manual

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

Lecture Set 4: More About Methods and More About Operators

Computers Programming Course 6. Iulian Năstac

Transcription:

Java Programming Basics COMP 401, Spring 2017 Lecture 2

AverageHeightApp take 2 Same as before, but with Eclipse. Eclipse Workspace CreaJng new project CreaJng a new package CreaJng new class Running a program More about using Eclipse in recitajon.

Program OrganizaJon and ExecuJon All code in Java is organized into classes and interfaces One public class or interface per file. Not strictly true, but accept this as true for now. Also, don t worry about what an interface is for now. Must match file name. Classes can be organized into packages. Again, more on that later. Java compiler (javac) produces byte code. Java interpreter (java) executes program Need to specify a specific class name as the main class. Interpreter starts execujon with the method main Must be defined with the declarajon: public static void main(string[] args)

Comments Single line comments: // This is a comment. MulJple line comments: /* All of these lines. Are commented. */

A Word About Values Primi%ve Value Types Integers Real numbers Booleans Character Reference Types An Object String Array An object typed by a class or interface. Classes themselves Values types are defined enjrely by their value. Reference types are structures in memory. Address in memory uniquely idenjfies them. The value of a variable that holds a reference type is this address.

Integers byte, short, int, long Difference is in size (1, 2, 4, or 8 bytes) No unsigned version Value Types Decimal (255), hexidecimal (0xff), and binary (0b11111111) literal formats Real Numbers float, double Difference is in precision. Characters char Characters in Java are 16-bit Unicode values Literals use single-quote: c Unicode escape sequence: \u#### where # is hex digit. Logical boolean Example: \u00f1 for ñ Literals are true and false

Packages, classes, and methods, oh my! A package is a collecjon of classes. Defined by a package statement at the beginning of a source code file. Example: package lec02.ex01; All classes defined in the file belong to that package. A class is a collecjon of funcjons (for now). Defined by class keyword followed by a block of code delimited by curly braces. Example: public class { /* Class definition. */ } A method is just another name for a funcjon or procedure and is a named sequence of Java statements. Defined within a class. Can be called, or invoked with parameters Syntax: a method header or signature followed by a block of code delimited by curly braces.

Method DeclaraJon Almost everything you need to know about a method is in its declarajon 5 parts to a method declarajon Access modifier public, private, protected If unspecified, then package access. Method type static or default (i.e., not specified) The keyword stajc indicates that this is a class method. If the keyword stajc is not present, then this is an instance method. Return type The type of value returned by the method as a result. If there is no result, then this is indicated by the keyword void. Method name Must start with a lejer, $, or _ Can contain lejers, numbers, $, or _ (no spaces or other punctuajon) Parameter list In parenthesis, comma-separated list of typed parameter names.» If the method has no parameters, then just: () Each parameter variable name is preceded by a type declarajon.

Method DeclaraJon Examples public static void main(string[] args) int foo (int a, MyType b, double c) protected static void bar() static String touppercase(string s) static private Secret my_secret()

UnJl we know a lijle more All of the methods in my examples today are going to be public class methods. This means their declarajons will include the words: public stajc

Inside a method The body of a method is a sequence of statements. A statement ends in a semi-colon Types of statements: DeclaraJons of local variables Assignment CondiJonal Loop Method call Return statement Blocks Zero or more statements enclosed in curly braces { } Allowed anywhere a single statement is allowed. And vice versa

Inside a method The body of a method is a sequence of statements. A statement ends in a semi-colon Types of statements: DeclaraJon of local variables Assignment CondiJonal Loop Method call Return statement Statement Blocks One or more statements enclosed in curly braces { } Allowed anywhere a single statement is allowed. And vice versa

Local variable declarajon Syntax: type name; type name1, name2, name3; type name = value; A local variable is valid within the block of statements where the declarajon occurs. This is known as the scope of the variable. The declarajon must occur before the variable is used. Parameter names are local variables that are in scope for the enjre method body.

Variable Names Variable names should start with a lejer and can contain lejers, digits, $, or _ Cannot start with digit Cannot contain whitespace or punctuajon other than $ or _ In general, use of punctuajon in variable names is discouraged. Case sensijve Cannot be a keyword (e.g. for, while, if, ) Legal: foo, bar, a_variable, var123 Legal but not considered good: var_with_$, _badness Illegal: 1var, while, break, this has whitespace

Inside a method The body of a method is a sequence of statements. A statement ends in a semi-colon Types of statements: DeclaraJons of local variables Assignment CondiJonal Loop Method call Return statement Blocks Zero or more statements enclosed in curly braces { } Allowed anywhere a single statement is allowed. And vice versa

Assignment Syntax: variable = expression; Note: single equals for assignment. Ler hand side must be some sort of variable name that can be assigned. Expression must produce a value that matches the type of the variable.

Expressions A sequence of symbols that can be evaluated to produce a value. Can be used wherever a value is expected. Types of expressions: Literal values: 123, c, a string, true Named value: a_variable Value retrieved from an array: my_array[3] Class/object fields: Math.PI Value as a result of a method call: foo() Compound expression of operators: 4+3*2

Operators ArithmeJc: +, -, /, *, % RelaJonal: ==,!=, >, >=, <, <= Boolean: &&,,! Ternary:?: boolean_expression? value_if_true : value_if_false Bitwise: ~, <<, >>, >>>, &,, ^ Be aware of precedence Can be controlled by explicitly grouping with () Be aware of context Some operators do different things depending on the types of the values they are applied to.

Assignment and Unary Operators Most numeric operators have an assignment form. Easy syntax for applying the operator to a variable and assigning the result back to the same variable. Examples: a += 3 // Equivalent to a = a + 3 b *= 4 // Equivalent to b = b * 4 Unary operators ++ and -- Used with integer typed variables to increment and decrement. Usually used as a statement unto itself: a++; // Equivalent to a = a + 1; b--; // Equivalent to b = b 1;

ImporJng JAR files into a project Save JAR file somewhere. Create the project in Eclipse if not already extant. Right click the src folder in the project and choose, Import Choose the type General->Archive and click Next Browse for and select the JAR file. Click Finish

lec02.ex2.example2 Variable declarajons for value types Integer math vs. Real math Ternary operator Operator precedence Boolean operator shortcut

Inside a method The body of a method is a sequence of statements. A statement ends in a semi-colon Types of statements: Variable declarajon Assignment CondiJonal Loop Method call Return statement Blocks Zero or more statements enclosed in curly braces { } Allowed anywhere a single statement is allowed. And vice versa

CondiJonal ExecuJon: if-else if-else if (expression) { // Block of statements } else if (expression) { // Block of statements } else { } // Block of statements 23

if example if (score > 90) { System.out.println( You got an A! ); } else if (score > 80) { System.out.println( You got a B. ); } else if (score > 70) { System.out.println( You got a C? ); } else if (score > 60) { System.out.println( You got a D :-( ); } else { System.out.println( You failed ); }

CondiJonal ExecuJon: switch switch (expression) { case value: statements break; case value: statements break;... default: statements } Works with basic value data types Works with String as of Java 7 ExecuJon starts at first matching case value or default if provided and no case matches ConJnues unjl break statement or end of switch.

Switch Example switch (c) { case 'a': case 'e': case 'i': case 'o': case 'u': System.out.println("Vowel"); break; default: System.out.println("Consonant"); }

lec02.ex3.example3 if and switch demo Variables scoped within block Style hint: Don t test boolean expression against true/false TesJng real numbers with epsilon bounds

Inside a method The body of a method is a sequence of statements. A statement ends in a semi-colon Types of statements: Variable declarajon Assignment CondiJonal Loop Method call Return statement Blocks Zero or more statements enclosed in curly braces { } Allowed anywhere a single statement is allowed. And vice versa

Loops: while while (expression) { } block do { block } while (expression);

while example int sum = 0; int n = 1; while (n < 11) { } sum += n; n++; System.out.println( The sum of 1 to 10 is: + sum);

Loops: for for (init; test; update) { } block

for example int sum = 0; for(int n=1; n<11; n++) { sum += n; } System.out.println( The sum of 1 to 10 is: + sum); Note that variable n is declared as part of init expression in for loop. This is a common programming idiom if loop variable is only needed for the loop. Scope of variable is limited to the loop block.

Loop odds and ends To skip to next iterajon use a conjnue statement. To break out of the loop body use break statement.

Example 4 while and for while and for equivalence scope of for loop variable break / conjnue

Inside a method The body of a method is a sequence of statements. A statement ends in a semi-colon Types of statements: Variable declarajon Assignment CondiJonal Loop Method call Return statement Blocks Zero or more statements enclosed in curly braces { } Allowed anywhere a single statement is allowed. And vice versa

Calling Methods Calling a class method defined in the same class: methodname(parameters) Calling a class method defined in a different class (same package): ClassName.methodName(parameters) Calling a class method defined in a different package: PackageName.ClassName.methodName(parameters) In the above parameters is a comma separated list of values. Must match in number and type according to method s signature. A method call that returns a value (i.e., not a void method) can be part of an expression. Conversely, a void method can not be part of an expression. int max_times_min = max(a, b, c) * min(a, b, c);

Inside a method The body of a method is a sequence of statements. A statement ends in a semi-colon Types of statements: Variable declarajon Assignment CondiJonal Loop Method call Return statement Blocks Zero or more statements enclosed in curly braces { } Allowed anywhere a single statement is allowed. And vice versa

Return Syntax: return expression; Ends execujon of a method and returns the value of the expression as the result of the method. Must match type declared in method signature. If method return type is void, then simply: return;

lec02.ex5.example5 Calling methods Compound expressions providing value for parameter to method call. Returning from middle of method Generally, try to avoid. Unreachable code error Calling method in same/different class, same/ different package lec02.ex5.example5other

Import DirecJve Maps class names from other packages into current name space. Convenient if going to use one or more class names repeatedly. Map all names from a package: import package.*; Map a specific name from a package: import package.name;

Example5OtherRevisited import Math revisited Classes in java.lang package are automajcally imported.