class ViewOne: 1 to the 1 power = 1.0 class ViewOne: 2 to the 2 power = 4.0 class ViewOne: 4 to the 4 power = 256.0

Size: px
Start display at page:

Download "class ViewOne: 1 to the 1 power = 1.0 class ViewOne: 2 to the 2 power = 4.0 class ViewOne: 4 to the 4 power = 256.0"

Transcription

1 14. The Observer Design Pattern allows you to have multiple current views of the same object by showing the state of the observed object every time its state changes. One example is when a spreadsheet has several views of the same list of numbers. Whenever the list of numbers changes, so will both charts that are "observing" the model: This question asks you to resolve a simpler problem. The code below changes the state of the observed object (m1) during a setvalue message. At that time, m1 notifies all added Observer objects (v1 and v2) to show the tostring version of m1. The Model class must have a tostring that does this silly thing: Return a string with its stored value (ints such as 1, 2, and 4) raised to the same value using Math.pow(value, value)). Model m1 = new Model(); ViewOne v1 = new ViewOne(); ViewTwo v2 = new ViewTwo(); m1.addobserver(v1); m1.addobserver(v2); m1.setvalue(1); // notify observers m1.setvalue(2); m1.setvalue(4); 1 to the 1 power = to the 2 power = to the 4 power = In the design shown on the next page (see UML class diagram), each Observer object (v1 and v2) uses its own updatetheview method to show the current state of the observed object (m1). This is made possible by giving each Observer object (v1 and v2) access to the observed object m1. ViewOne must print the tostring value at the same time ViewTwo displays the tostring value in a JOptionPane showmessagedialog.

2 Answer the four questions on the next two pages using the UML diagram representing this particular example of Observer. Note: The parameters and fields were omitted on purpose. This picture on the next page used is Rational Software Architect's UML tool where the circles mean public and the one square (before notifyobservers) means private. Assume all imports exist. Do not take the time to import anything a) Write interface Observer. b) Write class ViewOne so it will print "" followed by the tostring value each time the Model object sends a ViewOne object an updatetheview message. c) Write class ViewTwo so it will display "class ViewTwo:" followed by the tostring value of the Model object in a JOptionPane.showMessageDialogBox each time the Model object sends a ViewTwo object an updatetheview message.

3 d) Write class Model. Ensure it can send the correct message at the correct time to all Observer objects that have been added, even if there are three or four. Do not allow class cast exceptions. Make sure only Observer objects can be added. Answers 11. ViewOne

