Download presentation
Presentation is loading. Please wait.
Published bySkye Simmons Modified over 10 years ago
1
Section 6.1 CS 106, Fall 2013
2
The Big Q What do we get by being able to define a class?! Or Do we really need this?!
3
What do you think?
4
How to represent a playing card? A card is a tuple with 2 parts, a suit (one of s, d, c, h) and a denom (2 – 14). We create a card by making a tuple. We access the suit via card[0] and denom via card[1]. What is good and what is bad about this implementation?
5
Ancient History (last week) A card is a tuple with 2 parts, a suit (one of s, d, c, h) and a denom (2 – 14). We create a card by making a tuple. We access the suit via card[0] and denom via card[1]. What is good and what is bad about this implementation?
6
What types of variables can we make? Is this good enough?
7
Second big Q What defines a type? Data + operations – what you can store. – what you can do to or with it.
8
Lecture... a class is like a recipe (or template). – you don't eat the recipe, right? an object is an instantiation of that class – that's what you eat. Or, a class is a new type.
9
Class (or Type) Marriage of data and methods. Boundary between caller and implementer – perspective on the world. self is a pointer to the object, from within the code. Each object has its own namespace, accessible via self. (In fact, isn't an object just a namespace? Could be...)
10
Creating class instances Q: One creates a new instance of a class by calling the class ______________. A: constructor
11
What does constructor code do? Q: When code instantiates a class, the __init__ method is called. This method's "primary purpose is to establish initial values for the ____________ of the newly created object." A: attributes
12
Code for Car constructor Q: I have a class Car that I instantiate this way: car = Car() Write the method definition for Cars constructor. A: def __init__(self): # code here to initialize attributes to # default values … self._color = black
13
Signature Q: After creating a Car instance (i.e., object), my main code wants to set the Car's color to a new color. Write the signature of the Car member function, setColor(), to set the car's color. A: def setColor(self, color): set the color of this car to the given color self._color = color
14
Signature Q: Then, my main code wants to get the color from my car instance. Write the signature for the member function getColor(). A: def getColor(self): return the color of this Car to the caller. return self._color # my color
15
Designing a Class When you design a class, you decide: what are the important properties (or attributes, characteristics, or state) of an instance. what information a caller should be able to get from an object what state a caller should be able to change in an object what a caller should be able to ask an object to do to itself.
16
Naming Conventions A class name always starts with a capital letter. Each word in the class starts with a capital letter. – class MyFathersCar: – class Cs106Lab: A class attribute always starts with an underscore: _ – self._x_loc, self._y_loc, self._color
17
Naming Conventions local variables must start with a lowercase letter. global variables must also start with a lowercase letter, unless they are CONSTANTS, which must be all uppercase. function names start with a lowercase letter. Either use camelCase for function names and variables or use _'s between words in a name. – myXLocation, or, my_x_location – getLocation(), or, get_location()
18
Order of methods in a class Q: Does the order the methods are defined in a class matter? A: No. By convention the constructor method is always first, however.
19
Attribute names Q: Why would the coder choose _x and _y instead of x and y? A: It is a convention to name your attributes with names starting with _. The reader of the code can then know what something is when it sees the _ in front of the name.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.