OO Programming in C# Computing Resources. COMP104-11S Teaching Staff. COMP104-11S Textbooks

Size: px
Start display at page:

Download "OO Programming in C# Computing Resources. COMP104-11S Teaching Staff. COMP104-11S Textbooks"

Transcription

1 Computing Resources Official Lab: Computing Laboratory 5 (R G.12) Lecture 1 OO Programming in C# Robi Malik Microsoft Visual Studio 2008 is installed on the Windows computers in this lab. DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 4 COMP104-11S Teaching Staff Robi Malik Room G 2.03 robi@cs.waikato.ac.nz Tim Elphick Room R G.13 telphick@cs.waikato.ac.nz COMP104-11S Textbooks Douglas Bell, Mike Parr, C# for Students, Addison Wesley, Revised Edition, Joel Murach, Murach s C# Mike Murach & Associates, Inc., THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 2 THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 5 COMP104-11S Timetable Lectures: Monday 12:00 14:00 K G.11 Wednesday 12:00 14:00 K G.11 Friday 12:00 14:00 K G.11 Supervised Labs: Weekdays 10:00 11:00 R G.12 COMP104-11S Moodle Course Home Page course/view.php?id=10464 Will contain: Up-to-date Information Lecture Notes and Assignment Handouts Online Quizzes Assignment Submission THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 3 THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 6 1

2 COMP104-11S Assessment Internal Assessment Assignment 1 16% due Monday 10 January 2011 Assignment 2 16% due Monday 17 January 2011 Assignment 3 16% due Monday 24 January 2011 Test 16% held Friday 28 January 2011 Assignment 4 32% due Monday 14 February Online Quizzes 4% due Wednesdays Final Examination (35% minimum) Ratio 2:1 or 1:2 (whichever works in your favour) THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 7 C# Methods Scope Return type Method name private void button1_click (object sender, System.EventArgs e) Parameter list Body Methods can be called automatically in response to events directly by our program code The body is executed line by line THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 10 COMP104S Overview Object Oriented Programming with C# Graphical User Interfaces Object and Class Design Software Development Two Kinds of Variables Local Variables Declared in method body Lose their value when method exits. Instance Variables Declared in class body Keep their value across method calls Flagged with underscore by convention. int count(int n) int i = 0; i += n; class Ball private int x_; private int y_; THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 8 THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 11 Today: Programming in C# C# programs consist of classes. The main class (typically called Form1) is generated automatically by Visual Studio. Other classes can be created by the programmer. class name Classes contain: body methods instance variables properties Classes: Naming Conventions public class MainWindow nouns upper case camel notation Methods: public void DrawImamge() verbs upper case camel notation in C# Variables: private int innerradius_ nouns (adjectives for Booleans) lower case camel notation instance variables flagged with underscore THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 9 THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture

3 What is an Object? Observation: Real-world objects always have State Behaviour Definition: An object is a software bundle of variables (state) and related methods (behaviour). THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 13 Information Hiding Important: Instance variables are buried within the object. They cannot be accessed directly from outside. They are private. THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 16 What is an Object? What is a Message? Methods (behaviour) Instance variables (state) Means of communication between objects. If an object A wants another object B to perform one of its methods, then A sends an appropriate message to B. THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 14 THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 17 Example: Bicycle Object Example: Sending a Message gears 10 mph gears (lowergear) brake 90 rpm cadence 5 th gear Me My bicycle THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 15 THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture

4 What is a Class? Superclass and Subclass Definition: A class is a blueprint, or prototype, that defines the variables and the methods common to all objects of a certain kind. Bicycle Mountain Bike Superclass Subclass Inherits state and behaviour from superclass. May add new state and behaviour. May also override inherited behaviour. THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 19 THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 22 Class and Instance Where are the Objects? Bicycle gears speed_ gears 10 mph brake brake cadence Class cadence My bicycle Instance THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 20 THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 23 What is Inheritance? The Ball Class Bicycle A ball is a round object that moves. Responsibilities: Movement within a box Rendering Mountain Bike Racing Bike Tandem Bike THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 21 THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture

