The Object Concept. Object-Oriented Programming Spring 2008
|
|
- Shavonne Moore
- 5 years ago
- Views:
Transcription
1 The Object Concept Object-Oriented Programming Spring 2008
2 The Basics Of Objects Identity It must be possible to determine whether two objects are the same. State Set of characteristics Behavior Set of operations
3 Object = ID + State + Behaviour An object has state, exhibits some well-defined behaviour and has a unique identity.
4 Some Object Examples The complex number e 3+2I Characteristics: Real part, Imaginary part, argument, absolute value,... Operations: add, multiply,... The list (13, hello, true) Characteristics: Elements, length,... Operations: Add elements, remove elements, print, iterate over, sort,... The vehicle My old GMC, license plate # Characteristics: Speed, position,... Operations: Move, stop, accelerate,...
5 Objects in C? Ans. #1/3 C, unlike Pascal, allows functions to possess some state information, hence we can create (very) degenerate objects in C: Behaviour: of one sort only Identity: single object int counter(void) { static int n = 0; return ++n;
6 Objects in C? Ans. #2/3 More interesting behaviour can be achieved by using files and separate compilation in C (or units in Turbo Pascal). Still, Behaviour: several functions Identity: single object /* stack.h: interface file */ extern void push(int val); extern int pop(void); /* stack.c: implementation file */ #include "stack.h" static int stack[100], sp; void push(int val) { stack[sp++] = val; int pop(void) { return stack[--sp];
7 Objects in C? Ans. #3/3 FILE * is as close as you can get to an object in C. Behaviour: many functions Identity: the file pointer State: the file contents, flags, status,... #include <stdio.h> main(int ac, char **av) { FILE *fin; for (++av; *av!= (char *)0; av++) { if ((fin = fopen(*av, r )) == (FILE *)0) continue; while (!feof(fin)) putc(fgetc(fin)); return 0;
8 Identity the property of an object which distinguishes it from all other objects. Identity name An object may have several different names. An object may exist without any particular name bound to it. Identity state State may change while identity may not Lifetime of an Object the time span extending from the time an object is first created and consumes space until that space is reclaimed. An object can continue to exist even if all references to it are lost. Identity is tightly related to lifetime
9 Object s Lifetime Objects may live As long as the program is alive (e.g., global objects in C++) While a certain block is running (e.g., C++ stack objects) From creation (instantiation) till destructions (e.g., C++ heap objects) From creation till no longer needed (e.g., objects in Java, C#, smalltalk) Garbage Collected languages
10 Common Garbage Collection Schemes Three basic methods for garbage collection: Reference counting Mark and Sweep Stop and Copy Many heuristics and methods enhance these basic techniques
11 Reference Counting [Collins 1960] Add a reference count field for every object. how many pointers reference this object. Update field when the #references changes New objects get RC of 1 When p that points to o1 is modified to point to o2 o1.rc-- and o2.rc++ When nothing points to an object, it can be deleted. If o1.rc == 0 delete o1 decrement RC for all children of o1 Recursively delete objects whose RC is decremented to 0.
12 Mark and Sweep [McCarthy 1960] Mark Phase Explore pointers starting from the program variables, and mark all reachable objects Sweep Phase Sweep through all objects in the heap and reclaim the unmarked ones
13 Stop and Copy Divide the heap into two parts. Part 1 takes all allocations Part 2 is reserved When Part 1 runs full, copy live (reachable) objects to Part 2 Switch the roles of the two parts
14 Self Reference to Identity In many cases, it becomes necessary for a method of an object to explicitly reference the object identity. Examples: Name space ambiguity resolution Return reference to self Store address of self Notation: self in Smalltalk Current in Eiffel this in C++, Java, C#
15 Identity: Equality & Assignment Two Kinds of Equality: Is this the same object? Names equal if designate same object. Are they in the same state? Names equal if designate objects of the same state. Two Kinds of Assignment: Identity Assignment Reference is duplicated. Only one identity is involved. After the assignment: Two names refer to the same object State Assignment Copy the state information. After the assignment: Two names refer to distinct objects Address 0x Foo Bar 0x196C 12 Memory Contents
16 Root: New root Duplicating an Object Use existing one Depth: 0-level (aka: pointer copying) 1-level (aka: shallow copying) 2-level... Deep copy Default depth: Determined by parent Determined by Children
17 class PList { public Point head; public PList tail; 1-Level Copy PList onelevelcopy() { PList res = new PList(); res.head = head; res.tail = tail; return res;
18 class PList { public Point head; public PList tail; 2-Level Copy onelevelcopy() {... PList twolevelcopy() { PList res = new PList(); res.head = new Point(head.x, head.y); if(tail!= null) res.tail = tail.onelevelcopy(); return res;
19 Deep Copy public class PList { public Point head; public PList tail; PList deepcopy() { PList res = new PList(); PList to = res; for(plist from = this; from!= null; from = from.tail) { to.head = new Point(from.head.x, from.head.y); to = to.tail = (from.tail == null)? null : new PList(); return res;
20 Depth Determined By Children public class Point { public final int x, y; public Point(int a, int b) { x = a; y = b; public Point copy() { return this; public class PList { public Point head; public PList tail; public PList copy() { PList res = new PList(); res.head = head.copy(); if(tail!= null) res.tail = tail.copy(); return res;
21 1-Level Copy Into an Existing Root public class PList { public Point head; public PList tail; void copyinto(plist res) { res.head = head; res.tail = tail;
22 Value vs. Reference Semantics Suppose that the state of a certain object includes another object... Value Semantics: Objects are stored as part of other objects Expanded in Eiffel, non pointers in C++, primitives in Java Reference Semantics: include reference to other objects Non atomic classes in Smalltalk Pointers and references in C++, Object types in Java Comparison: Access Speed: VS is faster Shallow comparison and copy: RS is faster Ownership: undefined in RS Sharing: difficult in VS Automatic garbage collection: easier in RS
23 Penalties of Reference Semantics Indirect access: more machine instructions in each access to value Loss of caching opportunities Free store allocation: search the heap in object creating and add to the heap in destruction. Memory management: extra burden on the programmer shoulders in non garbagecollecting languages Memory allocation though is easier, since objects tend to be smaller and more uniformly sized. Dynamic binding overhead: object kind is usually only known in run-time Loss of optimization opportunities
24 What's the Output Under // Psuedo code: // VS, RS? //? denotes identity comparison // == denotes value comparison for primitives class Counter { public int n = 0; void f(counter c0, Counter c1) { System.out.println(c0? c1); // Identity comparison c0.n += 1; // Mutation System.out.println(c0? c1); // Identity comparison System.out.println(c0.n == c1.n); // State comparison Counter c = new Counter(); f(c,c);
25 Case Study: Equality and Assignment in Eiffel Value semantics: Primitive types: Char, Integer, Real, and Boolean, and object attributes marked as expanded. Reference semantics: Object types (all classes) Reference (identity) operations: a := b -- Reference assignment a = b -- Reference equality testing a /= b -- Reference inequality testing Shallow (state) operations: a.copy(b) -- Attribute by attribute shallow copy a := clone(b) -- Create new clone object equal(a,b) -- Attribute by attribute comparison Deep (state) operations: a.deep_copy(b) -- Attribute by attribute copy & cloning of inner objects a := deep_clone(b) -- Create a full clone of a complex structure deep_equal(a,b) -- Attribute by attribute recursive comparison
26 Static Aspect of Objects Attributes: place holders in which the state is stored Nicknames: Fields, Properties, Instance Variables, Data Members Kinds of attributes: Immutable (static attributes) / Mutable (dynamic attributes) Structure: the set of all attributes State: the current value of all of the object attributes Immutable Objects : structure comprises only immutable attributes Example: Integer in Smalltalk, String in Java Kinds of values Scalars: Integer, Real, Boolean,... Aggregates: Array, List, Tree,... Objects: Invoice, Reservation,... Kinds of representations: value or reference/pointer
27 Dynamic Aspect of Objects Active Object: encompasses its own thread of control; may undergo spontaneous state changes. Example: Ada s tasks, Java Runnable Quite rare in sequential OOPLs. Passive Object: can change state only if operated by other objects. Client: may query an object for its state or request it to change it. Should not have direct access to attributes. State encapsulation is enforced in many OOPLs. Message Passing: the means of communication between a client and object. Client: send a message. Methods + Messages are called function members in C++. Message: a symbolic name (called selector in Smalltalk) + optional arguments. Object: invoke a method, optionally return an answer.
28 Examples of Messages The object vehicle can receive messages such as: Move forward at a given speed Accelerate Decelerate Stop The object list can receive messages such as: Add an element X Remove an element Y Return the length of yourself Sort yourself according to a given criteria Concatenate yourself with another list object Print yourself
29 Different Objects May Have Different Methods Bound to the Same Message In Object Oriented Programming: The message rotate left n degrees would be implemented differently by different objects: Shape: degrees. Circle: Do nothing if n == 0. Otherwise Rotate left n Do nothing. Rectangle: Do nothing if n == 180, 360,... Otherwise shape rotate. Square: Do nothing if n == 90, 270,... Otherwise rectangle rotate.
30 Protocol and Behavior Behavior: the way an object acts and reacts. internal state changes message sent to other objects returned value Protocol: the envelope of the behavior. Features: elements of the protocol. Operations that the object recognizes Attributes accessible from outside
31 Features and Encapsulation Given an expression a.x, What is x? Java: x is a field Eiffel: x is either a field or a parameter-less method. The Eiffel approach stems from the Uniform Access Principle: All services offered by a module should be available through a uniform notation, which does not betray whether they are implemented through storage or through computation.
32 Encapsulation using C# Properties class MyClass{ private int _x; public int x{ get{return _x; set{ _x = value; class MyClient{ public static void Main(){ MyClass mc = new MyClass(); mc.x = 10; int xval = mc.x; Console.WriteLine(xVal);//Displays 10
33 Kinds of Operations Mutator (SETter): alters state Iterator: changes the externally accessible parts of the state Moving in a linked list Exposing a register in hardware Inspector (selector, GETter): a query on the object s state. Convertor (to other): returns an equivalent object of different structure. Constructor: creates a new object and/or initializes its state. Convertor (from other): creates and initializes an object as an equivalent of another Destructor: frees object s space and/or does other clean-up operations. Revealer: exposes an internal part of an object for direct external manipulation.
34 Example: Operations in a Date Class class Date { public: // Constructor Date(int day = -1, int month = -1, int year = -1); // Inspectors int day(void) const { return d; int month(void) const { return m; int year(void) const { return y; // Mutators int day(int day); int month(int month); int year(int year); In C++, as in most other OOPLs all objects are instances of a class. // Destructor ~Date(void) { cout << "Sic transit gloria mundi"; private: int d; int m; int y; ; oop
35 Mutators of the Date Class int Date::day(int day) { int res = d; d = day; return res; int Date::month(int month) { int res = m; m = month; return res; int Date::year(int year) { int res = y; y = year; return res; Note that the mutators are not pure; they also serve an inspection purpose. Such mixed mode programming is not recommended.
36 Constructor of the Date Class Date::Date(int day, int month, int year): d(day), // Constructor header: m(month), // Initialize all data members y(year) { // Additional initialization steps // Error checking // Accounting for leap year //...
37 Example Operations in an Array Class class Array { public: // Constructor Array(int n_): n(n_), buff(new float[n]) { // Destructor ~Array(void) { delete[] data; // Inspector int n(void) { return n; // Revealer float& elem(int i) { return buff[i]; private: int n; float *buff; ; Revealers can serve the purpose of both inspectors and mutators.
The Object Concept. Object-Oriented Programming Spring 2015
The Object Concept Object-Oriented Programming 236703 Spring 2015 Identity The Basics Of Objects It must be possible to determine whether two objects are the same. State Set of characteristics Behavior
More informationStorage. Outline. Variables and Updating. Composite Variables. Storables Lifetime : Programming Languages. Course slides - Storage
Storage 1 Variables and Updating Outline Composite Variables Total and selective updating Array variables Storables Lifetime Local and global variables Heap variables Persistent variables Garbage collection
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationLecture 23: Object Lifetime and Garbage Collection
The University of North Carolina at Chapel Hill Spring 2002 Lecture 23: Object Lifetime and Garbage Collection March 18 1 Fundamental Concepts in OOP Encapsulation Data Abstraction Information hiding The
More informationStorage. Outline. Variables and updating. Copy vs. Ref semantics Lifetime. Dangling References Garbage collection
Storage 1 Variables and updating Outline Copy vs. Ref semantics Lifetime Local and global variables Heap variables Persistent variables Dangling References Garbage collection 2 Variables and Updating Variable:
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationSee the CS 2704 notes on C++ Class Basics for more details and examples. Data Structures & OO Development I
Polynomial Class Polynomial(); Polynomial(const string& N, const vector& C); Polynomial operator+(const Polynomial& RHS) const; Polynomial operator-(const Polynomial& RHS) const; Polynomial operator*(const
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 2 Thomas Wies New York University Review Last week Programming Languages Overview Syntax and Semantics Grammars and Regular Expressions High-level
More informationObject-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1
Object-Oriented Languages and Object-Oriented Design Ghezzi&Jazayeri: OO Languages 1 What is an OO language? In Ada and Modula 2 one can define objects encapsulate a data structure and relevant operations
More informationJava 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 informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter
More informationData Abstraction. Hwansoo Han
Data Abstraction Hwansoo Han Data Abstraction Data abstraction s roots can be found in Simula67 An abstract data type (ADT) is defined In terms of the operations that it supports (i.e., that can be performed
More informationCA341 - Comparative Programming Languages
CA341 - Comparative Programming Languages David Sinclair Dynamic Data Structures Generally we do not know how much data a program will have to process. There are 2 ways to handle this: Create a fixed data
More informationLecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction
Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO
More informationChapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language
Categories of languages that support OOP: 1. OOP support is added to an existing language - C++ (also supports procedural and dataoriented programming) - Ada 95 (also supports procedural and dataoriented
More informationC++ (classes) Hwansoo Han
C++ (classes) Hwansoo Han Inheritance Relation among classes shape, rectangle, triangle, circle, shape rectangle triangle circle 2 Base Class: shape Members of a class Methods : rotate(), move(), Shape(),
More informationCE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings
CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings 19/10/2017 CE221 Part 2 1 Variables and References 1 In Java a variable of primitive type is associated with a memory location
More informationIndex. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309
A Arithmetic operation floating-point arithmetic, 11 12 integer numbers, 9 11 Arrays, 97 copying, 59 60 creation, 48 elements, 48 empty arrays and vectors, 57 58 executable program, 49 expressions, 48
More informationAn Introduction to C++
An Introduction to C++ Introduction to C++ C++ classes C++ class details To create a complex type in C In the.h file Define structs to store data Declare function prototypes The.h file serves as the interface
More informationOutline. Java Models for variables Types and type checking, type safety Interpretation vs. compilation. Reasoning about code. CSCI 2600 Spring
Java Outline Java Models for variables Types and type checking, type safety Interpretation vs. compilation Reasoning about code CSCI 2600 Spring 2017 2 Java Java is a successor to a number of languages,
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 02: Using Objects MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Using Objects 2 Introduction to Object Oriented Programming Paradigm Objects and References Memory Management
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationChapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc.
Chapter 13 Object Oriented Programming Contents 13.1 Prelude: Abstract Data Types 13.2 The Object Model 13.4 Java 13.1 Prelude: Abstract Data Types Imperative programming paradigm Algorithms + Data Structures
More informationImplications of Substitution עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Implications of Substitution עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap In this chapter we will investigate some of the implications of the principle of substitution in statically typed
More informationC++ (Non for C Programmer) (BT307) 40 Hours
C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC 330 - Spring 2013 1 Memory Attributes! Memory to store data in programming languages has the following lifecycle
More informationCS24 Week 3 Lecture 1
CS24 Week 3 Lecture 1 Kyle Dewey Overview Some minor C++ points ADT Review Object-oriented Programming C++ Classes Constructors Destructors More minor Points (if time) Key Minor Points const Motivation
More informationCMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Java Support for OOP Department of Computer Science University of Maryland, College Park Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation
More informationImplementing Subprograms
Implementing Subprograms 1 Topics The General Semantics of Calls and Returns Implementing Simple Subprograms Implementing Subprograms with Stack-Dynamic Local Variables Nested Subprograms Blocks Implementing
More informationObjects Managing a Resource
Objects Managing a Resource 1 What is a Resource Respects Release/Acquire protocol files (open/close) memory allocation (allocate/free) locks (acquire/release). 2 What is a Resource Objects when constructed,
More informationObject-Oriented Programming
- oriented - iuliana@cs.ubbcluj.ro Babes-Bolyai University 2018 1 / 56 Overview - oriented 1 2 -oriented 3 4 5 6 7 8 Static and friend elements 9 Summary 2 / 56 I - oriented was initially created by Bjarne
More informationArmide Documentation. Release Kyle Mayes
Armide Documentation Release 0.3.1 Kyle Mayes December 19, 2014 Contents 1 Introduction 1 1.1 Features.................................................. 1 1.2 License..................................................
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 12 Thomas Wies New York University Review Last lecture Modules Outline Classes Encapsulation and Inheritance Initialization and Finalization Dynamic
More informationPart VII. Object-Oriented Programming. Philip Blakely (LSC) C++ Introduction 194 / 370
Part VII Object-Oriented Programming Philip Blakely (LSC) C++ Introduction 194 / 370 OOP Outline 24 Object-Oriented Programming 25 Member functions 26 Constructors 27 Destructors 28 More constructors Philip
More informationCSE 452: Programming Languages. Previous Lecture. From ADTs to OOP. Data Abstraction and Object-Orientation
CSE 452: Programming Languages Data Abstraction and Object-Orientation Previous Lecture Abstraction Abstraction is the elimination of the irrelevant and the amplification of the essential Robert C Martin
More informationCMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Java Support for OOP Department of Computer Science University of Maryland, College Park Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation
More informationG Programming Languages Spring 2010 Lecture 4. Robert Grimm, New York University
G22.2110-001 Programming Languages Spring 2010 Lecture 4 Robert Grimm, New York University 1 Review Last week Control Structures Selection Loops 2 Outline Subprograms Calling Sequences Parameter Passing
More informationChapter 10 :: Data Abstraction and Object Orientation
Chapter 10 :: Data Abstraction and Object Orientation Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier Chapter10_Data_Abstraction_and_Object_Orientation_4e 1 Object-Oriented
More informationIntroduction To C#.NET
Introduction To C#.NET Microsoft.Net was formerly known as Next Generation Windows Services(NGWS).It is a completely new platform for developing the next generation of windows/web applications. However
More informationCommon Misunderstandings from Exam 1 Material
Common Misunderstandings from Exam 1 Material Kyle Dewey Stack and Heap Allocation with Pointers char c = c ; char* p1 = malloc(sizeof(char)); char** p2 = &p1; Where is c allocated? Where is p1 itself
More informationProgramming, numerics and optimization
Programming, numerics and optimization Lecture A-4: Object-oriented programming Łukasz Jankowski ljank@ippt.pan.pl Institute of Fundamental Technological Research Room 4.32, Phone +22.8261281 ext. 428
More informationCS 330 Lecture 18. Symbol table. C scope rules. Declarations. Chapter 5 Louden Outline
CS 0 Lecture 8 Chapter 5 Louden Outline The symbol table Static scoping vs dynamic scoping Symbol table Dictionary associates names to attributes In general: hash tables, tree and lists (assignment ) can
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 02: Using Objects MOUNA KACEM mouna@cs.wisc.edu Spring 2018 Using Objects 2 Introduction to Object Oriented Programming Paradigm Objects and References Memory Management
More informationM301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism
Block 1: Introduction to Java Unit 4: Inheritance, Composition and Polymorphism Aims of the unit: Study and use the Java mechanisms that support reuse, in particular, inheritance and composition; Analyze
More informationProperties of an identifier (and the object it represents) may be set at
Properties of an identifier (and the object it represents) may be set at Compile-time These are static properties as they do not change during execution. Examples include the type of a variable, the value
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC 330 Spring 2017 1 Memory Attributes Memory to store data in programming languages has the following lifecycle
More informationCMSC 330: Organization of Programming Languages. Memory Management and Garbage Collection
CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC330 Fall 2018 1 Memory Attributes Memory to store data in programming languages has the following lifecycle
More informationCS412/CS413. Introduction to Compilers Tim Teitelbaum. Lecture 17: Types and Type-Checking 25 Feb 08
CS412/CS413 Introduction to Compilers Tim Teitelbaum Lecture 17: Types and Type-Checking 25 Feb 08 CS 412/413 Spring 2008 Introduction to Compilers 1 What Are Types? Types describe the values possibly
More informationInterview Questions of C++
Interview Questions of C++ Q-1 What is the full form of OOPS? Ans: Object Oriented Programming System. Q-2 What is a class? Ans: Class is a blue print which reflects the entities attributes and actions.
More informationObject Oriented Paradigm
Object Oriented Paradigm History Simula 67 A Simulation Language 1967 (Algol 60 based) Smalltalk OO Language 1972 (1 st version) 1980 (standard) Background Ideas Record + code OBJECT (attributes + methods)
More informationMARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #1 Examination 12:30 noon, Tuesday, February 14, 2012
MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #1 Examination 12:30 noon, Tuesday, February 14, 2012 Instructor: K. S. Booth Time: 70 minutes (one hour ten minutes)
More informationCompiler Construction
Compiler Construction Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ss-16/cc/ Recap: Static Data Structures Outline of Lecture 18 Recap:
More informationObject-oriented Programming. Object-oriented Programming
2014-06-13 Object-oriented Programming Object-oriented Programming 2014-06-13 Object-oriented Programming 1 Object-oriented Languages object-based: language that supports objects class-based: language
More informationCS304 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 informationChapter 9 :: Data Abstraction and Object Orientation
Chapter 9 :: Data Abstraction and Object Orientation Programming Language Pragmatics Michael L. Scott Control or PROCESS abstraction is a very old idea (subroutines!), though few languages provide it in
More informationC++ Alexander Baltatzis
C++ Alexander Baltatzis Recap Undefined behaviour int * q1 = new int[2]; delete q1; int * q2 = new int; delete [] q2; Contract with the compiler constructor How would you implement delete [] Classes with
More informationObject-Oriented Principles and Practice / C++
Object-Oriented Principles and Practice / C++ Alice E. Fischer May 13, 2013 OOPP / C++ Lecture 7... 1/27 Construction and Destruction Allocation and Deallocation Move Semantics Template Classes Example:
More informationA Model of Mutation in Java
Object-Oriented Design Lecture 18 CSU 370 Fall 2008 (Pucella) Friday, Nov 21, 2008 A Model of Mutation in Java We have been avoiding mutations until now; but there are there, in the Java system, for better
More informationC++ Addendum: Inheritance of Special Member Functions. Constructors Destructor Construction and Destruction Order Assignment Operator
C++ Addendum: Inheritance of Special Member Functions Constructors Destructor Construction and Destruction Order Assignment Operator What s s Not Inherited? The following methods are not inherited: Constructors
More informationGraphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub
Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java
More informationObjects and Classes. Basic OO Principles. Classes in Java. Mark Allen Weiss Copyright 2000
Objects and Classes Mark Allen Weiss Copyright 2000 8/30/00 1 Basic OO Principles Objects are entities that have structure and state. Each object defines operations that may access or manipulate that state.
More informationAttributes, Bindings, and Semantic Functions Declarations, Blocks, Scope, and the Symbol Table Name Resolution and Overloading Allocation, Lifetimes,
Chapter 5 Basic Semantics Attributes, Bindings, and Semantic Functions Declarations, Blocks, Scope, and the Symbol Table Name Resolution and Overloading Allocation, Lifetimes, and the Environment Variables
More informationRun-time Environments
Run-time Environments Status We have so far covered the front-end phases Lexical analysis Parsing Semantic analysis Next come the back-end phases Code generation Optimization Register allocation Instruction
More informationRun-time Environments
Run-time Environments Status We have so far covered the front-end phases Lexical analysis Parsing Semantic analysis Next come the back-end phases Code generation Optimization Register allocation Instruction
More informationWeiss Chapter 1 terminology (parenthesized numbers are page numbers)
Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement
More informationCPS 506 Comparative Programming Languages. Programming Language
CPS 506 Comparative Programming Languages Object-Oriented Oriented Programming Language Paradigm Introduction Topics Object-Oriented Programming Design Issues for Object-Oriented Oriented Languages Support
More informationMULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR
STUDENT IDENTIFICATION NO MULTIMEDIA COLLEGE JALAN GURNEY KIRI 54100 KUALA LUMPUR FIFTH SEMESTER FINAL EXAMINATION, 2014/2015 SESSION PSD2023 ALGORITHM & DATA STRUCTURE DSEW-E-F-2/13 25 MAY 2015 9.00 AM
More informationRun-Time Environments/Garbage Collection
Run-Time Environments/Garbage Collection Department of Computer Science, Faculty of ICT January 5, 2014 Introduction Compilers need to be aware of the run-time environment in which their compiled programs
More informationPrinciples of Programming Languages
Principles of Programming Languages www.cs.bgu.ac.il/~ppl172 Collaboration and Management Dana Fisman Lesson 5 - Data Types and Operations on Data 1 Types - what we already know Types define sets of values
More informationAbsolute C++ Walter Savitch
Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents
More information10. Abstract Data Types
10. Abstract Data Types 11.1 The Concept of Abstraction The concept of abstraction is fundamental in programming Nearly all programming languages support process abstraction with subprograms Nearly all
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More informationCOMP6771 Advanced C++ Programming
1.. COMP6771 Advanced C++ Programming Week 5 Part Two: Dynamic Memory Management 2016 www.cse.unsw.edu.au/ cs6771 2.. Revisited 1 #include 2 3 struct X { 4 X() { std::cout
More informationObject Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia
Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing
More informationChapter 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 information2 ADT Programming User-defined abstract data types
Preview 2 ADT Programming User-defined abstract data types user-defined data types in C++: classes constructors and destructors const accessor functions, and inline functions special initialization construct
More informationLecture 15a Persistent Memory & Shared Pointers
Lecture 15a Persistent Memory & Shared Pointers Dec. 5 th, 2017 Jack Applin, Guest Lecturer 2017-12-04 CS253 Fall 2017 Jack Applin & Bruce Draper 1 Announcements PA9 is due today Recitation : extra help
More informationObject Model. Object Oriented Programming Spring 2015
Object Model Object Oriented Programming 236703 Spring 2015 Class Representation In Memory A class is an abstract entity, so why should it be represented in the runtime environment? Answer #1: Dynamic
More informationCompiler construction 2009
Compiler construction 2009 Lecture 6 Some project extensions. Pointers and heap allocation. Object-oriented languages. Module systems. Memory structure Javalette restrictions Only local variables and parameters
More informationChapter 5: Procedural abstraction. Function procedures. Function procedures. Proper procedures and function procedures
Chapter 5: Procedural abstraction Proper procedures and function procedures Abstraction in programming enables distinction: What a program unit does How a program unit works This enables separation of
More informationDOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS
Chapter 1 : Chapter-wise Java Multiple Choice Questions and Answers Interview MCQs Java Programming questions and answers with explanation for interview, competitive examination and entrance test. Fully
More informationDesign Issues. Subroutines and Control Abstraction. Subroutines and Control Abstraction. CSC 4101: Programming Languages 1. Textbook, Chapter 8
Subroutines and Control Abstraction Textbook, Chapter 8 1 Subroutines and Control Abstraction Mechanisms for process abstraction Single entry (except FORTRAN, PL/I) Caller is suspended Control returns
More informationInheritance. OOP components. Another Example. Is a Vs Has a. Virtual Destructor rule. Virtual Functions 4/13/2017
OOP components For : COP 3330. Object oriented Programming (Using C++) http://www.compgeom.com/~piyush/teach/3330 Data Abstraction Information Hiding, ADTs Encapsulation Type Extensibility Operator Overloading
More informationObject Oriented Programming: In this course we began an introduction to programming from an object-oriented approach.
CMSC 131: Chapter 28 Final Review: What you learned this semester The Big Picture Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach. Java
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More informationNext week s homework. Classes: Member functions. Member functions: Methods. Objects : Reminder. Objects : Reminder 3/6/2017
Next week s homework Classes: Methods, Constructors, Destructors and Assignment Read Chapter 7 Your next quiz will be on Chapter 7 of the textbook For : COP 3330. Object oriented Programming (Using C++)
More informationCMSC 202 Section 010x Spring Justin Martineau, Tuesday 11:30am
CMSC 202 Section 010x Spring 2007 Computer Science II Final Exam Name: Username: Score Max Section: (check one) 0101 - Justin Martineau, Tuesday 11:30am 0102 - Sandeep Balijepalli, Thursday 11:30am 0103
More informationConcepts of Object Oriented Programming
Concepts of Object Oriented Programming Dr. Axel Kohlmeyer Senior Scientific Computing Expert Information and Telecommunication Section The Abdus Salam International Centre for Theoretical Physics http://sites.google.com/site/akohlmey/
More informationSmart Pointers. Some slides from Internet
Smart Pointers Some slides from Internet 1 Part I: Concept Reference: Using C++11 s Smart Pointers, David Kieras, EECS Department, University of Michigan C++ Primer, Stanley B. Lippman, Jesee Lajoie, Barbara
More informationJava Fundamentals (II)
Chair of Software Engineering Languages in Depth Series: Java Programming Prof. Dr. Bertrand Meyer Java Fundamentals (II) Marco Piccioni static imports Introduced in 5.0 Imported static members of a class
More informationCOEN244: Class & function templates
COEN244: Class & function templates Aishy Amer Electrical & Computer Engineering Templates Function Templates Class Templates Outline Templates and inheritance Introduction to C++ Standard Template Library
More informationObject-Oriented Principles and Practice / C++
Object-Oriented Principles and Practice / C++ Alice E. Fischer October 10, 2016 OOPP / C++ Lecture 7... 1/15 Construction and Destruction Kinds of Constructors Move Semantics OOPP / C++ Lecture 7... 2/15
More informationCompiler Construction Lent Term 2015 Lectures 10, 11 (of 16)
Compiler Construction Lent Term 15 Lectures 10, 11 (of 16) 1. Slang.2 (Lecture 10) 1. In lecture code walk of slang2_derive 2. Assorted topics (Lecture 11) 1. Exceptions 2. Objects 3. Stacks vs. Register
More informationMEMORY MANAGEMENT IN C++ AND JAVA
MEMORY MANAGEMENT IN C++ AND JAVA Gayathri Kandasamy Sengottaiyan gayathri.sengottain@gmail.com Professor: Tarik El Taeib teltaeib@my.bridgeport.edu University Of Bridgeport -Computer Science ABSTRACT
More informationLecture 13: Complex Types and Garbage Collection
Lecture 13: Complex Types and Garbage Collection COMP 524 Programming Language Concepts Stephen Olivier March 17, 2009 Based on slides by A. Block, notes by N. Fisher, F. Hernandez-Campos, and D. Stotts
More informationVALLIAMMAI ENGINEERING COLLEGE
VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur 603 203 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK B.E. - Electrical and Electronics Engineering IV SEMESTER CS6456 - OBJECT ORIENTED
More informationInheritance, Polymorphism and the Object Memory Model
Inheritance, Polymorphism and the Object Memory Model 1 how objects are stored in memory at runtime? compiler - operations such as access to a member of an object are compiled runtime - implementation
More informationWhat is Polymorphism? Quotes from Deitel & Deitel s. Why polymorphism? How? How? Polymorphism Part 1
Polymorphism Part 1 What is Polymorphism? Polymorphism refers to a programming language s ability to process objects differently depending on their data type or class. Number person real complex kid adult
More informationAbstract Data Types and Encapsulation Concepts
Abstract Data Types and Encapsulation Concepts The Concept of Abstraction An abstraction is a view or representation of an entity that includes only the most significant attributes The concept of abstraction
More informationMessages, Instances and Initialization
Messages, Instances and Initialization עזאם מרעי מבוסס על השקפים של הקורס תיכון תוכנה מונחה עצמים http://www.cs.bgu.ac.il/~oosd132/ http://www.cs.bgu.ac.il/~oosd142/ 2 Dynamic Aspects of Classes In the
More information