Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Adding a Class to a Project, Visibility, Instance Variables | CSE 1301, Study Guides, Projects, Research of Computer Science

Material Type: Project; Professor: Morrison; Class: Prog and Problem Solving I; Subject: Computing & Software Engr; University: Southern Polytechnic State University; Term: Unknown 1989;

Typology: Study Guides, Projects, Research

Pre 2010

Uploaded on 08/03/2009

koofers-user-8j1-1
koofers-user-8j1-1 🇺🇸

10 documents

1 / 6

Toggle sidebar

Related documents


Partial preview of the text

Download Adding a Class to a Project, Visibility, Instance Variables | CSE 1301 and more Study Guides, Projects, Research Computer Science in PDF only on Docsity! CSE 1301 Lecture 4A Writing Classes Figures from Lewis, “C# Software Solutions”, Addison Wesley Briana B. Morrison CSE 1301 4A-2 Topics • Adding a Class to a Project • Defining a Class – Attributes – Methods • Using a Class • Visibility • Instance Variables • Properties CSE 1301 4A-3 Multiple Classes in a Project • You’ve seen projects with many classes – XNA projects can (and often do) have multiple classes… one for each game element • Can add classes to our project – Keep them all in one file (~bad choice) – One class per file (better choice) CSE 1301 4A-4 CSE 1301 4A-5 Adding to a Project Right-click project Select Add | Add New Item… CSE 1301 4A-6 CSE 1301 4A-7 Why User-Defined Classes? Primitive data types (int, double, char, .. ) are great … … but in the real world, we deal with more complex objects: products, Web sites, flight records, employees, students, .. Object-oriented programming enables us to manipulate real-world objects. CSE 1301 4A-8 User-Defined Classes • Combine data and the methods that operate on the data • Advantages: – Class is responsible for the validity of the data. – Implementation details can be hidden. – Class can be reused. • Client of a class – A program that instantiates objects and calls methods of the class CSE 1301 4A-9 Classes • A class can contain data declarations and method declarations int size, weight; char category; Data declarations Method declarations CSE 1301 4A-10 Important Terminology • Fields – instance variables: data for each object – class data: static data that all objects share • Members – fields and methods • Access Modifier – determines access rights for the class and its members – defines where the class and its members can be used CSE 1301 4A-11 Using the Class • Before we define the Die class, let’s use it • Remember that OOP allows us to ignore the “guts” and just presume it works • There are 3+ people involved – The writer of the class (knows what the “guts” are) – The user of the class, writing the main program (knows his code, but doesn’t know the class “guts”) – The user of the program – sees the interface, doesn’t see program code at all CSE 1301 4A-12 CSE 1301 4A-25 Object Method & Attribute Visibility BMW_Z4 myCar; myCar = new BMW_Z4(); myCar.LicensePlate = "BMR4ME"; myCar.ModelYear = 2004; myCar.Drive(); myCar.OpenTop(); myCar.Drive(); Illegal b/c private CSE 1301 4A-26 Interacting with Objects • Keep private/public visibility as needed CSE 1301 4A-27 Visibility CSE 1301 4A-28 Defining Instance Variables Syntax: accessModifier dataType identifierList; dataType can be primitive date type or a class type identifierList can contain: – one or more variable names of the same data type – multiple variable names separated by commas – initial values • Optionally, instance variables can be declared as const CSE 1301 4A-29 Examples of Instance Variable Definitions private string name = ""; private const int PERFECT_SCORE = 100, PASSING_SCORE = 60; private int startX, startY, width, height; CSE 1301 4A-30 The Auto Class class Auto { private string model; private int milesDriven; private double gallonsOfGas; } CSE 1301 4A-31 Properties • Combines field/attribute with method • Standard: – Make attributes private – Lower-case first letter of attribute – Make properties public – Upper-case first letter of properties – Define “get” and “set” for each property (selectively) CSE 1301 4A-32 class BMW_Z4 { private int modelYear; private string licensePlate; private bool topUp; public int ModelYear { get { return modelYear; } set { if (value >= 2003) modelYear = value; } } public string LicensePlate { get { return licensePlate; } set { if (value.Length() == 6) licensePlate = value; } } ... } Properties Example CSE 1301 4A-33 Auto Properties • Now how would you write the properties for the Auto class? class Auto { private string model; private int milesDriven; private double gallonsOfGas; }
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved