CSCI 3328 Object Oriented Programming in C# Chapter 9: Classes and Objects: A Deeper Look 1 Xiang Lian The University of Texas – Pan American Edinburg,

Slides:



Advertisements
Similar presentations
1 Chapter 6: Extending classes and Inheritance. 2 Basics of Inheritance One of the basic objectives of Inheritance is code reuse If you want to extend.
Advertisements

CS 106 Introduction to Computer Science I 03 / 24 / 2008 Instructor: Michael Eckmann.
CS 106 Introduction to Computer Science I 03 / 21 / 2008 Instructor: Michael Eckmann.
Evan Korth New York University Computer Science I Classes and Objects Professor: Evan Korth New York University.
CS 106 Introduction to Computer Science I 03 / 23 / 2007 Instructor: Michael Eckmann.
CS 2511 Fall Features of Object Oriented Technology  Abstraction Abstract class Interfaces  Encapsulation Access Specifiers Data Hiding  Inheritance.
CSCI/CMPE 4341 Topic: Programming in Python Chapter 3: Control Structures (Part 1) – Exercises 1 Xiang Lian The University of Texas – Pan American Edinburg,
SEEM3460 Tutorial Java Programming in Unix. Code Translation Java source code Java bytecode Java compiler Bytecode interpreter machine code for target.
Classes and Class Members Chapter 3. 3 Public Interface Contract between class and its clients to fulfill certain responsibilities The client is an object.
College Board A.P. Computer Science A Topics Program Design - Read and understand a problem's description, purpose, and goals; Apply data abstraction.
The University of Texas – Pan American
CSCI 3328 Object Oriented Programming in C# Chapter 2: Introduction to Visual C# Programming 1 Xiang Lian The University of Texas Rio Grande Valley Edinburg,
Chapter 10 Classes and Objects: A Deeper Look Visual C# 2010 for Programmers © by Pearson Education, Inc. All Rights Reserved.
An Object-Oriented Approach to Programming Logic and Design Chapter 3 Using Methods and Parameters.
CSCI 3328 Object Oriented Programming in C# Chapter 5: C# Control Statement – Part II – Exercises 1 Xiang Lian The University of Texas Rio Grande Valley.
CSCI/CMPE 4341 Topic: Programming in Python Review: Exam I Xiang Lian The University of Texas – Pan American Edinburg, TX 78539
Visual C# 2012 for Programmers © by Pearson Education, Inc. All Rights Reserved.
CSCI 3327 Visual Basic Chapter 9: Object-Oriented Programming: Classes and Objects UTPA – Fall 2011.
ITI 1120 Lab #11 Contributors: Diana Inkpen, Daniel Amyot, Sylvia Boyd, Amy Felty, Romelia Plesa, Alan Williams.
© 2007 Lawrenceville Press Slide 1 Chapter 8 Objects  A variable of a data type that is a class. Also called an instance of a class.  Stores data  Can.
CIS 270—Application Development II Chapter 8—Classes and Objects: A Deeper Look.
Class and Structure. 2 Structure Declare using the keyword struct purpose is to group data Default visibility mode is public A struct doesn't have a constructor.
CSCI 3328 Object Oriented Programming in C# Chapter 7: Arrays 1 Xiang Lian The University of Texas Rio Grande Valley Edinburg, TX 78539
CSCI 3328 Object Oriented Programming in C# Chapter 9: Classes and Objects: A Deeper Look – Exercises 1 Xiang Lian The University of Texas Rio Grande Valley.
Chapter 5 Classes and Methods II Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
CSCI 3328 Object Oriented Programming in C# Chapter 8: LINQ and Generic Collections – Exercises 1 Xiang Lian The University of Texas – Pan American Edinburg,
5.1 Basics of defining and using classes A review of class and object definitions A class is a template or blueprint for an object A class defines.
CSCI 3328 Object Oriented Programming in C# Chapter 6: Methods – Exercises 1 Xiang Lian The University of Texas Rio Grande Valley Edinburg, TX 78539
CSCI 3328 Object Oriented Programming in C# Chapter 4: C# Control Statement – Part I – Exercises 1 Xiang Lian The University of Texas Rio Grande Valley.
CSCI/CMPE 4341 Topic: Programming in Python Chapter 7: Introduction to Object- Oriented Programming in Python – Exercises Xiang Lian The University of.
INTRODUCTION TO CLASSES & OBJECTS CREATING CLASSES USING C#
ITI 1120 Lab #10 Objects and Classes Slides by: Romelia Plesa, Sylvia Boyd, Alan Williams, Diana InkPen, Daniel Amyot, Gilbert Arbez, Mohamad Eid.
Object Based Programming Chapter 8. 2 Contrast ____________________ Languages –Action oriented –Concentrate on writing ________________ –Data supports.
CSCI/CMPE 4341 Topic: Programming in Python Chapter 5: Functions – Exercises Xiang Lian The University of Texas – Pan American Edinburg, TX 78539
CompSci 230 S Programming Techniques
Inheritance and Encapsulation
Object Oriented Programming using Java - Class Instance Variables
The University of Texas – Pan American
The University of Texas Rio Grande Valley
Can perform actions and provide communication
CSCI 3328 Object Oriented Programming in C# Chapter 7: Arrays
The University of Texas Rio Grande Valley
The University of Texas – Pan American
Can perform actions and provide communication
The University of Texas – Pan American
The University of Texas – Pan American
د.سناء الصايغ الفصل الأول البرمجة الشيئية
CSCI 3328 Object Oriented Programming in C# Review: Exam I
CSCI 3328 Object Oriented Programming in C# Chapter 9: Classes and Objects: A Deeper Look – Exercises UTPA – Fall 2012 This set of slides is revised from.
The University of Texas – Pan American
The University of Texas – Pan American
Packages From Deitel & Deitel.
The University of Texas Rio Grande Valley
CSCI 4333 Database Design and Implementation – Exercise (5)
The University of Texas – Pan American
Can perform actions and provide communication
The University of Texas – Pan American
CSCI 6307 Foundation of Systems – Exercise (1)
CSCI 3328 Object Oriented Programming in C# Review: Exam II
CSCI 3328 Object Oriented Programming in C# Review: Final Exam
The University of Texas – Pan American
CSCI 3328 Object Oriented Programming in C# Chapter 9: Classes and Objects: A Deeper Look UTPA – Fall 2012 This set of slides is revised from lecture.
CSCI 3328 Object Oriented Programming in C# Review: Final Exam
CS360 Client/Server Programming Using Java
CIS 199 Final Review.
Classes & Objects A deeper Look Chapter 10 & 11
CSCI 3328 Object Oriented Programming in C# Chapter 8: LINQ and Generic Collections – Exercises UTPA – Fall 2012 This set of slides is revised from lecture.
Chapter 11 Classes.
CSCI 3328 Object Oriented Programming in C# Review: Exam II
CSCI 6307 Foundation of Systems – Exercise (5)
Presentation transcript:

CSCI 3328 Object Oriented Programming in C# Chapter 9: Classes and Objects: A Deeper Look 1 Xiang Lian The University of Texas – Pan American Edinburg, TX

Objectives In this chapter, you will – Learn some examples of classes and objects – Know how to use keywords: this, static, readonly – Get familiar with the concept of data encapsulation and data hiding 2

Example: Time Class Contains 3 int variables declared as private Also, 3 public methods: SetTime, ToUniversalString and ToString Does not have a constructor Instead time is passed in using public SetTime, where the three integers are validated to be within range, if not 0 is assigned When constructor is not defined, the compiler adds a default one, assigning 0’s to all three int variables 3

Code for Time1 Class public class Time1 { private int hour; private int minute; private int second; public void SetTime(int h, int m, int s) { hour = ((h>=0 && h<24)? h : 0); minute = ((m>=0 && m<60)? m : 0); second = ((s>=0 && s<60)? s : 0); } public string ToUniversalString() { return string.Format("{0:D2}:{1:D2}:{2:D2}", hour, minute, second); } public override string ToString() { return string.Format("{0}:{1:D2}:{2:D2} {3}", ((hour == 0|| hour == 12) ? 12 : hour%12), minute, second, (hour<12) ? "AM" : "PM")); } 4

Example: Time Class (cont'd) Method ToUniversalString returns a string in universal-time format. – Return string.Format("{0:D2}:{1:D2}:{2:D2}", hour, minute, second); – //like 13:27:06 Method ToString() overrides string – Return string.Format ("{0:D2}:{1:D2}:{2:D2}",((hour==0||hour==12)?12: hour%12)); – // if hour is 0 or 12 it appears as 12 AM, or PM, else it appears from 1 to 11, if hour is <12 it is AM. 5

Invoke Methods of Time Object Time1 time = new Time1(); Console.WriteLine("The initial universal time is" + time.ToUniversalString()); – 00:00:00 Console.WriteLine("The initial universal time is" + time.ToString()); – 12:00:00 AM time.SetTime (13, 27, 6); – 13:27:06 – 1:27:06 PM time.SetTime(99,99,99); – 00:00:00 – 12:00:00 AM 6

Indexers The indices can be either integer (as conventional arrays) or non-integer such as the data element name Indexers are defined like properties in a class – See the example 7

class IntIndexer { private string[] myData; public IntIndexer(int size) { myData = new string[size]; for (int i = 0; i < size; i++) { myData[i] = "empty"; } public string this[int pos] { get { return myData[pos]; } set { myData[pos] = value; } 8

static void Main(string[] args) { int size = 10; IntIndexer myInd = new IntIndexer(size); myInd[0] = "Artem Chebotko"; myInd[1] = "Robert Scheweller"; myInd[2] = "Pearl Brazier"; myInd[3] = "Laura Grabowski"; myInd[4] = "John Abraham"; myInd[5] = "Emmet Tomai"; myInd[6] = "Yang Liu"; myInd[7] = "Bin Fu"; myInd[8] = "Xiang Lian"; Console.WriteLine("\nIndexer Output\n"); for (int i = 0; i < size; i++) { Console.WriteLine("myInd[{0}]: {1}", i, myInd[i]); } Console.ReadKey(); } 9

Keyword: this public class SimpleTime { private int hour; private int minute; private int second; public void SetTime(int hour, int minute, int second) { this.hour = hour; this.minute = minute; this.second = second; } pubic void Reset() { this.SetTime(0, 0, 0); } 10

More Keywords: readonly private readonly int INCREMENT; By convention, readonly variables are with capital letters like constants Constructors can initialize readonly variables for multiple times 11

More Keywords: static private static int count = 0; Maintain the number of objects for a class Static variables belong to the class, not objects – Static variables can be shared by multiple objects Static variables can be referred by properties public static int Count { get {return count;} } 12

Encapsulation Let the program hide some of the data and operation of a class while exposing others – private Implementation of a method is hidden from the user, so it appears like a black box Think of a person driving a car – He does not need to know the internal working of the engine or the way gear changes work, to be able to drive the car (Encapsulation) – Instead, he needs to know things such as how much turning the steering wheel needs, etc. (Abstraction) 13

Inheritance A new class is created by absorbing an existing class’s members and enhancing them with new or modified capabilities. Base class : the existing class from which a new class inherits members. Derived class : the new class that inherited from the base class. Each new class can become the base class for a future derived class. Is-a relationship and has-a relationship. Is-a represents inheritance. Has-a represents a composition. Inheritance allows you to reuse code 14

Inheritance (cont'd) public class ParentClass { public ParentClass() { Console.WriteLine("Parent Constructor."); } public void print() { Console.WriteLine("I'm a Parent Class."); } public class ChildClass : ParentClass { public ChildClass() { Console.WriteLine("Child Constructor."); } public static void Main() { ChildClass child = new ChildClass(); child.print(); Console.ReadKey(); } 15

Polymorphism Enables you to “program in general” than “program in specific” Enables us to write applications that process objects that share the same base class in a class hierarchy as if they were all objects of the base class It allows you to invoke derived class methods through a base class reference during run-time overrides means they provide their own definition and implementation. – At run-time, when client code calls the method, the CLR looks up the run-time type of the object, and invokes that override of the virtual method – Thus in your source code you can call a method on a base class, and cause a derived class's version of the method to be executed 16

17