Understanding Objects and Classes in C#: An Introduction to OO Programming, Essays (high school) of Computer science

An introduction to Object-Oriented Programming (OOP) in C# through the discussion of classes and objects. It covers the importance of OOP, the difference between objects and classes, and the concepts of instance variables, instance methods, encapsulation, and constructors. It also includes examples of class and object models.

Typology: Essays (high school)

2020/2021

Uploaded on 01/17/2022

joshua13
joshua13 🇬🇧

11 documents

1 / 15

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
12/04/2019
1
Basic Class and Object
in C#
Week 2
Objects and Classes
The objectives of this chapter are:
To discuss important aspects of the software
development process
To define objects and classes
To understand object models and class models
To explain instance variables and instance methods
To explain constructors
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download Understanding Objects and Classes in C#: An Introduction to OO Programming and more Essays (high school) Computer science in PDF only on Docsity!

Basic Class and Object

in C#

Week 2

Objects and Classes

The objectives of this chapter are: To discuss important aspects of the software development process To define objects and classes To understand object models and class models To explain instance variables and instance methods To explain constructors

One of the primary features of the O-O paradigm is its ability to manage complexity. Clear identification of system entities (objects) Abstract classification of system entities (classes) Clear delineation of entity boundaries (roles, responsibilities, encapsulation, cohesion, coupling) Clear separation of Abstraction boundaries (realistic class hierarchies) Less ambiguous mapping between the real world and the software components modelling the real world. (objects) Unfortunately, the O-O paradigm is not clearly understood Many programmers simply think that creating classes is OO programming Many programmers erroneously think that because they use a language which supports OO concepts they are implementing OO designs Many programmers, when confronted with code, cannot identify whether it is object-oriented and, if so, what elements make it OO.

The Object Oriented Paradigm

Creating Classes

Objects in the object model are formalized Objects are abstracted into classes Only attributes and methods relevant to our domain are classified. Attributes are formalized into instance variables Behaviour is formalized into methods Classes are represented on a class diagram Object interaction is also abstracted Associations are identified Added to class diagram Classes and the class diagram represent the static structure of the system How the system behaves is not represented by this model.

Objects and Classes

Programmers implement classes Classes are templates or blueprints for Objects Data and methods are defined within Classes Classes must provide an implementation such that objects created from those classes behave as those defined in the Object model. An Object is the manifestation of a class An object is an Instance of a class The process of creating an object is called instantiation The attributes of an object are called instance variables The methods of an object are called instance methods In C#, Objects are created using the new keyword: Employee anEmployee = new Employee();

Example Class Definition

public class Employee { String name; int salary; Date startingDate; [... more variable definitions ...] public int getSalary() { return salary; } public int computeHourlyRate() { // calculate hourly rate from salary } [... more method definitions ...] } Instance Variables: Methods:

Encapsulation

Encapsulation is a very important O-O concept Each object has 2 views. An internal view and an external view Encapsulation is a form of protection Also called Information Hiding The outside world does not have direct access to the internal implementation or representation of an object As long as the external view does not change, the internal view can take on any form without affecting the outside world By hiding data and providing methods to gain access to it, an object can maintain high data integrity Methods have the responsibility of maintaining data integrity private visibility offers full encapsulation protected and default offer limited encapsulation public offers no encapsulation public class Account { private int number; private int overdraftLimit; private Date startDate; private String owner; [... methods ...] }

Encapsulation Example

Class Definition: Instances: number = 11346 overdraftLimit = 1000 startDate owner Fred Jones number = 12364 overdraftLimit = 300 startDate owner Billy Wiggs Instance variables are encapsulated.

  • no direct access from outside the object Each object has its own variables. These variables are declared within the class. May 1, 2001 June 15, 1994

Defining Instance Methods - Body

A method's body contains all the statements to be executed as part of the method The method body is contained within curly braces after the method definition: Use {} placement and indentation to clearly show code structure public class CalculationSheet { public void performCalculations() { [... method body ...] } public void clearSheet() { } [...] }

Returning values from methods

A method which has a non-void return type MUST return a value The return value's type must match the type defined in the method's signature. A void method can use a return statement (with no return value) to exit the method. The return value can be used the same as any other expression. public class Car { private int currentGear; private int currentRpms; public int calculateSpeed() { return currentRpms * currentGear; } }

Classes as types

When a class is defined, the compiler regards the class as a new type. When a variable is declared, its type can be a primitive type or "Class" type. Any variable whose type is a class is an object reference. The variable is a reference to an instance of the specified class. The variables holds the address (in memory) of the object. int x; 0 Employee anEmployee; null Note: null means “refers to no object”

null References

null means “refers to no object" Object references can be compared to null to see if an object is present or not. null is the default value of an object reference before it is initialized Employee anEmployee; [...] if (anEmployee == null) { }

Invoking Instance Methods

To invoke a method on an object, use the. (dot) operator

  • If there is a return value, it can be used as an expression objectReference.methodName(parameters); Car aCar = new Car(); [...] if (aCar.calculateSpeed()>110) { System.out.println("You're Speeding!"); } [...]

Passing Parameters to Methods

Method parameters are declared in the method's signature. When a method invocation is made, any parameters included in the invocation are passed to the method All parameters are passed by value. Ie, a copy is made The value of fundamental data types are copied The value of object references (ie memory addresses) are copied

  • Parameters become variables within the method. They are not known outside the method. public float calculateInterestForMonth(float rate) { return lowBalanceForMonth * (rate/12.0); }

Overloading Methods

Java allows for method overloading. A Method is overloaded when the class provides several implementations of the same method, but with different parameters The methods have the same name The methods have differing numbers of parameters or different types of parameters The return type MUST be the same public float calculateInterestForMonth() { return lowBalanceForMonth * (defaultRate/12.0); } public float calculateInterestForMonth(float rate) { return lowBalanceForMonth * (rate/12.0); }

Accessor Methods - gets

Objects have variables. Because of encapsulation, those variables are generally private However, the outside world may need to use those variables The class implementor may choose to add a "get" method to return the value The usual name of the get method is the name of the variable prefixed with the word "get" getName(), getAddress(), getPhone(), getBalance() public class BankAccount { private float balance; public float getBalance() { return balance; }

Constructors

Constructors have the following characteristics There is NO return type. NOT even void The method name is the same name as the class Constructors can be overloaded In order to put the object into a usable state, its instance variables should be initialized to usable values This could be accomplished by calling the various set methods This is not always possible because it is not required that all instance variables have set methods. C# provides for another method of initializing objects When an object is created (using new), a constructor is invoked. The responsibility of the constructor method is to initialize the object into a usable state.

Constructors - Example

public class BankAccount { String ownersName; int accountNumber; float balance; public BankAccount() { } public BankAccount(int anAccountNumber) { accountNumber = anAccountNumber; } public BankAccount(int anAccountNumber, String aName) { accountNumber = anAccountNumber; ownersName = aName; } [...] }

Constructors - Example

public static void main(String[] args) { BankAccount anAccount = new BankAccount(); BankAccount anotherAccount = new BankAccount(12345); BankAccount myAccount = new BankAccount(33423, "Craig"); } When an object is created (using new) the compiler determines which constructor is to be invoked by the parameters passed Multiple constructors allows the class programmer to define many different ways of creating an object.

Constructors

If no constructors are defined for a class, the compiler automatically generates a default, no argument constructor All instance variables are initialized to default values. However, if any constructor is defined which takes parameters, the compiler will NOT generate the default, no argument constructor If you still need one, you have to explicitly define one.