5 Class Diagram for Ball Ball position_ speed_ diameter_ Move() Draw() Class name State / Instance Variables / Data Members Behaviour / Responsibilities / Methods Structure of a Class public class Ball // Instance Variables // Public Methods // Properties // Private Methods Class Name Upper case by convention. THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 25 THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 28 Class Diagram for BallWorld Instance Variables BallWorld uses Ball position_ speed_ diameter_ Move() Draw() Instance Variables describe the state of an object Also called Data Members. Every object of the class has its own copy of the instance variables. Every object can have different values for its instance variables. THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 26 THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 29 Composition The simplest way of reusing code! Just place an object reference you want to use inside a new class. Best way of expressing has-a relationships. THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 27 Declaring Instance Variables //##################### //# Instance Variables private Point pos_; private Point speed_; private int diameter_; Scope Instance variables should be private so they cannot be accessed from outside of the class. Type Name Flagged with underscore by convention. THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture

6 Methods Methods describe the behaviour of objects. Public methods can be called by users of the class. They describe the interface of the class. Some methods may be private to represent auxiliary behaviour. Private methods can only be called by other methods of the same class. Constructors are a special type of method called to create objects of the class. THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 31 Another Class A list is an ordered collection of objects. [0] [1] [2] [3] Lists are parameterised by generic type: List<Ball> a list of balls List<float> a list of numbers List<List<int>> a list of lists THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 34 Scope Writing a Public Method Return Type Name Upper case by convention. public void Draw(Graphics graphics) Brush brush = new SolidBrush(Color.Red); graphics.fillellipse (brush, pos_.x, pos_.y, diameter_, diameter_); THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 32 Some List Code List<int> list = new List<int>(); list.add(1); list.add(0); list.add(4); int size = list.count; foreach (int i in list) MessageBox.Show(i); int secondelement = list[1]; list.removeat(1); THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 35 Scope Writing a Constructor Omit Return Type Class Name public Ball (int x, int y, int dx, int dy, int radius) pos_ = new Point(x, y); speed_ = new Point(dx, dy); diameter_ Matching = call: 2 * radius; Ball ball = new Ball(20, 25, 2, 2, 10); THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture 1 33 Reading C# for Students Chapter 10: Writing Classes pp Murach s C# 2008 Chapter 12: How to Create and Use Classes pp THE UNIVERSITY OF WAIKATO TE WHARE WANANGA O WAIKATO COMP104-11S Lecture

UCLA PIC 20A Java Programming

UCLA PIC 20A Java Programming UCLA PIC 20A Java Programming Instructor: Ivo Dinov, Asst. Prof. In Statistics, Neurology and Program in Computing Teaching Assistant: Yon Seo Kim, PIC University of California, Los Angeles, Summer 2002

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

Java OOP (SE Tutorials: Learning the Java Language Trail : Object-Oriented Programming Concepts Lesson )

Java OOP (SE Tutorials: Learning the Java Language Trail : Object-Oriented Programming Concepts Lesson ) Java OOP (SE Tutorials: Learning the Java Language Trail : Object-Oriented Programming Concepts Lesson ) Dongwon Jeong djeong@kunsan.ac.kr; http://ist.kunsan.ac.kr/ Information Sciences and Technology

More information

Lecture 02, Fall 2018 Friday September 7

Lecture 02, Fall 2018 Friday September 7 Anatomy of a class Oliver W. Layton CS231: Data Structures and Algorithms Lecture 02, Fall 2018 Friday September 7 Follow-up Python is also cross-platform. What s the advantage of Java? It s true: Python

More information

CPSC Tutorial 4 Visual Studio and C#

CPSC Tutorial 4 Visual Studio and C# CPSC 481 - Tutorial 4 Visual Studio and C# (based on previous tutorials by Alice Thudt, Fateme Rajabiyazdi, David Ledo, Brennan Jones, and Sowmya Somanath) Today Intro to Assignment 2 Visual Studio Intro

More information

EECS 1001 and EECS 1030M, lab 01 conflict

EECS 1001 and EECS 1030M, lab 01 conflict EECS 1001 and EECS 1030M, lab 01 conflict Those students who are taking EECS 1001 and who are enrolled in lab 01 of EECS 1030M should switch to lab 02. If you need my help with switching lab sections,

More information

Design Patterns. Design Patterns 1. Outline. Design Patterns. Bicycles Simulator 10/26/2011. Commonly recurring patterns of OO design

Design Patterns. Design Patterns 1. Outline. Design Patterns. Bicycles Simulator 10/26/2011. Commonly recurring patterns of OO design G52APR Applications Programming Design Patterns 1 Design Patterns What is design patterns? The design patterns are languageindependent strategies for solving common object-oriented design problems. Jiawei

More information

CS100J, Fall 2003 Preparing for Prelim 1: Monday, 29 Sept., 7:30 9:00PM

CS100J, Fall 2003 Preparing for Prelim 1: Monday, 29 Sept., 7:30 9:00PM CS100J, Fall 2003 Preparing for Prelim 1: Monday, 29 Sept., 7:30 9:00PM This handout explains what you have to know for the first prelim. Terms and their meaning Below, we summarize the terms you should

More information

Exercise: Singleton 1

Exercise: Singleton 1 Exercise: Singleton 1 In some situations, you may create the only instance of the class. 1 class mysingleton { 2 3 // Will be ready as soon as the class is loaded. 4 private static mysingleton Instance

More information

Making New instances of Classes

Making New instances of Classes Making New instances of Classes NOTE: revised from previous version of Lecture04 New Operator Classes are user defined datatypes in OOP languages How do we make instances of these new datatypes? Using

More information

Programming Exercise 14: Inheritance and Polymorphism

Programming 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 information

Subclasses, Superclasses, and Inheritance

Subclasses, Superclasses, and Inheritance Subclasses, Superclasses, and Inheritance To recap what you've seen before, classes can be derived from other classes. The derived class (the class that is derived from another class) is called a subclass.

More information

Day 4. COMP1006/1406 Summer M. Jason Hinek Carleton University

Day 4. COMP1006/1406 Summer M. Jason Hinek Carleton University Day 4 COMP1006/1406 Summer 2016 M. Jason Hinek Carleton University today s agenda assignments questions about assignment 2 a quick look back constructors signatures and overloading encapsulation / information

More information

CPSC Tutorial 4

CPSC Tutorial 4 CPSC 481 - Tutorial 4 Visual Studio and C# (based on previous tutorials by Alice Thudt, Fateme Rajabiyazdi, David Ledo, Brennan Jones, Sowmya Somanath, and Kevin Ta) Introduction Contact Info li26@ucalgary.ca

More information

LABORATORY 1 REVISION

LABORATORY 1 REVISION UTCN Computer Science Department Software Design 2012/2013 LABORATORY 1 REVISION ================================================================== I. UML Revision This section focuses on reviewing the

More information

CSE 21 Intro to Computing II. Inheritance

CSE 21 Intro to Computing II. Inheritance CSE 21 Intro to Computing II Inheritance 1 Administrative Business Lab11 (this week) is due on November 27 th extension Extra lab section on Tuesday November 20 th from 3-6pm (SE138) No lab November 20/23

More information

CMSC201 Computer Science I for Majors

CMSC201 Computer Science I for Majors CMSC201 Computer Science I for Majors Lecture 25 Classes All materials copyright UMBC and Dr. Katherine Gibson unless otherwise noted Run time Last Class We Covered Run time of different algorithms Selection,

More information

Allenhouse Institute of Technology (UPTU Code : 505) OOT Notes By Hammad Lari for B.Tech CSE V th Sem

Allenhouse Institute of Technology (UPTU Code : 505) OOT Notes By Hammad Lari for B.Tech CSE V th Sem UNIT-1 ECS-503 Object Oriented Techniques Part-1: Object-Oriented Programming Concepts What Is an Object? Objects are key to understanding object-oriented technology. Look around right now and you'll find

More information

CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University

CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University CS5000: Foundations of Programming Mingon Kang, PhD Computer Science, Kennesaw State University Inheritance Three main programming mechanisms that constitute object-oriented programming (OOP) Encapsulation

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

CSE 113 A. Announcements - Lab

CSE 113 A. Announcements - Lab CSE 113 A February 21-25, 2011 Announcements - Lab Lab 1, 2, 3, 4; Practice Assignment 1, 2, 3, 4 grades are available in Web-CAT look under Results -> Past Results and if looking for Lab 1, make sure

More information

OO Techniques & UML Class Diagrams

OO Techniques & UML Class Diagrams OO Techniques & UML Class Diagrams SE3A04 Tutorial Jason Jaskolka Department of Computing and Software Faculty of Engineering McMaster University Hamilton, Ontario, Canada jaskolj@mcmaster.ca October 17,

More information

Lecture 7. Log into Linux New documents posted to course webpage

Lecture 7. Log into Linux New documents posted to course webpage Lecture 7 Log into Linux New documents posted to course webpage Coding style guideline; part of project grade is following this Homework 4, due on Monday; this is a written assignment Project 1, due next

More information

A foundation for programming. Classes and objects. Overview. Java primitive types. Primitive types Creating your own data types

A foundation for programming. Classes and objects. Overview. Java primitive types. Primitive types Creating your own data types Classes and objects A foundation for programming any program you might want to write objects functions and modules build even bigger programs and reuse code http://www.flickr.com/photos/vermegrigio/5923415248/

More information

CS Week 15 Page 1

CS Week 15 Page 1 Reading: 1. Deitel & Deitel, Chapters 10 Objectives: 1. Continue discussing Object Oriented Programming 2. Final Exam Review Concepts: 1. More About Polymorphism References: 1. http://www.prenhall.com/deitel/

More information

Chapter 3: Inheritance and Polymorphism

Chapter 3: Inheritance and Polymorphism Chapter 3: Inheritance and Polymorphism Overview Inheritance is when a child class, or a subclass, inherits, or gets, all the data (properties) and methods from the parent class, or superclass. Just like

More information

Reviewing OO Concepts

Reviewing OO Concepts Reviewing OO Concepts Users want to draw circles onto the display canvas. public class Circle { // more code here SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester

More information

Building custom components IAT351

Building custom components IAT351 Building custom components IAT351 Week 1 Lecture 1 9.05.2012 Lyn Bartram lyn@sfu.ca Today Review assignment issues New submission method Object oriented design How to extend Java and how to scope Final

More information

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques 1 CPSC2620 Advanced Programming Spring 2003 Instructor: Dr. Shahadat Hossain 2 Today s Agenda Administrative Matters Course Information Introduction to Programming Techniques 3 Course Assessment Lectures:

More information

Classes, subclasses, subtyping

Classes, subclasses, subtyping 1 CSCE 314: Programming Languages Dr. Flemming Andersen Classes, subclasses, subtyping 2 3 Let me try to explain to you, what to my taste is characteristic for all intelligent thinking. It is, that one

More information

EINDHOVEN UNIVERSITY OF TECHNOLOGY

EINDHOVEN UNIVERSITY OF TECHNOLOGY EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics & Computer Science Exam Programming Methods, 2IP15, Wednesday 17 April 2013, 09:00 12:00 TU/e THIS IS THE EXAMINER S COPY WITH (POSSIBLY INCOMPLETE)

More information

Data Structure Design II Chris Piech CS106A, Stanford University. Piech, CS106A, Stanford University

Data Structure Design II Chris Piech CS106A, Stanford University. Piech, CS106A, Stanford University Data Structure Design II Chris Piech CS106A, Stanford University Today in lecture We have used many variable types E.g. GRect E.g. String E.g. AudioSample Today we learn how to define our own We use new

More information

CompSci 230 Software Construction

CompSci 230 Software Construction CompSci 230 Software Construction Lecture Slides #3: Introduction to OOD S1 2015 Version 1.1 of 2015-03-12: added return to code on slides 10, 13 Topics: Agenda Software Design (vs. hacking) Object-Oriented

More information

COURSE OUTLINE. Faculty of Computing, Universiti Teknologi Malaysia

COURSE OUTLINE. Faculty of Computing, Universiti Teknologi Malaysia Page : 1 of 5 Lecturer : Dr. Norsham binti Idris Room No. : Software Engineering Department, Telephone No. : 07-5532348/013-7261920 E-mail : norsham@utm.my Course Synopsis : This course presents the concepts

More information

CPS122 Lecture: Detailed Design and Implementation

CPS122 Lecture: Detailed Design and Implementation CPS122 Lecture: Detailed Design and Implementation Objectives: Last revised March 3, 2017 1. To introduce the use of a complete UML class box to document the name, attributes, and methods of a class 2.

More information

1/27/2014. OO design approach with examples. UML and project clarifications (2) Project clarifications 1. UML

1/27/2014. OO design approach with examples. UML and project clarifications (2) Project clarifications 1. UML OO design approach with examples Sharma Chakravarthy Information Technology Laboratory (IT Lab) Computer Science and Engineering Department The University of Texas at Arlington, Arlington, TX 76019 Email:

More information

Concurrency in Object Oriented Programs 1. Object-Oriented Software Development COMP4001 CSE UNSW Sydney Lecturer: John Potter

Concurrency in Object Oriented Programs 1. Object-Oriented Software Development COMP4001 CSE UNSW Sydney Lecturer: John Potter Concurrency in Object Oriented Programs 1 Object-Oriented Software Development COMP4001 CSE UNSW Sydney Lecturer: John Potter Outline Concurrency: the Future of Computing Java Concurrency Thread Safety

More information

CLASSES AND OBJECTS. Fundamentals of Computer Science I

CLASSES AND OBJECTS. Fundamentals of Computer Science I CLASSES AND OBJECTS Fundamentals of Computer Science I Outline Primitive types Creating your own data types Classes Objects Instance variables Instance methods Constructors Arrays of objects A Foundation

More information

COMP200 - Object Oriented Programming: Test One Duration - 60 minutes

COMP200 - Object Oriented Programming: Test One Duration - 60 minutes COMP200 - Object Oriented Programming: Test One Duration - 60 minutes Study the following class and answer the questions that follow: package shapes3d; public class Circular3DShape { private double radius;

More information

MechEng SE3 Lecture 7 Domain Modelling

MechEng SE3 Lecture 7 Domain Modelling MechEng SE3 Lecture 7 Domain Modelling Simon Gay (slides by Phil Gray) 17 February 2010 1 This week s supplementary reading Zero Balances and Zero Responsibility Michael Bolton http://www.developsense.com/essays/zero.html

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A

S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A G R A M S ) WHAT IS CLASS DIAGRAM? A class diagram

More information

Object Orientated Analysis and Design. Benjamin Kenwright

Object Orientated Analysis and Design. Benjamin Kenwright Notation Part 2 Object Orientated Analysis and Design Benjamin Kenwright Outline Review What do we mean by Notation and UML? Types of UML View Continue UML Diagram Types Conclusion and Discussion Summary

More information

CE221 Programming in C++ Part 1 Introduction

CE221 Programming in C++ Part 1 Introduction CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab

More information

Principles of Object Oriented Programming. Lecture 4

Principles of Object Oriented Programming. Lecture 4 Principles of Object Oriented Programming Lecture 4 Object-Oriented Programming There are several concepts underlying OOP: Abstract Types (Classes) Encapsulation (or Information Hiding) Polymorphism Inheritance

More information

Reviewing OO Concepts

Reviewing OO Concepts Reviewing OO Concepts Users want to draw circles onto the display canvas. public class Circle { // more code here SWEN-261 Introduc2on to So3ware Engineering Department of So3ware Engineering Rochester

More information

Administrivia. IBM Info Session Date: Wed,, Jan 13 Time: 5:30 7 pm Location: Wesbrook 100

Administrivia. IBM Info Session Date: Wed,, Jan 13 Time: 5:30 7 pm Location: Wesbrook 100 Department of Computer Science Undergraduate Events Events this week Drop-In Resume Edition Date: Mon. Jan 11 Time: 11 am 2 pm Location: Rm 255, ICICS/CS Industry Panel Speakers: Managers from IBM, Microsoft,

More information

Lecture 36: Cloning. Last time: Today: 1. Object 2. Polymorphism and abstract methods 3. Upcasting / downcasting

Lecture 36: Cloning. Last time: Today: 1. Object 2. Polymorphism and abstract methods 3. Upcasting / downcasting Lecture 36: Cloning Last time: 1. Object 2. Polymorphism and abstract methods 3. Upcasting / downcasting Today: 1. Project #7 assigned 2. equals reconsidered 3. Copying and cloning 4. Composition 11/27/2006

More information

ITT Technical Institute. SD1420 Introduction to Java Programming Onsite and Online Course SYLLABUS

ITT Technical Institute. SD1420 Introduction to Java Programming Onsite and Online Course SYLLABUS ITT Technical Institute SD1420 Onsite and Online Course SYLLABUS Credit hours: 4.5 Contact/Instructional hours: 56 (34 Theory Hours, 22 Lab Hours Prerequisite(s and/or Corequisite(s: Prerequisite: PT1420

More information

CLASSES AND OBJECTS. Fundamentals of Computer Science I

CLASSES AND OBJECTS. Fundamentals of Computer Science I CLASSES AND OBJECTS Fundamentals of Computer Science I Outline Primitive types Creating your own data types Classes Objects Instance variables Instance methods Constructors Arrays of objects A Foundation

More information

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Introduction History, Characteristics of Java language Java Language Basics Data types, Variables, Operators and Expressions Anatomy of a Java Program

More information

Last lecture. Lecture 9. in a nutshell. in a nutshell 2. Example of encapsulation. Example of encapsulation. Class test. Procedural Programming

Last lecture. Lecture 9. in a nutshell. in a nutshell 2. Example of encapsulation. Example of encapsulation. Class test. Procedural Programming 1 Lecture 9 Last lecture Class test Has been marked Collect your marks at your next seminar Seminars There are seminars this week to go through the class test Meet in the classroom indicated on the timetable

More information

You must pass the final exam to pass the course.

You must pass the final exam to pass the course. Computer Science Technology Department Houston Community College System Department Website: http://csci.hccs.cc.tx.us CRN: 46876 978-1-4239-0146-4 1-4239-0146-0 Semester: Fall 2010 Campus and Room: Stafford

More information

Project 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. 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 information

ITI Introduction to Computing II

ITI Introduction to Computing II ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Inheritance Introduction Generalization/specialization Version of January 20, 2014 Abstract

More information

Object-Oriented Programming Paradigm

Object-Oriented Programming Paradigm Object-Oriented Programming Paradigm Sample Courseware Object-Oriented Programming Paradigm Object-oriented programming approach allows programmers to write computer programs by representing elements of

More information

Twin A Design Pattern for Modeling Multiple Inheritance

Twin A Design Pattern for Modeling Multiple Inheritance Twin A Design Pattern for Modeling Multiple Inheritance Hanspeter Mössenböck University of Linz, Institute of Practical Computer Science, A-4040 Linz moessenboeck@ssw.uni-linz.ac.at Abstract. We introduce

More information

Object-Oriented Programming. Objects. Objects. Objects

Object-Oriented Programming. Objects. Objects. Objects References: Beginning Java by Jacquie Barker; Designing Object-Oriented Software by Rebecca Wirfs- Brock;Object-oriented Analysis & Design by Grady Booch; Sara Stoecklin Object Oriented Programming defined

More information

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS: College of San Mateo Official Course Outline 1. COURSE ID: CIS 278 TITLE: (CS1) Programming Methods: C++ C-ID: COMP 122 Units: 4.0 units Hours/Semester: 48.0-54.0 Lecture hours; 48.0-54.0 Lab hours; and

More information

Review sheet for Final Exam (List of objectives for this course)

Review sheet for Final Exam (List of objectives for this course) Review sheet for Final Exam (List of objectives for this course) Please be sure to see other review sheets for this semester Please be sure to review tests from this semester Week 1 Introduction Chapter

More information

BIT 115: Introduction To Programming LECTURE 3. Instructor: Craig Duckett

BIT 115: Introduction To Programming LECTURE 3. Instructor: Craig Duckett BIT 115: Introduction To Programming LECTURE 3 Instructor: Craig Duckett cduckett@cascadia.edu Lecture 3 Announcements By now everyone should be up and running with Java, jgrasp, and the Becker Robots

More information

CS 110 Practice Final Exam originally from Winter, Instructions: closed books, closed notes, open minds, 3 hour time limit.

CS 110 Practice Final Exam originally from Winter, Instructions: closed books, closed notes, open minds, 3 hour time limit. Name CS 110 Practice Final Exam originally from Winter, 2003 Instructions: closed books, closed notes, open minds, 3 hour time limit. There are 4 sections for a total of 49 points. Part I: Basic Concepts,

More information

Curriculum Map Grade(s): Subject: AP Computer Science

Curriculum Map Grade(s): Subject: AP Computer Science Curriculum Map Grade(s): 11-12 Subject: AP Computer Science (Semester 1 - Weeks 1-18) Unit / Weeks Content Skills Assessments Standards Lesson 1 - Background Chapter 1 of Textbook (Weeks 1-3) - 1.1 History

More information

Inheritance, part 2: Subclassing. COMP 401, Spring 2015 Lecture 8 2/3/2015

Inheritance, part 2: Subclassing. COMP 401, Spring 2015 Lecture 8 2/3/2015 Inheritance, part 2: Subclassing COMP 401, Spring 2015 Lecture 8 2/3/2015 Motivating Example lec8.ex1.v1 Suppose we re writing a university management system. Interfaces: Person get first and last name

More information

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014 Lesson 10A OOP Fundamentals By John B. Owen All rights reserved 2011, revised 2014 Table of Contents Objectives Definition Pointers vs containers Object vs primitives Constructors Methods Object class

More information

ITI Introduction to Computing II

ITI Introduction to Computing II ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Inheritance Introduction Generalization/specialization Version of January 21, 2013 Abstract

More information

Block I Unit 2. Basic Constructs in Java. AOU Beirut Computer Science M301 Block I, unit 2 1

Block I Unit 2. Basic Constructs in Java. AOU Beirut Computer Science M301 Block I, unit 2 1 Block I Unit 2 Basic Constructs in Java M301 Block I, unit 2 1 Developing a Simple Java Program Objectives: Create a simple object using a constructor. Create and display a window frame. Paint a message

More information

Object Fundamentals. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 2 08/30/2007

Object Fundamentals. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 2 08/30/2007 Object Fundamentals Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 2 08/30/2007 1 Lecture Goals Introduce basic concepts, terminology, and notations for object-oriented analysis,

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Object Oriented Programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 23, 2010 G. Lipari (Scuola Superiore

More information

PART A : MULTIPLE CHOICE Circle the letter of the best answer (1 mark each)

PART A : MULTIPLE CHOICE Circle the letter of the best answer (1 mark each) PART A : MULTIPLE CHOICE Circle the letter of the best answer (1 mark each) 1. An example of a narrowing conversion is a) double to long b) long to integer c) float to long d) integer to long 2. The key

More information

CSSE 220 Day 15. Inheritance. Check out DiscountSubclasses from SVN

CSSE 220 Day 15. Inheritance. Check out DiscountSubclasses from SVN CSSE 220 Day 15 Inheritance Check out DiscountSubclasses from SVN Discount Subclasses Work in pairs First look at my solution and understand how it works Then draw a UML diagram of it DiscountSubclasses

More information

Chapter 2: Java OOP I

Chapter 2: Java OOP I Chapter 2: Java OOP I Yang Wang wyang AT njnet.edu.cn Outline OO Concepts Class and Objects Package Field Method Construct and Initialization Access Control OO Concepts Object Oriented Methods Object An

More information

Object-Oriented Programming (OOP) Basics. CSCI 161 Introduction to Programming I

Object-Oriented Programming (OOP) Basics. CSCI 161 Introduction to Programming I Object-Oriented Programming (OOP) Basics CSCI 161 Introduction to Programming I Overview Chapter 8 in the textbook Building Java Programs, by Reges & Stepp. Review of OOP History and Terms Discussion of

More information

Inheritance. Transitivity

Inheritance. Transitivity Inheritance Classes can be organized in a hierarchical structure based on the concept of inheritance Inheritance The property that instances of a sub-class can access both data and behavior associated

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 17 Inheritance Overview Problem: Can we create bigger classes from smaller ones without having to repeat information? Subclasses: a class inherits

More information

Object-Oriented Programming Concepts

Object-Oriented Programming Concepts Object-Oriented Programming Concepts Real world objects include things like your car, TV etc. These objects share two characteristics: they all have state and they all have behavior. Software objects are

More information

TEACHING & ASSESSMENT (T & A) PLAN

TEACHING & ASSESSMENT (T & A) PLAN 1 UoN/AA-003/FORM-QTLMS/V2/2017 College of: Engineering & Architecture TEACHING & ASSESSMENT (T & A) PLAN Department/School of: Architecture and Interior Design Semester: SUMMER Academic Year 2016 / 2017

More information

Software Paradigms (Lesson 3) Object-Oriented Paradigm (2)

Software Paradigms (Lesson 3) Object-Oriented Paradigm (2) Software Paradigms (Lesson 3) Object-Oriented Paradigm (2) Table of Contents 1 Reusing Classes... 2 1.1 Composition... 2 1.2 Inheritance... 4 1.2.1 Extending Classes... 5 1.2.2 Method Overriding... 7 1.2.3

More information

n HW5 out, due Tuesday October 30 th n Part 1: Questions on material we ll cover today n Part 2: BFS using your graph from HW4

n HW5 out, due Tuesday October 30 th n Part 1: Questions on material we ll cover today n Part 2: BFS using your graph from HW4 Subtype, Subtyping vs. Subclassing, Liskov Substitution Principle Announcements n HW5 out, due Tuesday October 30 th n Part 1: Questions on material we ll cover today n Part 2: BFS using your graph from

More information

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Classes, Class Diagrams Values and Attributes Operations

More information

Lecture 6. COMP1006/1406 (the OOP course) Summer M. Jason Hinek Carleton University

Lecture 6. COMP1006/1406 (the OOP course) Summer M. Jason Hinek Carleton University Lecture 6 COMP1006/1406 (the OOP course) Summer 2014 M. Jason Hinek Carleton University today s agenda assignments A1,A2,A3 are all marked A4 marking just started A5 is due Friday, A6 is due Monday a quick

More information

CREATED BY: Muhammad Bilal Arslan Ahmad Shaad. JAVA Chapter No 5. Instructor: Muhammad Naveed

CREATED BY: Muhammad Bilal Arslan Ahmad Shaad. JAVA Chapter No 5. Instructor: Muhammad Naveed CREATED BY: Muhammad Bilal Arslan Ahmad Shaad JAVA Chapter No 5 Instructor: Muhammad Naveed Muhammad Bilal Arslan Ahmad Shaad Chapter No 5 Object Oriented Programming Q: Explain subclass and inheritance?

More information

INHERITANCE AND EXTENDING CLASSES

INHERITANCE AND EXTENDING CLASSES INHERITANCE AND EXTENDING CLASSES Java programmers often take advantage of a feature of object-oriented programming called inheritance, which allows programmers to make one class an extension of another

More information

One of these "compartments" is more correctly referred to as an element of the array

One of these compartments is more correctly referred to as an element of the array An array is a special type of variable in that it can contain many values If a standard variable is like a box, think of an array as being like a box with compartments: One of these "compartments" is more

More information

L. S. Tang Department of Mathematics and Computer Science Western New England College Springfield, MA 01119

L. S. Tang Department of Mathematics and Computer Science Western New England College Springfield, MA 01119 SOME EFFECTIVE OOP EXAMPLES L. S. Tang Department of Mathematics and Computer Science Western New England College Springfield, MA 01119 1. INTRODUCTION Object-oriented programming has become increasingly

More information

Day 3. COMP 1006/1406A Summer M. Jason Hinek Carleton University

Day 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 information

CS112 Lecture: Defining Classes. 1. To describe the process of defining an instantiable class

CS112 Lecture: Defining Classes. 1. To describe the process of defining an instantiable class CS112 Lecture: Defining Classes Last revised 2/3/06 Objectives: 1. To describe the process of defining an instantiable class Materials: 1. BlueJ SavingsAccount example project 2. Handout of code for SavingsAccount

More information

2D1358 Object Oriented Program Construction in C++ Exercises & Labs. Course Registration / Accounts. Course Literature

2D1358 Object Oriented Program Construction in C++ Exercises & Labs. Course Registration / Accounts. Course Literature 2D1358 Object Oriented Program Construction in C++ Exercises & Labs Lecturer: Frank Hoffmann hoffmann@nada.kth.se Assistents: Danica Kragic danik @nada.kth.se Anders Orebäck oreback @nada.kth.se Peter

More information

Object-Oriented Design (OOD) and C++

Object-Oriented Design (OOD) and C++ Chapter 2 Object-Oriented Design (OOD) and C++ At a Glance Instructor s Manual Table of Contents Chapter Overview Chapter Objectives Instructor Notes Quick Quizzes Discussion Questions Projects to Assign

More information

COURSE SYLLABUS FOR. COMP-297 Web Page Design: Adobe Dreamweaver

COURSE SYLLABUS FOR. COMP-297 Web Page Design: Adobe Dreamweaver Coffeyville Community College COURSE SYLLABUS FOR COMP-297 Web Page Design: Adobe Dreamweaver Mrs. Darla Thornburg Spring 2018 Page 1 of 8 COURSE NUMBER: COURSE TITLE: CREDIT HOURS: INSTRUCTOR: OFFICE

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

OBJECT ORIENTED PROGRAMMING

OBJECT ORIENTED PROGRAMMING OBJECT ORIENTED PROGRAMMING (download slides and.py files follow along!) 6.0001 LECTURE 8 6.0001 LECTURE 8 1 OBJECTS Python supports many different kinds of data 1234 3.14159 "Hello" [1, 5, 7, 11, 13]

More information

CS 15 Design Section. Design

CS 15 Design Section. Design Design Introduction to the Section: This may be for advanced students who already know about Procedural Programming. Could be a nice lecture for them as to why we teach OO. This is from a lecture at Georgia

More information

Data Analysis 1. Chapter 2.1 V3.1. Napier University Dr Gordon Russell

Data Analysis 1. Chapter 2.1 V3.1. Napier University Dr Gordon Russell Data Analysis 1 Chapter 2.1 V3.1 Copyright @ Napier University Dr Gordon Russell Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is

More information

Inheritance and Interfaces

Inheritance and Interfaces Inheritance and Interfaces what is inheritance? examples & Java API examples inheriting a method overriding a method polymorphism Object tostring interfaces Ex: sorting and Comparable interface Inheritance

More information

Structured Programming

Structured Programming CS 170 Java Programming 1 Objects and Variables A Little More History, Variables and Assignment, Objects, Classes, and Methods Structured Programming Ideas about how programs should be organized Functionally

More information

Tutorials. Tutorial every Friday at 11:30 AM in Toldo 204 * discuss the next lab assignment

Tutorials. 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 information

CS304 Object Oriented Programming Final Term

CS304 Object Oriented Programming Final Term 1. Which of the following is the way to extract common behaviour and attributes from the given classes and make a separate class of those common behaviours and attributes? Generalization (pg 29) Sub-typing

More information

Object-Oriented Programming. Lecture 2 Dr Piotr Cybula

Object-Oriented Programming. Lecture 2 Dr Piotr Cybula Object-Oriented Programming Lecture 2 Dr Piotr Cybula Encapsulation : data protection code safety and independence better team support with the code separation without «giving

More information

Final Exam. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings

Final 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 information