Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Programming Collage of Information Technology University of Palestine, Gaza Prepared by: Mahmoud Rafeek Alfarra Lecture 1: Course overview.

Similar presentations


Presentation on theme: "Advanced Programming Collage of Information Technology University of Palestine, Gaza Prepared by: Mahmoud Rafeek Alfarra Lecture 1: Course overview."— Presentation transcript:

1 Advanced Programming Collage of Information Technology University of Palestine, Gaza Prepared by: Mahmoud Rafeek Alfarra Lecture 1: Course overview

2 2 Outlines  What is array and why ?  Questions about array  Declaring and Allocating Arrays  Examples  Passing Arrays to Methods  Sorting element of arrays  Searching Arrays: Linear Search and Binary Search  Overview: Object- Oriented Programming  Overview: Inheritance

3 3 They said قال رسول الله صلى الله عليه وسلم : ( من دعا إلى هُدى كان له من الأجر مثل أجور من تَبِعَه لا ينقص ذلك من أجورهم شيئا) رواه مسلم

4 4 What is array and why ?  Problem You need to keep track of a fixed amount of information and retrieve it (usually) sequentially.  Solution Use an array.

5 5 What is array and why ?  Array is a group of contiguous memory locations that all have the same name and th same type.  Example: 1.Array of students 2.Array of fruits 3.Array of integers 4.Array of characters

6 6 Index of array

7 7 Questions about array  Is it a data structure ?  Is it a dynamic or static ? Dynamic data structure : 1.Linked List 2.Stack (LIFO) 3.Queue (FIFO)

8 8 Declaring and Allocating Arrays  Arrays occupy space in memory.  The programmer specifies the type of the elements and uses operator new to allocate dynamically the number of elements required by each array.  Arrays are allocated with new because arrays are objects and all objects must be created with new.

9 9 Declaring and Allocating Arrays type array_name [] = new type[ x ]; Type of elements which will be allocated in the array Number of elements which will be allocated in the array type array_name []; // declares the array array_name = new type[ x ]; // allocates the reference to the array type array_name [,] = new type[ x, y ];

10 10 Allocating an Array and Initializing Its Elements (Example 1)  Creates integer arrays of x elements and displays it // JoptionPane.showMssageDialog(null, output); X [ ]

11 11 Allocating an Array and Initializing Its Elements (Example 2) Try it ….

12 12 Passing Arrays to Methods  To pass an array argument to a method, specify the name of the array without using brackets.  For example, if array students declared as int students[] = new int[ 24 ]; the method call ModifyArray( students );  For a method to receive an array through a method call, the method’s parameter list must specify that an array will be received. For example, the method header for method ModifyArray might be written as: void ModifyArray( int s[] )

13 13 Sorting elements of array  Sorting : putting a collection of data in some order.  Bubble sort:  compares pairs of elements during a pass  an element can only move up one spot each pass  finished if nothing was swapped or at most n-1 passes  How to program it using Java ?  Two or loops  Who’s larger ?  Swap

14 14 Sorting elements of array  Try it …

15 15 Searching Arrays: Linear Search and Binary Search Search Linear SearchBinary Search

16 16 Searching Arrays: Linear Search and Binary Search Try it …

17 17 Object- Oriented Programming  What is OOP ?  Objects in the problem domain are mapped to objects in software 011101 10011 11101 0110100 11010 010101 1110101 10101

18 18 OOP : main concepts  The main concepts:  Class:  Object  Data Encapsulation  Data and operations are grouped together Account Withdraw Deposit Transfer Interface: Set of available operations

19 19 OOP : main concepts  The main concepts:  Abstract: Hierarchical classification School DoorChairstudents RoomsPersons LengthTypeColor

20 20 OOP : main concepts  The main concepts:  Inheritance  A class which is a subtype of a more general class is said to be inherited from it.  The sub-class inherits the base class’ data members and member functions

21 21 OOP : main concepts  The main concepts:  Polymorphism:  One interface  Multiple implementations  Inheritance  Method overloading

22 22 OOP : main concepts  The main concepts:  In a superclass –public members Accessible anywhere program has a reference to a superclass or subclass type –private members Accessible only in methods of the superclass –protected members Intermediate protection between private and public Only accessible by methods of superclass, of subclass, or classes in the same package

