90 Minutes of Java Syntax

90 Minutes of Java Syntax

90 Minutes of Java Syntax Christian Wurm Heinrich Heine Universitat¨ Dusseldorf¨ Wintersemester 2017/18 Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 1 / 18 What this session does not aim at: provide an introduction to algorithmics introduce complicated object oriented programming concepts Goal Goal At the end of this session, you should: become/remain familiar with Java syntax be able to compile and execute Java code Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 2 / 18 Goal Goal At the end of this session, you should: become/remain familiar with Java syntax be able to compile and execute Java code What this session does not aim at: provide an introduction to algorithmics introduce complicated object oriented programming concepts Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 2 / 18 Good news: you might actually have to do this step right now (in case of problem, online compilers as http://browxy.com/, are available) Goal Getting started First, we need to install the Java Development Kit Ubuntu sudo apt-get install openjdk-8-jdk Windows, Mac OS http://www.oracle.com/technetwork/java/javase/downloads/ Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 3 / 18 Goal Getting started First, we need to install the Java Development Kit Ubuntu sudo apt-get install openjdk-8-jdk Windows, Mac OS http://www.oracle.com/technetwork/java/javase/downloads/ Good news: you might actually have to do this step right now (in case of problem, online compilers as http://browxy.com/, are available) Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 3 / 18 Goal Getting started For large scale programs, using an Integrated Development Environment can be helpful Ubuntu sudo apt-get install eclipse Windows, Mac OS http: //www.eclipse.org/downloads/packages/eclipse-ide-java-developers/mars1 Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 4 / 18 Goal Useful commands (if not using Eclipse) Compile a file javac a_file.java Execute a program java program (if the file program.class was created by compilation) Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 5 / 18 Goal Create a simple project (with Eclipse) file ! New ! Java Project enter a name right click on the project (on the left) New ! Class enter a name tick the box public static void main ... Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 6 / 18 Goal What was that? public class Test { public static void main(String[] args) { } } a special class (you cannot really create object of class Test) the entry point of the program (execution: java Test) Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 7 / 18 how do I check which types of values are possible? how important are types in Java? Goal The highly original first program public class Test { public static void main(String[] args) { System.out.println("Hello world!"); } } println is a built in function (provided by the PrintStream class) it takes as argument different types of values Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 8 / 18 Goal The highly original first program public class Test { public static void main(String[] args) { System.out.println("Hello world!"); } } println is a built in function (provided by the PrintStream class) it takes as argument different types of values how do I check which types of values are possible? how important are types in Java? Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 8 / 18 Goal Java Documentation Your new favorite webpage http://docs.oracle.com/javase/8/docs/api/ Eclipse also gives some documentation when you let the pointer on keywords. Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 9 / 18 All the time built in types are as usual: int, boolean, char, (String)... new object types are created by writing new classes boolean b=false; char c= 'a'; String s="This is a string"; int n=1+3; Types and values Types in Java when is it necessary to specify types? Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 10 / 18 built in types are as usual: int, boolean, char, (String)... new object types are created by writing new classes boolean b=false; char c= 'a'; String s="This is a string"; int n=1+3; Types and values Types in Java when is it necessary to specify types? All the time Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 10 / 18 Types and values Types in Java when is it necessary to specify types? All the time built in types are as usual: int, boolean, char, (String)... new object types are created by writing new classes boolean b=false; char c= 'a'; String s="This is a string"; int n=1+3; Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 10 / 18 Types and values Data structures in Java Java offers a lot of different data structures (see documentation), let us start with a basic one: arrays arrays are declared by giving the type of the objects used it: type[] a they are initialized by giving a length: a= new type[length] int[] array= new int [4]; Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 11 / 18 Conditions and loops Conditions in Java if(condition){ set_of_instructions } else{ set_of_instructions } condition is a boolean expressions: useful operators are &&, ||, >, <, >=, <=, ==, != Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 12 / 18 Conditions and loops Loops in Java (while) while(stop_condition){ set_of_instructions } stop_condition is a boolean expression do not forget to increment the loop index if you use one Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 13 / 18 Conditions and loops Loops in Java (for) for(variable_initialization; stop_condition; increment_expression){ set_of_instructions } variable_initialization is either creating and initializing a new variable (local to the loop) or using an existing one stop_condition is a boolean expression increment_expression explains what to change before the next iteration of the loop a typical loop (useful for arrays for example): for(int i=0; i<t.length; i++) Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 14 / 18 More data structures More data structures in Java: Maps and Sets In these sessions, we will make intensive use of maps (association tables) and sets You first need to import the needed module import java.util.HashMap; and instantiate objects of type HashMap (or HashSet) HashMap<String, Integer> mymap= new HashMap<String, Integer>(); mymap.put("Bob",32); if (mymap.containsKey("Bob")) { int avar = mymap.get("Bob");} https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html https://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 15 / 18 Subprograms Subprograms (procedures) public/private static void name (type1 arg1, type2 arg2...){ set_of_instructions } public/private determines in which class it is possible to call this procedure static says that this procedure belongs to the class, not to a specific instance void is a type (a pretty strange one) public static void main (String args[]) to execute a procedure: name(arg1, arg2...); Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 16 / 18 Subprograms Subprograms (functions) public/private static type name (type1 arg1, type2 arg2...){ set_of_instructions return value } exactly the same except the return statement value must be of type type public static int mult(int x, int y){ int r=0; for(int i=0; i<y; i++){ r=r+x; } return r; } using a function: anywhere you need a value of type type int r=mult(4,9); Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 17 / 18 Subprograms Conclusion a program must have a main function everything has to be explicitely typed Java comes with a lot of useful libraries http://docs.oracle.com/javase/8/docs/api/ Christian Wurm (HHU) 90 Minutes of Java Syntax Wintersemester 2017/18 18 / 18.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    23 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