Advanced Programming in Java

Slides:



Advertisements
Similar presentations
Programming Languages and Paradigms The C Programming Language.
Advertisements

Chapter 41 Variables and JSP Control Structures JavaServer Pages By Xue Bai.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 2 1 Chapter 2 Primitive.
Primitive Data Types and Operations. Introducing Programming with an Example public class ComputeArea { /** Main method */ public static void main(String[]
Java Syntax Primitive data types Operators Control statements.
CS 106 Introduction to Computer Science I 10 / 04 / 2006 Instructor: Michael Eckmann.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie June 27, 2005.
Chapter 8 Arrays and Strings
Agenda Review User input Scanner Strong type checking Other flow-control structures switch break & continue Strings Arrays 2.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved. 1 Chapter 2 Elementary Programming.
Chapter 2: Basic Elements of Java J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.
System development with Java Lecture 2. Rina Errors A program can have three types of errors: Syntax and semantic errors – called.
1 Do you have a CS account? Primitive types –“ building blocks ” for more complicated types Java is strongly typed –All variables in a Java program must.
Sadegh Aliakbary. Copyright ©2014 JAVACUP.IRJAVACUP.IR All rights reserved. Redistribution of JAVACUP contents is not prohibited if JAVACUP.
CIS 260: App Dev I. 2 Programs and Programming n Program  A sequence of steps designed to accomplish a task n Program design  A detailed _____ for implementing.
Basics of Java IMPORTANT: Read Chap 1-6 of How to think like a… Lecture 3.
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
1 © 2002, Cisco Systems, Inc. All rights reserved. Arrays Chapter 7.
JAVA 0. HAFTA Algorithms FOURTH EDITION Robert Sedgewick and Kevin Wayne Princeton University.
Arrays Chapter 8. What if we need to store test scores for all students in our class. We could store each test score as a unique variable: int score1.
C++ Programming: From Problem Analysis to Program Design, Fifth Edition Arrays.
Java Programming: From Problem Analysis to Program Design, 4e Chapter 2 Basic Elements of Java.
Using Data Within a Program Chapter 2.  Classes  Methods  Statements  Modifiers  Identifiers.
 Pearson Education, Inc. All rights reserved Introduction to Java Applications.
 The if statement and the switch statement are types of conditional/decision controls that allow your program.  Java also provides three different looping.
Chapter 4: Control Structures II
Introduction to Java Java Translation Program Structure
Java Overview. Comments in a Java Program Comments can be single line comments like C++ Example: //This is a Java Comment Comments can be spread over.
August 6, 2009 Data Types, Variables, and Arrays.
Java Programming Java Basics. Data Types Java has two main categories of data types: –Primitive data types Built in data types Many very similar to C++
Vladimir Misic: Characters and Strings1Tuesday, 9:39 AM Characters and Strings.
Lecture 2: 1226 Review Tami Meredith. Programming Process How do we fill in the yellow box? Text Editor Compiler (javac) Interpreter (JVM: java) User.
Control Flow. Data Conversion Promotion happens automatically when operators in expressions convert their operands For example, if sum is a float and.
Java Programming, Second Edition Chapter Two Using Data Within a Program.
A Simple Java Program //This program prints Welcome to Java! public class Welcome { public static void main(String[] args) { public static void main(String[]
1 Lecture 5 More Programming Constructs Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology.
Java String 1. String String is basically an object that represents sequence of char values. An array of characters works same as java string. For example:
2: Basics Basics Programming C# © 2003 DevelopMentor, Inc. 12/1/2003.
An Introduction to Java – Part 1 Erin Hamalainen CS 265 Sec 001 October 20, 2010.
Chapter 1 Java Programming Review. Introduction Java is platform-independent, meaning that you can write a program once and run it anywhere. Java programs.
CSC Java Programming, Spring, 2010 Week 2: Java Data Types, Control Constructs, and their C++ counterparts.
Basic Concepts Mehdi Einali Advanced Programming in Java 1.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
Basic Concepts Mehdi Einali Advanced Programming in Java 1.
CS 106 Introduction to Computer Science I 09 / 10 / 2007 Instructor: Michael Eckmann.
Java Programming: From Problem Analysis to Program Design, Second Edition 1 Lecture 1 Objectives  Become familiar with the basic components of a Java.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Elementary Programming.
1 1 Chapter 2 Elementary Programming. 2 2 Motivations In the preceding chapter, you learned how to create, compile, and run a Java program. Starting from.
CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 11 GEORGE KOUTSOGIANNAKIS 1 Copyright: 2015 Illinois Institute of Technology_ George Koutsogiannakis.
Object Oriented Programming Lecture 2: BallWorld.
CSE 110: Programming Language I Matin Saad Abdullah UB 1222.
Chapter 4: Control Structures I J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition Second.
Lecture 3: More Java Basics Michael Hsu CSULA. Recall From Lecture Two  Write a basic program in Java  The process of writing, compiling, and running.
CS202 Java Object Oriented Programming Review of Language Basics Chengyu Sun University of California, Santa Barbara.
Information and Computer Sciences University of Hawaii, Manoa
Elementary Programming
Yanal Alahmad Java Workshop Yanal Alahmad
Multiple variables can be created in one declaration
Java Programming: From Problem Analysis to Program Design, 4e
SELECTION STATEMENTS (1)
Primitive Types Vs. Reference Types, Strings, Enumerations
Chapter 2.
Advanced Programming Behnam Hatami Fall 2017.
Advanced Programming in Java
Introduction to Java Programming
Chapter 2: Basic Elements of Java
elementary programming
Chapter 3 Selections Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved.
Presentation transcript:

Advanced Programming in Java Presented by: Mojtaba Khezrian

Agenda User input Strong type checking Other flow-control structures Scanner Strong type checking Other flow-control structures switch break & continue Strings Arrays Fall 2014 Sharif University of Technology

User Input Print on console How to read from console? Scanner Example: System.out.println How to read from console? Scanner Example: Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); double d = scanner.nextDouble(); Fall 2014 Sharif University of Technology

Example Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); long pow = power(a,b); System.out.println(pow); Fall 2014 Sharif University of Technology

Type Checking Java has a strong type-checking mechanism Some assignment is not permitted int intVal = 2; long longVal =12; intVal = longVal;Syntax Error longVal = intVal;OK intVal = (int)longVal; OK (Type Casting) Fall 2014 Sharif University of Technology

Direct Type Conversion The arrows are transitive All other conversions need an explicit cast boolean is not convertible char is a special type byte short char int long boolean float double Fall 2014 Sharif University of Technology

Type Conversion Grid Reference: http://docstore.mik.ua/orelly/java-ent/jnut/ch02_04.htm#javanut3-ch-2-tab-4 Fall 2014 Sharif University of Technology

Type Conversion N : the conversion cannot be performed Y : the conversion is performed automatically and implicitly by Java C : the conversion is a narrowing conversion and requires an explicit cast Y* : the conversion is an automatic widening conversion, but that some of the least significant digits of the value may be lost by the conversion Fall 2014 Sharif University of Technology

Example i = 123456789; //a big integer f = i; //f stores an approximation of i System.out.println(f);//output : 1.23456792E8 i = (int) f; System.out.println(i); //output : 123456792 They cannot always hold as many significant digits as the integer types Fall 2014 Sharif University of Technology

Floating Point, Some Notes Infinity double inf = Double.MAX_VALUE*2; Negative infinity double inf = Double.MAX_VALUE*(-2); Double.NEGATIVE_INFINITY Double.POSITIVE_INFINITY Formatting a double System.out.format("min double = %5.2f%n", ff);

Comparison Compare doubles Using == with float or double is an anti-pattern An infinite loop: for (float f = 10f; f != 0; f -= 0.1) { System.out.println(f); } Fall 2014 Sharif University of Technology

Numeric Assignments Numeric Suffix Assignment Overflow Double d = 123.54d; Float f = 123f; Long l = 123123 l; byte b = 127;//Nothing Assignment Overflow Large long to int Lower bits are used No runtime error Large double to integer Brings a max int

Switch statement An alternative to if-else Better structure Before Java 1.7 When the condition is a numeric or an ordinal variable With Java 1.7 Strings are also allowed Fall 2014 Sharif University of Technology

switch example switch (i) { case 1: System.out.println("1"); break; case 2: System.out.println("2"); default: System.out.println("default"); } Fall 2014 Sharif University of Technology

