Lecture2-Jan11-Review

Lecture2-Jan11-Review - 1 / 58 COP 3503 SPRING 2012 Shayan...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 1 / 58 COP 3503 SPRING 2012 Shayan Javed Lecture 2 Programming 2 / 58 Introduction to Java High-level language. Paradigm: Object-Oriented. WORA (“write-once, run anywhere”) 3 / 58 Introduction to Java Some languages are compiled (C/C++) 4 / 58 Introduction to Java Some languages are compiled (C/C++) Some are interpreted (Python, Perl, Ruby, etc.) 5 / 58 Introduction to Java Some languages are compiled (C/C++) Some are interpreted (Python, Perl, Ruby, etc.) What about Java? 6 / 58 Introduction to Java Compilation and Interpretation .java = compiled to .class .class = interpeted by Java Virtual Machine (JVM) 7 / 58 Java Syntax Similar to C/C++. Variables: byte, short, int, long, float, double, char, boolean Field Modifiers: final (“constant”) , static (applies to classes) 8 / 58 Java Operators Numerical: +, -, *, /, % Boolean: instanceof >, <, <=, >=, ==, !=, !, Others: ++, --, Bitwise operators: & (AND), ^ (XOR), | (OR), <<, >> (shift) 9 / 58 if statements if (boolean-expression) { … } else if (…) { … } else … } { 10 / 58 Conditional expression boolean-expression ? expression1 : expression2 Example: int x = 3; int y = (x > 0) ? 1 : 5; 11 / 58 switch statement switch (byte/short/char/int/String/etc.) { case x: break; case y: ….. break; case …: break; default: ….. } 12 / 58 Loops while (boolean-expression) { // do something } do { // something } while (boolean-expression); Difference? 13 / 58 Loops for (expression1; boolean-expression; expression2) { // do something } Example: int i; for (i = 0; i <= 10; i++) i++; // Value of i? 14 / 58 keyword break break = used to “break out” of a loop. Rest of the code is not executed. int sum = 0; int number = 0; while (number < 20) number++; sum += number; { 15 / 58 keyword continue continue = used in loops. Break out of current statement, but continue with the rest of the loop. 16 / 58 Methods Program modularity. Avoid redundant code! Use whenever possible Methods can be “called” 17 / 58 Methods modifier returnValueType name (list of parameters) { ... } public static int max (int num1, int num2) { if (num1 > num2) return num1; else return num2; 18 / 58 Methods - modifiers public = can be called by any class private = can only be called by the class Also protected (will look at it later) static = don’t require an “instance” of the class to call the method. ClassName.method(...) The Math class – Math.sin(), Math.acos(), 19 / 58 Methods returnValueType = Can be primitive, class, etc. Even void (nothing to return) a list of primitives, classes, etc. (or nothing) list of parameters = 20 / 58 Recursion Methods calling themselves Write base case first! Otherwise might be stuck forever. Classic example: Fibonacci numbers Integer sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21... 21 / 58 Recursion public int fibonacci (int n) { if (n == 0 || n == 1) // base case(s) return n; else return fibonacci (n-1) + fibonacci (n-2); } 22 / 58 Recursion Later on we will look at recursion for other algorithms (searching/sorting) 23 / 58 Method overloading Can have multiple methods with the same name. Showed “max” method with ints Write one with double: public static double max (double num1, double num2) { if (num1 > num2) return num1; else 24 / 58 Commenting Single-line: // This is a single-line comment Multi-line: /* This is going to be on multiple lines */ Comment your code properly! Very helpful – to you and others. 25 / 58 Object-Oriented Programming Paradigm which uses “objects” and “classes”. 26 / 58 Object-Oriented Programming Paradigm which uses “objects” and “classes”. Used to represent real-life objects or concepts that can be distinctly identified. 27 / 58 Object-Oriented Programming Paradigm which uses “objects” and “classes”. Used to represent real-life objects or concepts that can be distinctly identified. Objects have properties, methods. 28 / 58 Object-Oriented Programming Paradigm which uses “objects” and “classes”. Used to represent real-life objects or concepts that can be distinctly identified. Objects have properties, methods. Interaction between objects. 29 / 58 Object-Oriented Programming Most modern languages support OOP 30 / 58 Object-Oriented Programming Most modern languages support OOP Alternatives: Procedural/Imperative ( C ) Functional (Lisp/PROLOG) 31 / 58 Classes in Java A template for objects of the same type. 32 / 58 Classes in Java A template for objects of the same type. You create “objects” (or “instances”) of a class. 33 / 58 Objects in Java Unique identity, state and behavior. 34 / 58 Objects in Java Unique identity, state and behavior. state (properties/attributes): Data fields and their current values. 35 / 58 Objects in Java Unique identity, state and behavior. state (properties/attributes): Data fields and their current values. behavior: The methods for that class 36 / 58 Example public Circle { // Properties private double radius; // Constructors public Circle() { radius = 0.0; } public Circle(double radius) { this.radius = radius; 37 / 58 Properties // Properties private double radius; private = directly. only accessible by that class 38 / 58 Properties // Properties private double radius; private = only accessible by that class directly. Not a good idea to have public properties (for security reasons). 39 / 58 Properties // Properties private double radius; private = only accessible by that class directly. Not a good idea to have public properties (for security reasons). What if another class needs to access/modify the property? 40 / 58 Properties Add get/set methods: 41 / 58 Properties Add get/set methods: public getRadius() { return radius; } 42 / 58 Properties Add get/set methods: public getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } 43 / 58 Properties Add get/set methods: public getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } 44 / 58 this keyword Refers to the property of this specific class Used to distinguish between similar-named variables 45 / 58 Constructors // Constructors // default constructor public Circle() { } public Circle(double radius) { this.radius = radius; } 46 / 58 Constructors Special kind of method Same name as the class No return type (even void) Used to initialize objects (using the new keyword) 47 / 58 Constructors Initialization example: Circle circle1 = new Circle(); Circle circle2 = new Circle(4.5); 48 / 58 Constructors Should always provide a default constructor. Does not take in any properties Good idea to have multiple constructors and default values 49 / 58 Reference Variables Objects accessed via reference variables. Example from before: Circle circle2 = new Circle(4.5); circle2 = Reference variable used to access the object. 50 / 58 Reference Variables Can declare without initializing Circle circle2; // What’s the value? Initialize later: circle2 = new Circle(4.5); 51 / 58 Accessing properties/methods referenceName.property // only if public! referenceName.method(...) Example: double radius = circle1.radius; double area = circle2.getArea(); 52 / 58 Revisiting static Variables in classes can be static Associated with the class, rather than a specific object. Every object shares that variable 53 / 58 Revisiting static Example: public class Student { private String name; public int ID; private static int numberOfStudents = 0; public Student(String name) { this.name = name; this.ID = ++numberOfStudents; 54 / 58 Revisiting static Example: Student student1 = new Student(“John”); Student student2 = new Student(“Smith”); 55 / 58 Revisiting static Example: Student student1 = new Student(“John”); Student student2 = new Student(“Smith”); System.out.println(student1.ID); // Output? System.out.println(student2.ID); // Output? 56 / 58 Revisiting static Example: Student student1 = new Student(“John”); Student student2 = new Student(“Smith”); System.out.println(student1.ID); // Prints 1 System.out.println(student2.ID); // Prints 2 57 / 58 Summary Creating classes specifying properties, methods reference variables, initialization 58 / 58 Next lecture Arrays (single and multi-dimensional) Strings Inheritance ...
View Full Document

Ask a homework question - tutors are online