4 public class ViewOne implements Observer { public void updatetheview(object theobservedobject) { System.out.println(this.getClass() + ":\n" + theobservedobject.tostring()); +2 Class heading +1 has ViewOne +1 implements Observer +2 Method heading +1 has updatetheview +1 has parameter +1 prints something.tostring() 12. ViewTwo public class ViewTwo implements Observer { public void updatetheview(object theobservedobject) { JOptionPane.showMessageDialog(null, "class ViewTwo" + ":\n" +theobservedobject.tostring()); +2 Class heading +1 has ViewTwo +1 implements Observer +2 Method heading +1 has updatetheview +1 has parameter +1 calls JoptionPane.showMessageDialog with something.tostring() 13. Class Model: public class Model { private ArrayList observers; private int value; public Model() { observers = new ArrayList(); public void addobserver(observer anobserver) { observers.add(anobserver); private void notifyobservers() { for (int i = 0; i < observers.size(); i++) { Observer o = (Observer) observers.get(i); o.updatetheview(this); public String tostring() { return "" + value + " to the " + value + " power = " + Math.pow(value, value); public void setvalue(int value) { this.value = value; notifyobservers();

5 +2 Has a collection to add observers +1 has an int value +2 addobserver +1 adds observer +2 tostring +1 Math.pow(val,val) +6 notifyobservers +2 loops through observers +2 sends updatetheview messages +1 passes this +4 setvalue +1 changes value +2 notifiesobserver +1 Other stuff

In this lab, you will be given the implementation of the classes GeometricObject, Circle, and Rectangle, as shown in the following UML class diagram.

In this lab, you will be given the implementation of the classes GeometricObject, Circle, and Rectangle, as shown in the following UML class diagram. Jordan University Faculty of Engineering and Technology Department of Computer Engineering Object-Oriented Problem Solving: CPE 342 Lab-8 Eng. Asma Abdel Karim In this lab, you will be given the implementation

More information

Chapter 15: Object Oriented Programming

Chapter 15: Object Oriented Programming Chapter 15: Object Oriented Programming Think Java: How to Think Like a Computer Scientist 5.1.2 by Allen B. Downey How do Software Developers use OOP? Defining classes to create objects UML diagrams to

More information

SYSC Come to the PASS workshop with your mock exam complete. During the workshop you can work with other students to review your work.

SYSC Come to the PASS workshop with your mock exam complete. During the workshop you can work with other students to review your work. It is most beneficial to you to write this mock midterm UNDER EXAM CONDITIONS. This means: Complete the Exam in 3 hour(s). Work on your own. Keep your notes and textbook closed. Attempt every question.

More information

Outline HW2. Feedback. CS1007: Object Oriented Design and Programming in Java

Outline HW2. Feedback. CS1007: Object Oriented Design and Programming in Java Outline CS1007: Object Oriented Design and Programming in Java Lecture #8 Oct 4 Shlomo Hershkop shlomo@cs.columbia.edu Unit Testing Sorting Algorithms Polymorphism Interfaces Basic graphics Layout managers

More information

INF 111 / CSE 121. Homework 2: Design Patterns and Code Generation using Rational Software Development Platform

INF 111 / CSE 121. Homework 2: Design Patterns and Code Generation using Rational Software Development Platform Homework 2: Design Patterns and Code Generation using Rational Software Development Platform Laboratory Date: Monday, October 10, 2011 Take Home Due: Thursday, October 20, 2011 Name : Student Number :

More information

Lesson 3: Accepting User Input and Using Different Methods for Output

Lesson 3: Accepting User Input and Using Different Methods for Output Lesson 3: Accepting User Input and Using Different Methods for Output Introduction So far, you have had an overview of the basics in Java. This document will discuss how to put some power in your program

More information

Lab 4. D0010E Object-Oriented Programming and Design. Today s lecture. GUI programming in

Lab 4. D0010E Object-Oriented Programming and Design. Today s lecture. GUI programming in Lab 4 D0010E Object-Oriented Programming and Design Lecture 9 Lab 4: You will implement a game that can be played over the Internet. The networking part has already been written. Among other things, the

More information

Good Luck! CSC207, Fall 2012: Quiz 3 Duration 25 minutes Aids allowed: none. Student Number: Lecture Section: L0101. Instructor: Horton

Good Luck! CSC207, Fall 2012: Quiz 3 Duration 25 minutes Aids allowed: none. Student Number: Lecture Section: L0101. Instructor: Horton CSC207, Fall 2012: Quiz 3 Duration 25 minutes Aids allowed: none Student Number: Last Name: Lecture Section: L0101 First Name: Instructor: Horton Please fill out the identification section above as well

More information

More about JOptionPane Dialog Boxes

More about JOptionPane Dialog Boxes APPENDIX K More about JOptionPane Dialog Boxes In Chapter 2 you learned how to use the JOptionPane class to display message dialog boxes and input dialog boxes. This appendix provides a more detailed discussion

More information

CS1004: Intro to CS in Java, Spring 2005

CS1004: Intro to CS in Java, Spring 2005 CS1004: Intro to CS in Java, Spring 2005 Lecture #13: Java OO cont d. Janak J Parekh janak@cs.columbia.edu Administrivia Homework due next week Problem #2 revisited Constructors, revisited Remember: a

More information

Unified Modeling Language

Unified Modeling Language jonas.kvarnstrom@liu.se 2015 Unified Modeling Language A Brief Introduction History In the early 1990s, three common OO modeling approaches James Rumbaugh's Object-modeling technique (OMT) 2 Grady Booch's

More information

JOptionPane Dialogs. javax.swing.joptionpane is a class for creating dialog boxes. Has both static methods and instance methods for dialogs.

JOptionPane Dialogs. javax.swing.joptionpane is a class for creating dialog boxes. Has both static methods and instance methods for dialogs. JOptionPane Dialogs javax.swing.joptionpane is a class for creating dialog boxes. Has both static methods and instance methods for dialogs. Easy to create 4 Common Dialogs: Message Dialog - display a message

More information

Solution register itself

Solution register itself Observer Pattern Context: One object (the Subject) is the source of events. Other objects (Observers) want to know when an event occurs. Or: several objects should be immediately updated when the state

More information

CSE443 Compilers. Dr. Carl Alphonce 343 Davis Hall

CSE443 Compilers. Dr. Carl Alphonce 343 Davis Hall CSE443 Compilers Dr. Carl Alphonce alphonce@buffalo.edu 343 Davis Hall http://www.cse.buffalo.edu/faculty/alphonce/sp17/cse443/index.php https://piazza.com/class/iybn4ndqa1s3ei Phases of a compiler Target

More information

are most specifically concerned with

are most specifically concerned with Observer Behavioral Patterns Behavioral patterns are those patterns that are most specifically concerned with communication between objects Introduction Name Observer Also Known As Dependents, Publish-Subscribe

More information

Introduction to Programming Written Examination

Introduction to Programming Written Examination Introduction to Programming Written Examination 23.9.2016 FIRST NAME STUDENT NUMBER LAST NAME SIGNATURE Instructions for students: Write First Name, Last Name, Student Number and Signature where indicated.

More information

Tutorial notes on. Object-oriented design

Tutorial notes on. Object-oriented design Tutorial notes on Object-oriented design Dr. C. Constantinides Computer Science and Software Engineering Concordia University 1 Exercise 1. Consider the Domain Model and the operation contracts below:

More information

CS Week 13. Jim Williams, PhD

CS Week 13. Jim Williams, PhD CS 200 - Week 13 Jim Williams, PhD This Week 1. Team Lab: Instantiable Class 2. BP2 Strategy 3. Lecture: Classes as templates BP2 Strategy 1. M1: 2 of 3 milestone tests didn't require reading a file. 2.

More information

CS 200 More Classes Jim Williams, PhD

CS 200 More Classes Jim Williams, PhD CS 200 More Classes Jim Williams, PhD Week 13 1. Team Lab: Instantiable Class 2. BP2 Milestone 3 Due Thursday 3. P7 Due next Thursday 4. CS 300 Programming II in the future? 5. Lecture: More Classes, UML

More information

Homework Set 2- Class Design

Homework Set 2- Class Design 1 Homework Set 2- Class Design By the end of the lesson students should be able to: a. Write the Java code define a class, its data members, and its constructors. b. Write a tostring() method for a class.

More information

Abstract classes are used to define a class that will be used only to build new classes. No objects will ever be instantiated from an abstract class.

Abstract classes are used to define a class that will be used only to build new classes. No objects will ever be instantiated from an abstract class. Abstract classes are used to define a class that will be used only to build new classes. No objects will ever be instantiated from an abstract class. Mammal (abstract class) Human Whale Cow Any sub class

More information

Undo. principles, concepts, and Java implementation. Checkpointing. Undo Benefits. A manual undo method. Consider a video game

Undo. principles, concepts, and Java implementation. Checkpointing. Undo Benefits. A manual undo method. Consider a video game Undo principles, concepts, and Java implementation Checkpointing A manual undo method - you save the current state so you can rollback later (if needed) Consider a video game - You kill a monster - You

More information

COMP 401 MODEL-VIEW-CONTROLLER (MVC) Instructor: Prasun Dewan

COMP 401 MODEL-VIEW-CONTROLLER (MVC) Instructor: Prasun Dewan COMP 401 MODEL-VIEW-CONTROLLER (MVC) Instructor: Prasun Dewan PREREQUISITES Interfaces Main Console Input Inheritance 2 GENERAL PROBLEM How to break up our program into multiple classes? 3 SEPARATION OF

More information

Java Object Oriented Design. CSC207 Fall 2014

Java Object Oriented Design. CSC207 Fall 2014 Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code

More information

Inheritance and Polymorphism

Inheritance and Polymorphism Object Oriented Programming Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. Al-Azhar University Website: eaymanelshenawy.wordpress.com Email : eaymanelshenawy@azhar.edu.eg

More information

Java Generics Chapter 9: Design patterns. /** * INF329 - Spring 2007 * Presented by Stian Stokkenes * */ {

Java Generics Chapter 9: Design patterns. /** * INF329 - Spring 2007 * Presented by Stian Stokkenes * */ { Java Generics Chapter 9: Design patterns /** * INF329 - Spring 2007 * Presented by Stian Stokkenes * stian@stokkenes.de */ { Chapter 9 - Design patterns Goal: Show how design patterns can take advantage

More information

CSE 331 Software Design and Implementation. Lecture 17 Events, Listeners, Callbacks

CSE 331 Software Design and Implementation. Lecture 17 Events, Listeners, Callbacks CSE 331 Software Design and Implementation Lecture 17 Events, Listeners, Callbacks Zach Tatlock / Winter 2016 The limits of scaling What prevents us from building huge, intricate structures that work perfectly

More information

public static boolean isoutside(int min, int max, int value)

public static boolean isoutside(int min, int max, int value) See the 2 APIs attached at the end of this worksheet. 1. Methods: Javadoc Complete the Javadoc comments for the following two methods from the API: (a) / @param @param @param @return @pre. / public static

More information

Chapter 5. Feb 08, Chapter 5 1

Chapter 5. Feb 08, Chapter 5 1 Feb 08, 2008 1 Methods in a class are invoked using objects A a1 = new A(); a1.func1(); Calling object and the dot can be omitted if the method is called within the same class. func1(); //same as this.func1()

More information

Guessing Game with Objects

Guessing Game with Objects Objectives Tasks Guessing Game with Objects 1. Practice writing an object-oriented program using different classes for different parts of the game. 2. Write code that is portable. Your application must

More information

Design Patterns: Part 2

Design Patterns: Part 2 Design Patterns: Part 2 ENGI 5895: Software Design Andrew Vardy with code samples from Dr. Rodrigue Byrne and [Martin(2003)] Faculty of Engineering & Applied Science Memorial University of Newfoundland

More information

CSE 331 Software Design and Implementation. Lecture 16 Callbacks and Observers

CSE 331 Software Design and Implementation. Lecture 16 Callbacks and Observers CSE 331 Software Design and Implementation Lecture 16 Callbacks and Observers Leah Perlmutter / Summer 2018 Announcements Announcements Quiz 6 due Thursday 8/2 Homework 7 due Thursday 8/2 Callbacks The

More information

C12a: The Object Superclass and Selected Methods

C12a: The Object Superclass and Selected Methods CISC 3115 TY3 C12a: The Object Superclass and Selected Methods Hui Chen Department of Computer & Information Science CUNY Brooklyn College 10/4/2018 CUNY Brooklyn College 1 Outline The Object class and

More information

Introduction to. Bruno Harbulot. ESNW, the University of Manchester.

Introduction to. Bruno Harbulot. ESNW, the University of Manchester. Introduction to Aspect-Oriented Software Development Bruno Harbulot ESNW, the University of Manchester http://www.cs.man.ac.uk/~harbulob/ ELF Developers' Forum Manchester - October 2005 1/24 Presentation

More information

Studying software design patterns is an effective way to learn from the experience of others

Studying software design patterns is an effective way to learn from the experience of others Studying software design patterns is an effective way to learn from the experience of others 1 Parties have different ways of presenting the results. Presentation of results Coupling Computation of results

More information

COMP-202: Foundations of Programming. Lecture 13: Recursion Sandeep Manjanna, Summer 2015

COMP-202: Foundations of Programming. Lecture 13: Recursion Sandeep Manjanna, Summer 2015 COMP-202: Foundations of Programming Lecture 13: Recursion Sandeep Manjanna, Summer 2015 Announcements Final exams : 26 th of June (2pm to 5pm) @ MAASS 112 Assignment 4 is posted and Due on 29 th of June

More information

Binghamton University. CS-140 Fall Interfaces

Binghamton University. CS-140 Fall Interfaces Interfaces 1 Arrays vs. ArrayLists Similarities Indexed list of data elements of a specific type Allow you to determine the number of elements Allow you to read (get) or write (set) individual elements

More information

Handout 3 cs180 - Programming Fundamentals Fall 17 Page 1 of 6. Handout 3. Strings and String Class. Input/Output with JOptionPane.

Handout 3 cs180 - Programming Fundamentals Fall 17 Page 1 of 6. Handout 3. Strings and String Class. Input/Output with JOptionPane. Handout 3 cs180 - Programming Fundamentals Fall 17 Page 1 of 6 Handout 3 Strings and String Class. Input/Output with JOptionPane. Strings In Java strings are represented with a class type String. Examples:

More information

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming In C++ classes provide the functionality necessary to use object-oriented programming OOP is a particular way of organizing computer programs It doesn t allow you to do anything

More information

Chapter 1 Introduction to Computers, Programs, and Java

Chapter 1 Introduction to Computers, Programs, and Java Chapter 1 Introduction to Computers, Programs, and Java 1 Programs Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Without programs,

More information

ArrayList. Introduction. java.util.arraylist

ArrayList. Introduction. java.util.arraylist ArrayList Introduction In this article from my free Java 8 course, I will be giving you a basic overview of the Java class java.util.arraylist. I will first explain the meaning of size and capacity of

More information

Programming with Objects

Programming with Objects Programming with Objects Writing your own Classes As this topic is covered in great detail in Chapter 4 of the book, I will just review the main concepts here. We have already briefly encountered a user-defined

More information

INHERITANCE & POLYMORPHISM. INTRODUCTION IB DP Computer science Standard Level ICS3U. INTRODUCTION IB DP Computer science Standard Level ICS3U

INHERITANCE & POLYMORPHISM. INTRODUCTION IB DP Computer science Standard Level ICS3U. INTRODUCTION IB DP Computer science Standard Level ICS3U C A N A D I A N I N T E R N A T I O N A L S C H O O L O F H O N G K O N G INHERITANCE & POLYMORPHISM P2 LESSON 12 P2 LESSON 12.1 INTRODUCTION inheritance: OOP allows a programmer to define new classes

More information

Addendum File Web Design and Development (CS506)

Addendum File Web Design and Development (CS506) Lecture No. 1 Addendum File Web Design and Development (CS506) Placement on Time Line / Page no. Updating Slide 36:00 to 38:00 See the updated grading scheme on LMS, because the grading scheme may subject

More information

Outline. Design Patterns. Observer Pattern. Definitions & Classifications

Outline. Design Patterns. Observer Pattern. Definitions & Classifications Outline Design Patterns Definitions & Classifications Observer Pattern Intent Motivation Structure Participants Collaborations Consequences Implementation 1 What is a Design Pattern describes a problem

More information

ENGLISH Page 1 of 6. EXAM IN COURSE TDT4100 Object-Oriented Programming / IT1104 Programming, Advanced Course. Tuesday 29. Mai

ENGLISH Page 1 of 6. EXAM IN COURSE TDT4100 Object-Oriented Programming / IT1104 Programming, Advanced Course. Tuesday 29. Mai ENGLISH Page 1 of 6 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EXAM IN COURSE

More information

Course Supervisor: Dr. Humera Tariq Hands on Lab Sessions: Ms. Sanya Yousuf

Course Supervisor: Dr. Humera Tariq Hands on Lab Sessions: Ms. Sanya Yousuf Course Supervisor: Dr. Humera Tariq Hands on Lab Sessions: Ms. Sanya Yousuf UML to represent and using single object Practice writing code for class Practice tostring( ) function Practice writing your

More information

Inheritance Motivation

Inheritance Motivation Inheritance Inheritance Motivation Inheritance in Java is achieved through extending classes Inheritance enables: Code re-use Grouping similar code Flexibility to customize Inheritance Concepts Many real-life

More information

Introducing Design Patterns

Introducing Design Patterns Introducing Design Patterns Prof. Dr. Eric Dubuis, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version October 2007 BFH/TI/UML and Design Patterns/Software Engineering

More information

MCS-378 Intraterm Exam 1 Serial #:

MCS-378 Intraterm Exam 1 Serial #: MCS-378 Intraterm Exam 1 Serial #: This exam is closed-book and mostly closed-notes. You may, however, use a single 8 1/2 by 11 sheet of paper with hand-written notes for reference. (Both sides of the

More information

ITNP090 - Object Oriented Software Design

ITNP090 - Object Oriented Software Design In this practical, we will create a model for a part of the reservation system for a library. There are Book objects and an application object that creates and manipulates them. Two view objects in the

More information

C# Language. CSE 409 Advanced Internet Technology

C# Language. CSE 409 Advanced Internet Technology C# Language Today You will learn Building a basic class Value Types and Reference Types Understanding Namespaces and Assemblies Advanced Class Programming CSE 409 Advanced Internet Technology Building

More information

Undo/Redo. Principles, concepts, and Java implementation

Undo/Redo. Principles, concepts, and Java implementation Undo/Redo Principles, concepts, and Java implementation Direct Manipulation Principles There is a visible and continuous representation of the domain objects and their actions. Consequently, there is little

More information

5.6.1 The Special Variable this

5.6.1 The Special Variable this ALTHOUGH THE BASIC IDEAS of object-oriented programming are reasonably simple and clear, they are subtle, and they take time to get used to And unfortunately, beyond the basic ideas there are a lot of

More information

CS1083 Week 2: Arrays, ArrayList

CS1083 Week 2: Arrays, ArrayList CS1083 Week 2: Arrays, ArrayList mostly review David Bremner 2018-01-08 Arrays (1D) Declaring and using 2D Arrays 2D Array Example ArrayList and Generics Multiple references to an array d o u b l e prices

More information

CST141 Thinking in Objects Page 1

CST141 Thinking in Objects Page 1 CST141 Thinking in Objects Page 1 1 2 3 4 5 6 7 8 Object-Oriented Thinking CST141 Class Abstraction and Encapsulation Class abstraction is the separation of class implementation from class use It is not

More information

Last class. -More on polymorphism -super -Introduction to interfaces

Last class. -More on polymorphism -super -Introduction to interfaces Last class -More on polymorphism -super -Introduction to interfaces Interfaces Sometimes in Java, we will have 2 classes that both share a similar structure, but neither of them is clearly the parent or

More information

Course PJL. Arithmetic Operations

Course PJL. Arithmetic Operations Outline Oman College of Management and Technology Course 503200 PJL Handout 5 Arithmetic Operations CS/MIS Department 1 // Fig. 2.9: Addition.java 2 // Addition program that displays the sum of two numbers.

More information

Inheritance (Extends) Overriding methods IS-A Vs. HAS-A Polymorphism. superclass. is-a. subclass

Inheritance (Extends) Overriding methods IS-A Vs. HAS-A Polymorphism. superclass. is-a. subclass Inheritance and Polymorphism Inheritance (Extends) Overriding methods IS-A Vs. HAS-A Polymorphism Inheritance (semantics) We now have two classes that do essentially the same thing The fields are exactly

More information

Advanced Java Concepts Unit 2: Linked Lists.

Advanced Java Concepts Unit 2: Linked Lists. Advanced Java Concepts Unit 2: Linked Lists. The List interface defines the structure of a linear collection. Here are some of its methods. boolean add( E element ) Appends the element to the end of the

More information

Module Contact: Dr Geoff McKeown, CMP Copyright of the University of East Anglia Version 2

Module Contact: Dr Geoff McKeown, CMP Copyright of the University of East Anglia Version 2 UNIVERSITY OF EAST ANGLIA School of Computing Sciences Main Series UG Examination 2012-13 PROGRAMMING 1 CMPC1M0Y Time allowed: 2 hours Section A (Attempt all questions: 80 marks) Section B (Attempt one

More information

Inheritance. Inheritance allows the following two changes in derived class: 1. add new members; 2. override existing (in base class) methods.

Inheritance. Inheritance allows the following two changes in derived class: 1. add new members; 2. override existing (in base class) methods. Inheritance Inheritance is the act of deriving a new class from an existing one. Inheritance allows us to extend the functionality of the object. The new class automatically contains some or all methods

More information

Object Oriented Programming. Spring 2008

Object Oriented Programming. Spring 2008 Dynamic Binding Implementation Object Oriented Programming 236703 Spring 2008 1 Implementation of Virtual Functions class Ellipse { //... public: E 1 virtual void draw() const; draw E + virtual void hide()

More information

Objectives. Introduce the Object class concept references methods overriding methods

Objectives. Introduce the Object class concept references methods overriding methods Object Objectives Introduce the Object class concept references methods overriding methods 2 Unified inheritance hierarchy Type system is unified all types derive from System.Object root of type hierarchy

More information

Competitive VEX Robot Designer. Terminal Objective 5.1: program functions for VEX Robots

Competitive VEX Robot Designer. Terminal Objective 5.1: program functions for VEX Robots Skill Set 5: Programmer II Competitive VEX Robot Designer Terminal Objective 5.1: program functions for VEX Robots Performance Objective: Using a bumper switch, line follower, and potentiometer, program

More information

C Praktikum. Advanced Pointers. Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar

C Praktikum. Advanced Pointers. Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar C Praktikum Advanced Pointers Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar 2018-11-26 Warning This is a dive under the hood. We will see, and hopefully understand many details

More information

Abstract Classes. Abstract Classes a and Interfaces. Class Shape Hierarchy. Problem AND Requirements. Abstract Classes.

Abstract Classes. Abstract Classes a and Interfaces. Class Shape Hierarchy. Problem AND Requirements. Abstract Classes. a and Interfaces Class Shape Hierarchy Consider the following class hierarchy Shape Circle Square Problem AND Requirements Suppose that in order to exploit polymorphism, we specify that 2-D objects must

More information

Rules and syntax for inheritance. The boring stuff

Rules and syntax for inheritance. The boring stuff Rules and syntax for inheritance The boring stuff The compiler adds a call to super() Unless you explicitly call the constructor of the superclass, using super(), the compiler will add such a call for

More information

INHERITANCE AND OBJECTS. Fundamentals of Computer Science I

INHERITANCE AND OBJECTS. Fundamentals of Computer Science I INHERITANCE AND OBJECTS Fundamentals of Computer Science I Outline Inheritance Sharing code between related classes Putting similar objects in the same bucket Extremely common in modern OOP languages Managing

More information

Global Gomoku Lab 4 in D0010E

Global Gomoku Lab 4 in D0010E Luleå University of Technology February 20, 2012 Computer Science Håkan Jonsson Global Gomoku Lab 4 in D0010E 1 Introduction Modern forms of communication are more and more carried out over the Internet,

More information

KWIC Implemented with Event Based Architectural Style

KWIC Implemented with Event Based Architectural Style KWIC Implemented with Event Based Architectural Style KWIC Implemented with Event Based Architectural Style... 2 1 Event Based Systems in General... 2 1.1 Strategy of Events Handling... 2 2 Architecture...

More information

CPS122 Lecture: Design Patterns Last revised March 7, 2017

CPS122 Lecture: Design Patterns Last revised March 7, 2017 CPS122 Lecture: Design Patterns Last revised March 7, 2017 Objectives 1. To introduce and illustrate the idea of design patterns 2. To introduce some key design patterns students have used or will use:

More information

Topic 7: Algebraic Data Types

Topic 7: Algebraic Data Types Topic 7: Algebraic Data Types 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 5.5, 5.7, 5.8, 5.10, 5.11, 5.12, 5.14 14.4, 14.5, 14.6 14.9, 14.11,

More information

[TAP:AXETF] Inheritance

[TAP:AXETF] Inheritance [TAP:AXETF] Inheritance What makes the latter better? A. Less room for error B. Easier to understand the global structure C. All of the above D. None of the above E. Whatever 1 Administrative Details Lab

More information

I. True/False: (2 points each)

I. True/False: (2 points each) CS 102 - Introduction to Programming Midterm Exam #2 - Prof. Reed Fall 2009 What is your name?: There are three sections: I. True/False..............50 points; (25 questions, 2 points each) II. Multiple

More information

Laboratorio di Tecnologie dell'informazione

Laboratorio di Tecnologie dell'informazione Laboratorio di Tecnologie dell'informazione Ing. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Design pattern Observer Some motivations In many programs, when a object changes

More information

This exam is open book. Each question is worth 3 points.

This exam is open book. Each question is worth 3 points. This exam is open book. Each question is worth 3 points. Page 1 / 15 Page 2 / 15 Page 3 / 12 Page 4 / 18 Page 5 / 15 Page 6 / 9 Page 7 / 12 Page 8 / 6 Total / 100 (maximum is 102) 1. Are you in CS101 or

More information

this keyword (1). this with constructor (2). cisc3120 design and implementation of software applications I spring 2015 lecture # I.

this keyword (1). this with constructor (2). cisc3120 design and implementation of software applications I spring 2015 lecture # I. topics: introduction to java, part 4 this references exception handling comparing objects vectors utility classes cisc3120 design and implementation of software applications I spring 2015 lecture # I.4

More information

19. GUI Basics. Java. Fall 2009 Instructor: Dr. Masoud Yaghini

19. GUI Basics. Java. Fall 2009 Instructor: Dr. Masoud Yaghini 19. GUI Basics Java Fall 2009 Instructor: Dr. Masoud Yaghini Outline Displaying Text in a Message Dialog Box Getting Input from Input Dialogs References Displaying Text in a Message Dialog Box Displaying

More information

The class Object. Lecture CS1122 Summer 2008

The class Object.  Lecture CS1122 Summer 2008 The class Object http://www.javaworld.com/javaworld/jw-01-1999/jw-01-object.html Lecture 10 -- CS1122 Summer 2008 Review Object is at the top of every hierarchy. Every class in Java has an IS-A relationship

More information

Guessing Game with Objects

Guessing Game with Objects Objectives Lab1: Guessing Game with Objects Guessing Game with Objects 1. Practice designing and implementing an object-oriented program. 2. Use Console I/O in Java. Tasks 1. Design the program (problem

More information

Information System Design (IT60105)

Information System Design (IT60105) Information System Design (IT60105) Lecture 26 Object-Oriented System Testing Lecture #23 Procedural vs OO paradigms Why not Traditional Testing? Issues Methodology 2 Procedural Vs OO p Procedural Vs OO

More information

CS112 Lecture: Reuse, Packages, Patterns

CS112 Lecture: Reuse, Packages, Patterns CS112 Lecture: Reuse, Packages, Patterns Revised 4/20/05 Objectives: 1. To introduce the idea of re-use 2. To introduce some characteristics that make classes re-usable 3. To introduce Java packages. 4.

More information

CS 455 Final Exam Fall 2012 [Bono] Dec. 17, 2012

CS 455 Final Exam Fall 2012 [Bono] Dec. 17, 2012 Name: USC loginid (e.g., ttrojan): CS 455 Final Exam Fall 2012 [Bono] Dec. 17, 2012 There are 6 problems on the exam, with 70 points total available. There are 7 pages to the exam, including this one;

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 15 Lecture 15-1: Implementing ArrayIntList reading: 15.1-15.3 Recall: classes and objects class: A program entity that represents: A complete program or module, or A template

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

Observer pattern. Somebody s watching me...

Observer pattern. Somebody s watching me... Observer pattern Somebody s watching me... Purpose of the Observer pattern You have an object, Subject whose state many other objects are interested in. In particular, the many other objects are interested

More information

CSE 143. Lecture 7: Linked List Basics reading: 16.2

CSE 143. Lecture 7: Linked List Basics reading: 16.2 CSE 143 Lecture 7: Linked List Basics reading: 16.2 References vs. objects variable = value; a variable (left side of = ) is an arrow (the base of an arrow) a value (right side of = ) is an object (a box;

More information

Chapter 14 Abstract Classes and Interfaces

Chapter 14 Abstract Classes and Interfaces Chapter 14 Abstract Classes and Interfaces 1 What is abstract class? Abstract class is just like other class, but it marks with abstract keyword. In abstract class, methods that we want to be overridden

More information

COURSE 2 DESIGN PATTERNS

COURSE 2 DESIGN PATTERNS COURSE 2 DESIGN PATTERNS CONTENT Fundamental principles of OOP Encapsulation Inheritance Abstractisation Polymorphism [Exception Handling] Fundamental Patterns Inheritance Delegation Interface Abstract

More information

CS 112 Programming 2. Lecture 10. Abstract Classes & Interfaces (1) Chapter 13 Abstract Classes and Interfaces

CS 112 Programming 2. Lecture 10. Abstract Classes & Interfaces (1) Chapter 13 Abstract Classes and Interfaces CS 112 Programming 2 Lecture 10 Abstract Classes & Interfaces (1) Chapter 13 Abstract Classes and Interfaces 2 1 Motivations We have learned how to write simple programs to create and display GUI components.

More information

Recursion. Contents. Steven Zeil. November 25, Recursion 2. 2 Example: Compressing a Picture 4. 3 Example: Calculator 5

Recursion. Contents. Steven Zeil. November 25, Recursion 2. 2 Example: Compressing a Picture 4. 3 Example: Calculator 5 Steven Zeil November 25, 2013 Contents 1 Recursion 2 2 Example: Compressing a Picture 4 3 Example: Calculator 5 1 1 Recursion Recursion A function is recursive if it calls itself or calls some other function

More information

Advanced Placement Computer Science. Inheritance and Polymorphism

Advanced Placement Computer Science. Inheritance and Polymorphism Advanced Placement Computer Science Inheritance and Polymorphism What s past is prologue. Don t write it twice write it once and reuse it. Mike Scott The University of Texas at Austin Inheritance, Polymorphism,

More information

Java interface Lecture 15

Java interface Lecture 15 Lecture 15 Waterford Institute of Technology April 5, 2016 John Fitzgerald Waterford Institute of Technology, Java interface Lecture 15 1/34 Presentation outline Estimated duration presentation Questions

More information

CS Week 14. Jim Williams, PhD

CS Week 14. Jim Williams, PhD CS 200 - Week 14 Jim Williams, PhD This Week 1. Final Exam: Conflict Alternatives Emailed 2. Team Lab: Object Oriented Space Game 3. BP2 Milestone 3: Strategy 4. Lecture: More Classes and Additional Topics

More information

Announcements/Follow-ups

Announcements/Follow-ups Announcements/Follow-ups Midterm #2 Friday Everything up to and including today Review section tomorrow Study set # 6 online answers posted later today P5 due next Tuesday A good way to study Style omit

More information

Tecniche di Progettazione: Design Patterns

Tecniche di Progettazione: Design Patterns Tecniche di Progettazione: Design Patterns GoF: Bridge 1 The Bridge Pattern The Bridge Pattern permits to vary the implementation and abstraction by placing the two in seperate hierarchies. Decouple an

More information

2.1 Basics of Functions and Their Graphs

2.1 Basics of Functions and Their Graphs .1 Basics of Functions and Their Graphs Section.1 Notes Page 1 Domain: (input) all the x-values that make the equation defined Defined: There is no division by zero or square roots of negative numbers

More information

Object Oriented Programming COP3330 / CGS5409

Object Oriented Programming COP3330 / CGS5409 Object Oriented Programming COP3330 / CGS5409 Classes & Objects DDU Design Constructors Member Functions & Data Friends and member functions Const modifier Destructors Object -- an encapsulation of data

More information

Ch 7 Designing Java Classes & Class structure. Methods: constructors, getters, setters, other e.g. getfirstname(), setfirstname(), equals()

Ch 7 Designing Java Classes & Class structure. Methods: constructors, getters, setters, other e.g. getfirstname(), setfirstname(), equals() Ch 7 Designing Java Classes & Class structure Classes comprise fields and methods Fields: Things that describe the class or describe instances (i.e. objects) e.g. last student number assigned, first name,

More information