Object-Oriented Programming Classes, Objects, Variables
|
|
- Zoe Scott
- 6 years ago
- Views:
Transcription
1 Object-Oriented Programming Classes, Objects, Variables Ewan Klein School of Informatics Inf1 :: 2009/10 Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 1 / 37
2 1 Admin 2 State and Objects 3 Objects in Java 4 Methods 5 Coding Standards and Documentation 6 Finally Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 2 / 37
3 Admin Stuff Tutorials start tomorrow sheets will be available, but no extra preparation required Advanced (optional) exercise published this week (link from course web page) Next Week: Assessed assignment; published Mon 1st Feb, due back noon Mon 8th Feb to be submitted using examsubmit (like submit but checks correctness of file names) Approx 3 4 exercises Worth 5% of total marks for course Scheduled Labs: mainly Eclipse Tutorials: OO stuff Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 3 / 37
4 Google Group 48 members when I counted this morning Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 4 / 37
5 Motivation for Object Oriented Approach One way of achieving modularization decoupling behaviour of different program components parallel, independent code development re-usability of components Useful when a group of functions need to share information Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 5 / 37
6 In a State, 1 Real world objects have properties which change different states Weather in Edinburgh Monday temperature = 7 o C Tuesday sky = cloudy wind = 15 mph temperature = 5 o C sky = drizzle wind = 1 mph Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 6 / 37
7 In a State, 2 Dogs Max Brindle coatcolour = black coatlength = short thirsty = true coatcolour = cream coatlength = shaggy thirsty = false Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 7 / 37
8 Changing State Making Carrot Soup Carrots at time t 0 colour = orange texture = hard shape = whole Carrots at time t 1 colour = orange texture = hard shape = diced Carrots at time t 2 colour = orange texture = soft shape = mushy Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 8 / 37
9 Max is a Labrador Max is a black Labrador Max is an object Max belongs to the class of dogs (is an instance of the class) The breed black Labrador is a subclass of the class of dogs Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 9 / 37
10 Subclasses and Instances Dog superclass Black Lab Tibetan Terrier subclasses Max instance of a class Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 10 / 37
11 Behaviour Dogs Max runs barks drinks Max does these things by virtue of being a dog Running, barking and drinking are dog behaviours Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 11 / 37
12 Objects in Java Instance variables hold the state of the object Methods specify the possible behaviours of the object An object inherits attributes and methods from its superclass Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 12 / 37
13 Class Diagram inherited Dog size name coatcolour isthirsty run() bark() drink() subclass instance variables methods Black Labrador swim() extending behaviour Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 13 / 37
14 Methods Methods are comparable to functions in Haskell Often used to change state rather than to return a value Haskell function: type declaration max :: Int -> Int -> Int Java method: type declaration int max(int x, int y) Java method: example with no return value void setname(string name) Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 14 / 37
15 Creating and Using Objects Create a new Dog object Dog mydog = new Dog(); 1 new Dog() create space in memory for the object 2 Dog mydog declare a variable of type Dog Dog is a reference / nonprimitive type; mydog is a reference variable 3 Dog mydog = new Dog() assign the new Dog to the reference variable The Dot Operator mydogname = Brindle ; mydogisthirsty; mydogrun(); Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 15 / 37
16 Deja vu We ve seen something similar in the lab exercises Scanner Scanner input = new Scanner(); String name = inputnext(); Random Random generator = new Random(); int num = generatornextint(mysize) Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 16 / 37
17 Java Class Example The Dog Class public class Dog { String name; String coatcolour; boolean isthirsty; public void run() { Systemoutprintln( Running ); isthirsty = true; public void drink() { Systemoutprintln( Drinking ); isthirsty = false; Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 17 / 37
18 Launch the Class, 1 Changing the Dog s state public class DogLauncher { public static void main(string[] args) { Dog d = new Dog(); disthirsty = false; Systemoutprintln( Thirsty? + disthirsty); drun(); Systemoutprintln( Thirsty? + disthirsty); ddrink(); Systemoutprintln( Thirsty? + disthirsty); Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 18 / 37
19 Launch the Class, 2 Console Output: Dog behaviour Thirsty? false Running Thirsty? true Drinking Thirsty? false Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 19 / 37
20 Arrays and Objects Create a Dog array Dog[] mydogs = new Dog[7]; Elements? fido = mydogs[0]; // doesn t give us a dog Create Dog objects as elements mydogs[0] = new Dog(); // mydogs[0] is a reference variable mydogs[1] = new Dog(); Do something with a Dog mydogs[0]run(); Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 20 / 37
21 Terminology Parameters Arguments Signature Return value Local variables vs instance variables Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 21 / 37
22 Scenario Assume we are using the class Reviewer to model someone who assigns ratings (1 to 5 stars) to movies One task is to assign a list of movies to a reviewer We can model the list as an array Movie[] Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 22 / 37
23 Reviewer Example, 1 Variables public class Reviewer { Movie[] movies; //instance variable // newmovies is a parameter public void setmovies(movie[] newmovies) { //assign the value of a parameter to instance variable movies = newmovies; Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 23 / 37
24 Reviewer Example, 2 Alternative Naming Convention public class Reviewer { Movie[] movies; // instance variable // movies is a parameter public void setmovies(movie[] movies ) { // this is the name of the current class thismovies = movies; Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 24 / 37
25 ReviewerLauncher Arguments public class ReviewerLauncher { public static void main(string[] args) { Movie[] movies = new Movie[5]; movies[0] = new Movie(); /* Set the movie titles * The Matrix is the argument to method call */ movies[0]settitle( The Matrix ); Reviewer r = new Reviewer(); // Tell the Reviewer which movies to rate rsetmovies(movies); \ Pass movies as the arg Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 25 / 37
26 Reviewer Example, 3 Method with Two Parameters public class Reviewer { public void ratemovie( String title, int rating ) { for (int i = 0; i < movieslength; i++) { if (movies[i]gettitle() == title) { movies[i]setrating(rating); Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 26 / 37
27 ReviewerLauncher Reviewer r = new Reviewer(); 1: Correct Call rratemovie( The Matrix, 3); 2: Incorrect Call rratemovie(5, 3); 3: Incorrect Call rratemovie( The Matrix ); 4: Incorrect Call rratemovie(3, The Matrix ); Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 27 / 37
28 Signature The signature of a method consists of its name and its parameter list Example signature ratemovie(string title, int rating) Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 28 / 37
29 Reviewer Example, 4 Local Variables public class Reviewer { public String favourite() { int max = 0; /* Local variables int index = 0; * must be initialized! */ for (int i = 0; i < movieslength; i++) { if (movies[i]getrating() > max) { max = movies[i]getrating(); index = i; return movies[index]gettitle(); Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 29 / 37
30 Return Return type of a method is stated in the method declaration A method declared void doesn t return a value Any method with a non-void return type rtype must contain a statement of the form return returnvalue; where the data type of returnvalue matches the type rtype Return value public class Reviewer { public String favourite() { return movies[index]gettitle(); Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 30 / 37
31 Sun Code Conventions ( Motivation for coding standards: 80% of the lifetime cost of a piece of software goes to maintenance Hardly any software is maintained for its whole life by the original author Code conventions improve the readability of the software, allowing engineers to understand new code more quickly and thoroughly Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 31 / 37
32 Comments Implementation: for commenting out code or for comments about the particular implementation Documentation: describe the specification of the code, from an implementation-free perspective Documentation comments (aka doc strings ) can be extracted to HTML files using the javadoc tool Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 32 / 37
33 Comment Syntax: Implementation Single line, 1 if (condition) { /* Handle the condition */ Single line, 2 if (condition) { // Handle the condition // if (foo) { // // Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 33 / 37
34 Comment Syntax: Documentation Block Comment /** * Set the title of this movie */ public void settitle(string title) { // TODO: implement method stub NB starts with /** Occurs just before a declaration / definition Doc comment tags etc) treated specially by javadoc Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 34 / 37
35 Sun Comment Guidelines Give overviews of code, provide additional information not readily available in the code itself Contain only information that is relevant to reading and understanding the program Discuss nontrivial or nonobvious design decisions Avoid duplicating information that is present in (and clear from) the code Avoid any comments that are likely to get out of date as the code evolves Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 35 / 37
36 Summary OOP helps you to program in a modular way All Java code is located in a class Objects are instances of a class Objects have state, specified by instance variables Two kinds of variable: primitive and reference NB instance variable vs local variable is more about use; can be both primitive and reference A reference variable contains information about how to get to an object, not the object itself Objects have behaviour, specified by methods Use the dot operator to call a method on a reference variable (eg, dogbark()) Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 36 / 37
37 Reading Chapters 2, 4 of HFJ Ewan Klein (School of Informatics) Object-Oriented ProgrammingClasses, Objects, Variables Inf1 :: 2009/10 37 / 37
Object-Oriented Programming More Inheritance
Object-Oriented Programming More Inheritance Ewan Klein School of Informatics Inf1 :: 2009/10 Ewan Klein (School of Informatics) OOP: More Inheritance Inf1 :: 2009/10 1 / 45 1 Inheritance Flat Hierarchy
More informationInf1-OP. Classes with Stuff in Common. Inheritance. Volker Seeker, adapting earlier version by Perdita Stevens and Ewan Klein.
Inf1-OP Inheritance UML Class Diagrams UML: language for specifying and visualizing OOP software systems UML class diagram: specifies class name, instance variables, methods,... Volker Seeker, adapting
More informationInf1-OP. Inheritance. Volker Seeker, adapting earlier version by Perdita Stevens and Ewan Klein. March 12, School of Informatics
Inf1-OP Inheritance Volker Seeker, adapting earlier version by Perdita Stevens and Ewan Klein School of Informatics March 12, 2018 UML Class Diagrams UML: language for specifying and visualizing OOP software
More informationInheritance (Part 5) Odds and ends
Inheritance (Part 5) Odds and ends 1 Static Methods and Inheritance there is a significant difference between calling a static method and calling a non-static method when dealing with inheritance there
More informationInf1-OOP. OOP Exam Review. Perdita Stevens, adapting earlier version by Ewan Klein. March 16, School of Informatics
Inf1-OOP OOP Exam Review Perdita Stevens, adapting earlier version by Ewan Klein School of Informatics March 16, 2015 Overview Overview of examinable material: Lectures Topics S&W sections Week 1 Compilation,
More informationEncapsulation. Inf1-OOP. Getters and Setters. Encapsulation Again. Inheritance Encapsulation and Inheritance. The Object Superclass
Encapsulation Again Inheritance Encapsulation and Inheritance Inf1-OOP Inheritance and Interfaces Perdita Stevens, adapting earlier version by Ewan Klein School of Informatics March 9, 2015 The Object
More informationInf1-OOP. Inheritance and Interfaces. Ewan Klein, Perdita Stevens. January 12, School of Informatics
Inf1-OOP Inheritance and Interfaces Ewan Klein, Perdita Stevens School of Informatics January 12, 2013 Encapsulation Again Inheritance Encapsulation and Inheritance The Object Superclass Flat vs. Nested
More informationObject-Oriented ProgrammingInheritance & Polymorphism
Inheritance Polymorphism Overriding and Overloading Object-Oriented Programming Inheritance & Polymorphism Inf1 :: 2008/09 Inheritance Polymorphism Overriding and Overloading 1 Inheritance Flat Hierarchy
More informationInf1-OP. Inf1-OP Exam Review. Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein. March 20, School of Informatics
Inf1-OP Inf1-OP Exam Review Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein School of Informatics March 20, 2017 Overview Overview of examinable material: Lectures Week 1
More informationObject-Oriented Programming
Objects and Classes Object-Oriented Programming Outline Classes vs. objects Designing a class Methods and instance variables Encapsulation & information hiding Readings: HFJ: Ch. 2, 3, 4. GT: Ch. 3, 4.
More informationInf1-OOP. Textbooks. Who and What. Organizational Issues. Why Java? Course Overview. Hello, World! in Java. Ewan Klein, Perdita Stevens
Organizational Issues Inf1-OOP Course Overview Ewan Klein, Perdita Stevens School of Informatics January 12, 2013 Why Java? Hello, World! in Java Built-in Types Integers Floating-Point Numbers Type Conversion
More informationOutline. Object Oriented Programming. Course goals. Staff. Course resources. Assignments. Course organization Introduction Java overview Autumn 2003
Outline Object Oriented Programming Autumn 2003 2 Course goals Software design vs hacking Abstractions vs language (syntax) Java used to illustrate concepts NOT a course about Java Prerequisites knowledge
More informationInf1-OOP. Textbooks. Who and What. Organisational issues. Why Java? Course Overview. Hello, World! in Java
Organisational issues Inf1-OOP Course Overview Perdita Stevens, adapting earlier version by Ewan Klein School of Informatics January 11, 2014 Why Java? Hello, World! in Java Built-in Types Integers Floating-Point
More informationChapter 7 Classes & Objects, Part B
Chapter 7 Classes & Objects, Part B These note present Dog simulation example that shows how we go about OO modeling. A number of new things are introduced. They also present the Person > BirthDate example.
More informationConstruction: High quality code for programming in the large
Construction: High quality code for programming in the large Paul Jackson School of Informatics University of Edinburgh What is high quality code? High quality code does what it is supposed to do......
More informationInheritance and Interfaces
Inheritance and Interfaces Object Orientated Programming in Java Benjamin Kenwright Outline Review What is Inheritance? Why we need Inheritance? Syntax, Formatting,.. What is an Interface? Today s Practical
More informationLecture Notes CPSC 224 (Spring 2012) Today... Java basics. S. Bowers 1 of 8
Today... Java basics S. Bowers 1 of 8 Java main method (cont.) In Java, main looks like this: public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); Q: How
More informationAP Computer Science Chapter 10 Implementing and Using Classes Study Guide
AP Computer Science Chapter 10 Implementing and Using Classes Study Guide 1. A class that uses a given class X is called a client of X. 2. Private features of a class can be directly accessed only within
More informationCS 151. Exceptions & Javadoc. slides available on course website. Sunday, September 9, 12
CS 151 Exceptions & Javadoc slides available on course website 1 Announcements Prelab 1 is due now. Please place it in the appropriate (Mon vs. Tues) box. Please attend lab this week. There may be a lecture
More informationFunctions / Static Methods. Inf1-OP. What s this static method business? Functions / Static Methods. Haskell function: type declaration
Functions / Static Methods Inf1-OP Functions aka Static Methods Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein School of Informatics February 6, 2017 Java functions: Take
More informationWeek 3 Classes and Objects
Week 3 Classes and Objects written by Alexandros Evangelidis, adapted from J. Gardiner et al. 13 October 2015 1 Last Week Last week, we looked at some of the different types available in Java, and the
More informationCISC-124. Passing Parameters. A Java method cannot change the value of any of the arguments passed to its parameters.
CISC-124 20180215 These notes are intended to summarize and clarify some of the topics that have been covered recently in class. The posted code samples also have extensive explanations of the material.
More informationComments are almost like C++
UMBC CMSC 331 Java Comments are almost like C++ The javadoc program generates HTML API documentation from the javadoc style comments in your code. /* This kind of comment can span multiple lines */ //
More informationTutorials. Inf1-OP. Learning Outcomes for this week. A Foundation for Programming. Conditionals and Loops 1
Tutorials Inf1-OP Conditionals and Loops 1 Volker Seeker, adapting earlier version by Perdita Stevens and Ewan Klein Start this week please let the ITO know if you need to switch tutorial groups. Labs
More informationObject Oriented Programming
Object Oriented Programming Objectives To review the concepts and terminology of object-oriented programming To discuss some features of objectoriented design 1-2 Review: Objects In Java and other Object-Oriented
More informationCS171:Introduction to Computer Science II
CS171:Introduction to Computer Science II Department of Mathematics and Computer Science Li Xiong 9/7/2012 1 Announcement Introductory/Eclipse Lab, Friday, Sep 7, 2-3pm (today) Hw1 to be assigned Monday,
More informationIS-A is a way of saying: This object is a type of that object. Let us see how the extends keyword is used to achieve inheritance.
PART 17 17. Inheritance Inheritance can be defined as the process where one object acquires the properties of another. With the use of inheritance the information is made manageable in a hierarchical order.
More informationCONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics. COMP-202 Unit 1: Introduction
CONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics COMP-202 Unit 1: Introduction Announcements Did you miss the first lecture? Come talk to me after class. If you want
More informationCS121/IS223. Object Reference Variables. Dr Olly Gotel
CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors CS121/IS223
More informationInf1-OP. Functions aka Static Methods. Volker Seeker, adapting earlier version by Perdita Stevens and Ewan Klein. School of Informatics
Inf1-OP Functions aka Static Methods Volker Seeker, adapting earlier version by Perdita Stevens and Ewan Klein School of Informatics February 26, 2018 Functions / Static Methods Why are functions so helpful?
More informationInheritance. Notes Chapter 6 and AJ Chapters 7 and 8
Inheritance Notes Chapter 6 and AJ Chapters 7 and 8 1 Inheritance you know a lot about an object by knowing its class for example what is a Komondor? http://en.wikipedia.org/wiki/file:komondor_delvin.jpg
More informationInf1-OOP. Functions aka Static Methods. Perdita Stevens, adapting earlier version by Ewan Klein. January 11, School of Informatics
Inf1-OOP Functions aka Static Methods Perdita Stevens, adapting earlier version by Ewan Klein School of Informatics January 11, 2015 Overview Static Methods in Java Modularity Summary/Admin Functions /
More informationTutorial 2 Today we will have a quick introduction to ArgoUML and how to use it, as well as look at some examples of class diagrams.
Tutorial 2 Today we will have a quick introduction to ArgoUML and how to use it, as well as look at some examples of class diagrams. This is an answer sheet, answers are marked in RED. Quiz dates: Quiz
More informationProject 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently.
Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple movie data system. Milestones: 1. Use
More informationLecture 3. COMP1006/1406 (the Java course) Summer M. Jason Hinek Carleton University
Lecture 3 COMP1006/1406 (the Java course) Summer 2014 M. Jason Hinek Carleton University today s agenda assignments 1 (graded) & 2 3 (available now) & 4 (tomorrow) a quick look back primitive data types
More informationJava Basics. CSE 373, Fall 2015 Megan Hopp
Java Basics CSE 373, Fall 2015 Megan Hopp Definitions Object Class Method Objects have states and behaviors. Objects are instances of classes. A class can be defined as a template/ blueprint that describes
More informationTutorials. Tutorial every Friday at 11:30 AM in Toldo 204 * discuss the next lab assignment
60-212 subir@cs.uwindsor.ca Phone # 253-3000 Ext. 2999 web site for course www.cs.uwindsor.ca/60-212 Dr. Subir Bandyopadhayay Website has detailed rules and regulations All assignments and labs will be
More informationComputer Science II (20073) Week 1: Review and Inheritance
Computer Science II 4003-232-01 (20073) Week 1: Review and Inheritance Richard Zanibbi Rochester Institute of Technology Review of CS-I Hardware and Software Hardware Physical devices in a computer system
More informationExample Program. public class ComputeArea {
COMMENTS While most people think of computer programs as a tool for telling computers what to do, programs are actually much more than that. Computer programs are written in human readable language for
More informationCS/ENGRD 2110 SPRING Lecture 2: Objects and classes in Java
1 CS/ENGRD 2110 SPRING 2014 Lecture 2: Objects and classes in Java http://courses.cs.cornell.edu/cs2110 Java OO (Object Orientation) 2 Python and Matlab have objects and classes. Strong-typing nature of
More informationJAVA: A Primer. By: Amrita Rajagopal
JAVA: A Primer By: Amrita Rajagopal 1 Some facts about JAVA JAVA is an Object Oriented Programming language (OOP) Everything in Java is an object application-- a Java program that executes independently
More informationData Structures. Data structures. Data structures. What is a data structure? Simple answer: a collection of data equipped with some operations.
Data Structures 1 Data structures What is a data structure? Simple answer: a collection of data equipped with some operations. Examples Lists Strings... 2 Data structures In this course, we will learn
More informationObject-Oriented Programming: Revision. Revision / Graphics / Subversion. Ewan Klein. Inf1 :: 2008/09
Object-Oriented Programming: Revision / Graphics / Subversion Inf1 :: 2008/09 Breaking out of loops, 1 Task: Implement the method public void contains2(int[] nums). Given an array of ints and a boolean
More informationDocumenting, Using, and Testing Utility Classes
Documenting, Using, and Testing Utility Classes Readings: Chapter 2 of the Course Notes EECS2030: Advanced Object Oriented Programming Fall 2017 CHEN-WEI WANG Structure of Project: Packages and Classes
More informationSurvey #2. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings
University of British Columbia CPSC 111, Intro to Computation Alan J. Hu Defining Interfaces Intro to Inheritance Readings This Week: Ch 9.4-9.5 and into Ch 10.1-10.8 (Ch 11.4-11.5 and into Ch 13 in old
More informationInf1-OP. Inf1-OP Exam Review. Volker Seeker, adapting earlier version by Perdita Stevens and Ewan Klein. March 16, School of Informatics
Inf1-OP Inf1-OP Exam Review Volker Seeker, adapting earlier version by Perdita Stevens and Ewan Klein School of Informatics March 16, 2018 Examinable Material Overview Overview of examinable material:
More informationAbout the required reading. Construction: High quality code for programming in the large. What is high quality code?
About the required reading All the reading described as required is examinable. For example, you should be able to: briefly explain concepts like process requirement, stakeholder, tacit knowledge, conceptual
More informationJava and OOP. Part 2 Classes and objects
Java and OOP Part 2 Classes and objects 1 Objects OOP programs make and use objects An object has data members (fields) An object has methods The program can tell an object to execute some of its methods
More informationBinghamton University. CS-140 Fall Problem Solving. Creating a class from scratch
Problem Solving Creating a class from scratch 1 Recipe for Writing a Class 1. Write the class boilerplate stuff 2. Declare Fields 3. Write Creator(s) 4. Write accessor methods 5. Write mutator methods
More informationObject Oriented Programming Part II of II. Steve Ryder Session 8352 JSR Systems (JSR)
Object Oriented Programming Part II of II Steve Ryder Session 8352 JSR Systems (JSR) sryder@jsrsys.com New Terms in this Section API Access Modifier Package Constructor 2 Polymorphism Three steps of object
More informationBINARY SEARCH TREES CS 200 RECITATION 7
BINARY SEARCH TREES CS 200 RECITATION 7 Binary Search Tree (BST) Are binary trees (every node has at most two child nodes) For any given node, left sub-tree is less than it s value, and right sub-tree
More informationProcedural Java. Procedures and Static Class Methods. Functions. COMP 210: Object-Oriented Programming Lecture Notes 2.
COMP 210: Object-Oriented Programming Lecture Notes 2 Procedural Java Logan Mayfield In these notes we look at designing, implementing, and testing basic procedures in Java. We will rarely, perhaps never,
More informationCOMP-202 Unit 9: Exceptions
COMP-202 Unit 9: Exceptions Announcements - Assignment 4: due Monday April 16th - Assignment 4: tutorial - Final exam tutorial next week 2 Exceptions An exception is an object that describes an unusual
More informationFunctions / Static Methods. Why are functions so helpful? Inf1-OP. Find Nearest Neighbour to a Central Point
Inf1-OP Functions aka Static Methods Volker Seeker, adapting earlier version by Perdita Stevens and Ewan Klein Functions / Static Methods School of Informatics February 26, 2018 Find Nearest Neighbour
More informationInf1-OOP. Data Types. A Foundation for Programming. type value set operations. Overview. Using Data Types 1. Image Processing
Inf1-OOP Using Data Types 1 Perdita Stevens, adapting earlier version by Ewan Klein School of Informatics January 11, 2014 Overview Image Processing String Processing Summary/Admin 1 Thanks to Sedgewick&Wayne
More informationC# Programming for Developers Course Labs Contents
C# Programming for Developers Course Labs Contents C# Programming for Developers...1 Course Labs Contents...1 Introduction to C#...3 Aims...3 Your First C# Program...3 C# The Basics...5 The Aims...5 Declaring
More informationAdministration. Exceptions. Leftovers. Agenda. When Things Go Wrong. Handling Errors. CS 99 Summer 2000 Michael Clarkson Lecture 11
Administration Exceptions CS 99 Summer 2000 Michael Clarkson Lecture 11 Lab 10 due tomorrow No lab tomorrow Work on final projects Remaining office hours Rick: today 2-3 Michael: Thursday 10-noon, Monday
More informationCS 11 java track: lecture 3
CS 11 java track: lecture 3 This week: documentation (javadoc) exception handling more on object-oriented programming (OOP) inheritance and polymorphism abstract classes and interfaces graphical user interfaces
More informationPOLYTECHNIC OF NAMIBIA SCHOOL OF COMPUTING AND INFORMATICS DEPARTMENT OF COMPUTER SCIENCE
POLYTECHNIC OF NAMIBIA SCHOOL OF COMPUTING AND INFORMATICS DEPARTMENT OF COMPUTER SCIENCE COURSE NAME: OBJECT ORIENTED PROGRAMMING COURSE CODE: OOP521S NQF LEVEL: 6 DATE: NOVEMBER 2015 DURATION: 2 HOURS
More informationChapter 5 Methods. public class FirstMethod { public static void main(string[] args) { double x= -2.0, y; for (int i = 1; i <= 5; i++ ) { y = f( x );
Chapter 5 Methods Sections Pages Review Questions Programming Exercises 5.1 5.11 142 166 1 18 2 22 (evens), 30 Method Example 1. This is of a main() method using a another method, f. public class FirstMethod
More informationCS/ENGRD 2110 SPRING Lecture 2: Objects and classes in Java
1 CS/ENGRD 2110 SPRING 2017 Lecture 2: Objects and classes in Java http://courses.cs.cornell.edu/cs2110 CMS VideoNote.com, PPT slides, DrJava, Book 2 CMS available. Visit course webpage, click Links, then
More informationQUIZ 2 Introduction to Computer Science (COMP 250) Mon. March 2, 2009 Professor Michael Langer
QUIZ 2 Introduction to Computer Science (COMP 250) Mon. March 2, 2009 Professor Michael Langer STUDENT NAME: ID: The exam consists of five questions. There are a total of 10 points. You may use the back
More informationAP CS Unit 6: Inheritance Notes
AP CS Unit 6: Inheritance Notes Inheritance is an important feature of object-oriented languages. It allows the designer to create a new class based on another class. The new class inherits everything
More informationSoftware and Programming 1
Software and Programming 1 Lab 1: Introduction, HelloWorld Program and use of the Debugger 17 January 2019 SP1-Lab1-2018-19.pptx Tobi Brodie (tobi@dcs.bbk.ac.uk) 1 Module Information Lectures: Afternoon
More informationObject Oriented Programming. Java-Lecture 6 - Arrays
Object Oriented Programming Java-Lecture 6 - Arrays Arrays Arrays are data structures consisting of related data items of the same type In Java arrays are objects -> they are considered reference types
More informationInf1-OOP. Data Types. Defining Data Types in Java. type value set operations. Overview. Circle Class. Creating Data Types 1.
Overview Inf1-OOP Creating Data Types 1 Circle Class Object Default Perdita Stevens, adapting earlier version by Ewan Klein Format Strings School of Informatics January 11, 2015 HotelRoom Class More on
More informationFinal Exam. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings
University of British Columbia CPSC 111, Intro to Computation Alan J. Hu Interfaces vs. Inheritance Abstract Classes Inner Classes Readings This Week: No new readings. Consolidate! (Reminder: Readings
More informationComputer Science II (20082) Week 1: Review and Inheritance
Computer Science II 4003-232-08 (20082) Week 1: Review and Inheritance Richard Zanibbi Rochester Institute of Technology Review of CS-I Syntax and Semantics of Formal (e.g. Programming) Languages Syntax
More informationCISC-124. This week we continued to look at some aspects of Java and how they relate to building reliable software.
CISC-124 20180129 20180130 20180201 This week we continued to look at some aspects of Java and how they relate to building reliable software. Multi-Dimensional Arrays Like most languages, Java permits
More informationCOMP-202: Foundations of Programming. Lecture 4: Flow Control Loops Sandeep Manjanna, Summer 2015
COMP-202: Foundations of Programming Lecture 4: Flow Control Loops Sandeep Manjanna, Summer 2015 Announcements Check the calendar on the course webpage regularly for updates on tutorials and office hours.
More informationObject Oriented Programming
Object Oriented Programming Objectives To review the concepts and terminology of object-oriented programming To discuss some features of objectoriented design 1-2 Review: Objects In Java and other Object-Oriented
More informationDay 3. COMP 1006/1406A Summer M. Jason Hinek Carleton University
Day 3 COMP 1006/1406A Summer 2016 M. Jason Hinek Carleton University today s agenda assignments 1 was due before class 2 is posted (be sure to read early!) a quick look back testing test cases for arrays
More informationFinal Exam. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings
University of British Columbia CPSC 111, Intro to Computation Alan J. Hu Interfaces vs. Inheritance Abstract Classes Inner Classes Readings This Week: No new readings. Consolidate! (Reminder: Readings
More informationCSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall Office hours:
CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM 12:00 PM * Wednesday 4:00 PM 5:00 PM Friday 11:00 AM 12:00 PM OR
More informationAgenda CS121/IS223. Reminder. Object Declaration, Creation, Assignment. What is Going On? Variables in Java
CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors Agenda
More informationInheritance, cont. Notes Chapter 6 and AJ Chapters 7 and 8
Inheritance, cont. Notes Chapter 6 and AJ Chapters 7 and 8 1 Preconditions and Inheritance precondition what the method assumes to be true about the arguments passed to it inheritance (is-a) a subclass
More informationProject #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently.
Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple magazine data system. Milestones:
More informationLearning Outcomes for this week. Inf1-OP. A Foundation for Programming. A Foundation for Programming
Learning Outcomes for this week Inf1-OP Conditionals and Loops 1 Perdita Stevens, adapting earlier version by Ewan Klein School of Informatics January 9, 2016 Use if and if-else statements to execute a
More informationInterpreted vs Compiled. Java Compile. Classes, Objects, and Methods. Hello World 10/6/2016. Python Interpreted. Java Compiled
Interpreted vs Compiled Python 1 Java Interpreted Easy to run and test Quicker prototyping Program runs slower Compiled Execution time faster Virtual Machine compiled code portable Java Compile > javac
More informationTOPIC 2 INTRODUCTION TO JAVA AND DR JAVA
1 TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA Notes adapted from Introduction to Computing and Programming with Java: A Multimedia Approach by M. Guzdial and B. Ericson, and instructor materials prepared
More informationCS 11 java track: lecture 1
CS 11 java track: lecture 1 Administrivia need a CS cluster account http://www.cs.caltech.edu/ cgi-bin/sysadmin/account_request.cgi need to know UNIX www.its.caltech.edu/its/facilities/labsclusters/ unix/unixtutorial.shtml
More informationText User Interfaces. Keyboard IO plus
Text User Interfaces Keyboard IO plus User Interface and Model Model: objects that solve problem at hand. User interface: interacts with user getting input from user giving output to user reporting on
More informationCS 251 Intermediate Programming Methods and Classes
CS 251 Intermediate Programming Methods and Classes Brooke Chenoweth University of New Mexico Fall 2018 Methods An operation that can be performed on an object Has return type and parameters Method with
More informationCS 251 Intermediate Programming Methods and More
CS 251 Intermediate Programming Methods and More Brooke Chenoweth University of New Mexico Spring 2018 Methods An operation that can be performed on an object Has return type and parameters Method with
More informationCS Week 2. Jim Williams, PhD
CS 200 - Week 2 Jim Williams, PhD Society of Women Engineers "Not just for women and not just for engineers; all students are welcome. We are especially looking for more computer science students!" - Emile
More informationWho and what can help? Inf1-OP. Lecturer: Timothy Hospedales TA: Natalia Zon
Who and what can help? Inf1-OP Lecturer: Timothy Hospedales TA: Natalia Zon Course Overview Web: http://www.inf.ed.ac.uk/teaching/ courses/inf1/op/ Timothy Hospedales, adapting earlier version by Perdita
More informationProgramming Exercise 14: Inheritance and Polymorphism
Programming Exercise 14: Inheritance and Polymorphism Purpose: Gain experience in extending a base class and overriding some of its methods. Background readings from textbook: Liang, Sections 11.1-11.5.
More informationBjarne Stroustrup. creator of C++
We Continue GEEN163 I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone. Bjarne Stroustrup creator
More informationJava Programming with Eclipse
One Introduction to Java 2 Usage of Java 3 Structure of Java 4 Flexibility of Java Programming 5 Using the Eclipse Software 6 Two Running Java in Eclipse 7 Introduction 8 Using Eclipse 9 Workspace Launcher
More informationTiming for Interfaces and Abstract Classes
Timing for Interfaces and Abstract Classes Consider using abstract classes if you want to: share code among several closely related classes declare non-static or non-final fields Consider using interfaces
More informationSuperclasses / subclasses Inheritance in Java Overriding methods Abstract classes and methods Final classes and methods
Lecture 12 Summary Inheritance Superclasses / subclasses Inheritance in Java Overriding methods Abstract classes and methods Final classes and methods Multiplicity 1 By the end of this lecture, you will
More informationCS11 Java. Fall Lecture 1
CS11 Java Fall 2006-2007 Lecture 1 Welcome! 8 Lectures Slides posted on CS11 website http://www.cs.caltech.edu/courses/cs11 7-8 Lab Assignments Made available on Mondays Due one week later Monday, 12 noon
More informationComputer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7
Computer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7 1 Problem Ralph owns the Trinidad Fruit Stand that sells its fruit on the street, and he wants to use a computer
More informationIntroduction, Functions
Informatics 1 Functional Programming Lectures 1 and 2 Introduction, Functions Don Sannella University of Edinburgh Welcome to Informatics 1, Functional Programming! Informatics 1 course organiser: Paul
More informationIntroduction to Java. March 1, 2001 CBRSS and the John M. Olin Institute for Strategic Studies Lars-Erik Cederman
Introduction to Java March 1, 2001 CBRSS and the John M. Olin Institute for Strategic Studies Lars-Erik Cederman Outline Java overview simple structures object-orientation roulette example How to compile
More informationAdvanced Computer Programming
Programming in the Large I: Methods (Subroutines) 188230 Advanced Computer Programming Asst. Prof. Dr. Kanda Runapongsa Saikaew (krunapon@kku.ac.th) Department of Computer Engineering Khon Kaen University
More information6.170 Laboratory in Software Engineering Java Style Guide. Overview. Descriptive names. Consistent indentation and spacing. Page 1 of 5.
Page 1 of 5 6.170 Laboratory in Software Engineering Java Style Guide Contents: Overview Descriptive names Consistent indentation and spacing Informative comments Commenting code TODO comments 6.170 Javadocs
More informationAnnouncement. Agenda 7/31/2008. Polymorphism, Dynamic Binding and Interface. The class will continue on Tuesday, 12 th August
Polymorphism, Dynamic Binding and Interface 2 4 pm Thursday 7/31/2008 @JD2211 1 Announcement Next week is off The class will continue on Tuesday, 12 th August 2 Agenda Review Inheritance Abstract Array
More informationStatic Methods. Why use methods?
Static Methods A method is just a collection of code. They are also called functions or procedures. It provides a way to break a larger program up into smaller, reusable chunks. This also has the benefit
More informationWrapper Classes double pi = new Double(3.14); 3 double pi = new Double("3.14"); 4... Zheng-Liang Lu Java Programming 290 / 321
Wrapper Classes To treat values as objects, Java supplies standard wrapper classes for each primitive type. For example, you can construct a wrapper object from a primitive value or from a string representation
More information