23  2000 Prentice Hall, Inc. All rights reserved. Outline 1. Point definition 1.1 Data members 1.2 Constructors 1.3 Methods 1// Fig. 27.3: Point.java 2// Definition of class Point 3 4public class Point { 5 protected int x, y; // coordinates of the Point 6 7 // No-argument constructor 8 public Point() 9 { 10 // implicit call to superclass constructor occurs here 11 setPoint( 0, 0 ); 12 } 13 14 // Constructor 15 public Point( int a, int b ) 16 { 17 // implicit call to superclass constructor occurs here 18 setPoint( a, b ); 19 } 20 21 // Set x and y coordinates of Point 22 public void setPoint( int a, int b ) 23 { 24 x = a; 25 y = b; 26 } 27 28 // get x coordinate 29 public int getX() { return x; } 30

24  2000 Prentice Hall, Inc. All rights reserved. Outline 1.2 Methods ---------------- 1. Circle Definition 1.1 extends Point 1.2 Multiple constructors 38// Fig. 27.3: Circle.java 39// Definition of class Circle 40 41public class Circle extends Point { // inherits from Point 42 protected double radius; 43 44 // No-argument constructor 45 public Circle() 46 { 47 // implicit call to superclass constructor occurs here 48 setRadius( 0 ); 49 } 50 51 // Constructor 52 public Circle( double r, int a, int b ) 53 { 54 super( a, b ); // call to superclass constructor 55 setRadius( r ); 56 } 57 58 // Set radius of Circle 59 public void setRadius( double r ) 60 { radius = ( r >= 0.0 ? r : 0.0 ); } 31 // get y coordinate 32 public int getY() { return y; } 33 34 // convert the point into a String representation 35 public String toString() 36 { return "[" + x + ", " + y + "]"; } 37}

25  2000 Prentice Hall, Inc. All rights reserved. Outline 1.3 Overridden toString method 61 62 // Get radius of Circle 63 public double getRadius() { return radius; } 64 65 // Calculate area of Circle 66 public double area() { return Math.PI * radius * radius; } 67 68 // convert the Circle to a String 69 public String toString() 70 { 71 return "Center = " + "[" + x + ", " + y + "]" + 72 "; Radius = " + radius; 73 } 74}

26  2000 Prentice Hall, Inc. All rights reserved. Outline 1. Initialize objects 2. Refer to a subclass object with a superclass reference 2.1 toString 2.2 Downcast 2.3 toString 75// Fig. 27.3: InheritanceTest.java 76// Demonstrating the "is a" relationship 77import java.text.DecimalFormat; 78import javax.swing.JOptionPane; 79 80public class InheritanceTest { 81 public static void main( String args[] ) 82 { 83 Point pointRef, p; 84 Circle circleRef, c; 85 String output; 86 87 p = new Point( 30, 50 ); 88 c = new Circle( 2.7, 120, 89 ); 89 90 output = "Point p: " + p.toString() + 91 "\nCircle c: " + c.toString(); 92 93 // use the "is a" relationship to refer to a Circle 94 // with a Point reference 95 pointRef = c; // assign Circle to pointRef 96 97 output += "\n\nCircle c (via pointRef): " + 98 pointRef.toString(); 99 100 // Use downcasting (casting a superclass reference to a 101 // subclass data type) to assign pointRef to circleRef 102 circleRef = (Circle) pointRef; 103 104 output += "\n\nCircle c (via circleRef): " + 105 circleRef.toString();

27  2000 Prentice Hall, Inc. All rights reserved. Outline 2.4 Print area 3. if statement 106 107 DecimalFormat precision2 = new DecimalFormat( "0.00" ); 108 output += "\nArea of c (via circleRef): " + 109 precision2.format( circleRef.area() ); 110 111 // Attempt to refer to Point object 112 // with Circle reference 113 if ( p instanceof Circle ) { 114 circleRef = (Circle) p; // line 40 in Test.java 115 output += "\n\ncast successful"; 116 } 117 else 118 output += "\n\np does not refer to a Circle"; 119 120 JOptionPane.showMessageDialog( null, output, 121 "Demonstrating the \"is a\" relationship", 122 JOptionPane.INFORMATION_MESSAGE ); 123 124 System.exit( 0 ); 125 } 126}

28  2000 Prentice Hall, Inc. All rights reserved. Outline Program Output

29 29 Next Lecture isa Interfaces & Inner Classes


Download ppt "Advanced Programming Collage of Information Technology University of Palestine, Gaza Prepared by: Mahmoud Rafeek Alfarra Lecture 1: Course overview."

Similar presentations


Ads by Google