Scanner scanner = new Scanner(System Scanner scanner = new Scanner(System.in); boolean again = true; while(again){ System.out.println("1: Play"); System.out.println("2: Setting:"); System.out.println("3: Exit"); System.out.print("Enter Your Choice:"); int i = scanner.nextInt(); switch (i) { case 1: play(); break; case 2: setting(); case 3: again = false; default: System.out.println("Enter a valid number"); } Fall 2014 Sharif University of Technology

Break while(true){ int nextInt = scanner.nextInt(); if(nextInt==0) Breaks the execution of a loop while(true){ int nextInt = scanner.nextInt(); if(nextInt==0) break; ... } Fall 2014 Sharif University of Technology

Continue for(int i=0;i<10;i++){ if(i==4)continue; Stops the execution of the body of the loop and continues from the beginning of the loop for(int i=0;i<10;i++){ if(i==4)continue; System.out.println(i); } Difference between continue in for and while Fall 2014 Sharif University of Technology

Nested Loops Scanner scanner = new Scanner (System.in); int nextInt; do{ nextInt = scanner.nextInt(); for(int i=0;i<nextInt;i++){ System.out.println(i); } }while(nextInt>0); How to break or continue from outer loop? Fall 2014 Sharif University of Technology

Label outer: for (int i = 0; i < 10; i++) inner: for (int j = 0; j < 10; j++) { if (j == 2) break outer; else { System.out.println(i); System.out.println(j); continue inner; } Fall 2014 Sharif University of Technology

Tip of the Day: Indentation int nextInt; do{ nextInt = scanner.nextInt(); for(int i=0;i<nextInt;i++){ System.out.println(i); } }while(nextInt>0); Fall 2014 Sharif University of Technology

Tip of the Day: Indentation int nextInt; do{ nextInt = scanner.nextInt(); for(int i=0;i<nextInt;i++){ System.out.println(i); } }while(nextInt>0); Fall 2014 Sharif University of Technology

Comments Comments are ignored by compiler One-line comment //nextInt = scanner.nextInt(); Multiple-line comment /*nextInt = scanner.nextInt(); for(int i=0;i<nextInt;i++){ System.out.println(i); } */ Javadoc comments /** * ... text ... */ Fall 2014 Sharif University of Technology

Comment Example /** * @author Ali Alavi * If the input is a prime number, it returns true */ public boolean isPrime(int number){ if(number <1) return false; /*if(isEven(number)) for(int i=2;i<number/2;i++)//searching for a divisible if(number%i==0) ... Fall 2014 Sharif University of Technology

String A sequence of characters Character: Strings: char ch = ‘a’; char ch = ‘1’; char ch = ‘#’; Strings: String st = “Ali”; String st = “123”; String st = “1”; String st = “”; String is not a primitive type Fall 2014 Sharif University of Technology

String String in C and C++ Some functions String in java is a class char* and char[] \0 at the end of String Some functions strlen, strcpy, … String in java is a class String in java is not equal to char[] Constant strings “salam!” “Hello world!” Fall 2010 Sharif University of Technology

Example Scanner scanner = new Scanner(System.in); String input; input = scanner.next(); switch (input) { case "Salam": System.out.println("Hi!"); break; case "Khodahafez": System.out.println("Bye!"); default: System.out.println("Ha?!"); } System.out.println(input); Fall 2014 Sharif University of Technology

Example(2) String input = "Nader and Simin, A Separation"; char ch = input.charAt(0); int i = input.indexOf("Nader"); int j = input.lastIndexOf("Simin"); String newS = input.replace("Separation", "Reconciliation"); String sth = newS + ch + i + j; System.out.println(sth); Fall 2014 Sharif University of Technology

String methods charAt concat  plus (+) operator contains startsWith endsWith indesxOf  first index of sth lastIndexOf replace substring length split Fall 2010 Sharif University of Technology

Regular Expression Regular Expression or Regex Regex is a way to describe a set of strings Based on their common characteristics Regex can be used to search, edit, or manipulate text You must learn a specific syntax to create regex http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html Fall 2014 Sharif University of Technology

Regex Examples Regex Meaning Example Salam \d A digit 4 5 9 . Any character 2 A # [afg] a or f or g a f g [a-zA-Z] Range: a through z or A through Z, inclusive m Salam|bye Salam or bye bye a+ One or more a aa aaaaaaa [a-z]+[\\d]* A lowercase string and an optional integer number ali ali24 a43 Fall 2014 Sharif University of Technology

String and Regex String input = "Nader and Simin"; boolean noDigitString = input.matches("[\\D]+"); System.out.println(noDigitString); String[] array = input.split("[ ,]"); Fall 2014 Sharif University of Technology

Regex Usage String input = "Nader and Simin, A Separation."; input = input.replace(".", "*"); //input = Nader and Simin, A Separation* input = input.replaceAll(".", "*"); //input = ****************************** Fall 2014 Sharif University of Technology

Immutable String String in java is an immutable class After creating a string, you can not change it Methods like replace and replaceAll, do not change the value They return a new String Fall 2014 Sharif University of Technology

Example String str = "Gholi"; str.replaceAll("li", "lam"); What is the output of this code? String str = "Gholi"; str.replaceAll("li", "lam"); System.out.println(str); String replaced = System.out.println(replaced); Fall 2014 Sharif University of Technology

Data Hierarchy Bit Byte Character Word Fall 2010 Sharif University of Technology

Java Characters A Java character has two bytes Java supports Unicode character set standard ASCII Java uses UTF-16 encoding Other unicode encodings: UTF-8 UTF-16 Other non-unicode encodings Windows-1256 Fall 2010 Sharif University of Technology

Java Special Characters Some characters are special characters Special characters are shown using backslash Examples: New line: \n Tab : \t Double-quote : \” Single-quote : \’ Backslash : \\ Fall 2010 Sharif University of Technology

Java Special Characters String s = "Salam!\nI am M\tK"; System.out.println(s); s = "\\ \' \""; Salam! I am M K \ ' " Fall 2010 Sharif University of Technology

Array Collections of related data items related data items of the same type Arrays are fixed-length entities they remain the same length once they are created An array is a group of variables called elements containing values that all have the same type The position number of the element is it’s index Array elements are sequentially located in memory Fall 2014 Sharif University of Technology

Array Fall 2014 Sharif University of Technology

Samples char ch = array[n]; Create an array of 10 integer elements int[] array = new int[10]; int array[] = new int[10];//equal Create an array of n characters char[] characters = new char[n]; Change value of 5’th element array[5] = 12; Retrieving value of n’th element char ch = array[n]; Fall 2014 Sharif University of Technology

Exercise Write a piece of code Read array length Create the array Read the elements (double) Write the array elements Fall 2014 Sharif University of Technology

Example Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); double numbers[] = new double[n]; for(int i=0;i<numbers.length;i++){ numbers[i] = scanner.nextDouble(); } double d = numbers[i]; System.out.println(d); Fall 2014 Sharif University of Technology

Array Creation Shortcut char[] array = new char[3]; array[0] = 'a'; array[1] = 's'; array[2] = 't'; The above code can be rewritten as: char[] array = {'a','s','t'}; Other examples: int[] numbers = {1,2,3,5,9,123}; boolean[] b = {true, true, false, true}; Fall 2014 Sharif University of Technology

Multidimensional Arrays int[][] matrix = new int[3][4]; matrix[2][3] = 2; System.out.println(matrix[2][1]); Fall 2014 Sharif University of Technology

Unbalanced Multidimensional Array int[][] matrix = new int[3][]; matrix[0] = new int[2]; matrix[1] = new int [5]; matrix[2] = new int [4]; matrix[2][3] = 2; System.out.println(matrix[2][1]); matrix[0][2] = 5; matrix[0][3] = 8; //Runtime Error ArrayIndexOutOfBoundsException Fall 2014 Sharif University of Technology

Passing Arrays to Methods public static void main(String[] args) { int[] array = {1,2,-4,0}; System.out.println(max(array)); } static int max(int[] numbers){ if(numbers == null || numbers.length == 0) return -1; int max = numbers[0]; for (int i = 1; i < numbers.length; i++) if(max<numbers[i]) max = numbers[i]; return max; Fall 2014 Sharif University of Technology

Multi-Dimensional Array Parameters int determinant(int[][] matrix){…} int [][] matrix = { {1,2}, {3,4}} ; int de = determinant(matrix); void check(int[][] array){…} int [][] unbalanced = { {1,2}, {3,4,5,6,7,8}}; check(unbalanced); boolean f(double[][][] cube){…} Fall 2014 Sharif University of Technology

Call by Element Values? No If the method has an array parameter Array elements are not copied on method invocations A reference to the array is passed to the method More about this topic  later Fall 2014 Sharif University of Technology

Exercises Write a method for sorting an array of integers (Assignment 4) Write a method that compares two arrays returns true if elements of the arrays are equal returns false , otherwise Write a method that returns determinant of a matrix Matrix is a two-dimensional array as the method parameter Fall 2014 Sharif University of Technology