New names for old things
Ruby uses special names for things that we already know. For instance, it
uses the word Float to mean "decimals". Here are more definitions:
Object: That's just any piece of data. Like the number 3
or the string 'hello'.
Class: Ruby separates everything into classes. Like integers,
floats and strings.
Method: These are the things that you can do with an
object. For example, you can add integers together, so +
is a method.
You've already seen thee classes for things that you already know:
|Old name||Ruby class |
You have also seen several methods:
|Class ||Some methods|
|| + - / * % **
|| + - / * % **
Make sure you understand the difference between classes and objects.
An object is a unit of data. A class is what kind of data it is.
For example, 3 and 5 are different numbers. They are not the same object.
But they are both integers, so they belong to the same class. Here are
Remember, different classes have different methods. Here are some
differences that you have already seen.
- Division (/) doesn't work the same with integers and
- Addition (+) doesn't work the same with strings as it does
- Strings have several methods that integers and floats don't have
(e.g. capitalize, length, upcase, etc).
For this reason, we will use the notation Class#method to state
exactly which method we mean. For instance, I will say
Integer#+ to differentiate it from Float#+ and
String#+. I can also say that String#upcase exists,
but Integer#upcase does not exist.
Ruby has some methods for converting between classess:
| Method || Converts |
|String#to_i ||string ||integer|
|String#to_f ||string ||float |
|Float#to_i ||float ||integer|
|Float#to_s ||float ||string |
Ruby can tell you what class an object is. Type these in
What differences do you see?
Type these in:
12 + 12
'12' + '12'
'12'.to_i + 12
'12' + 12.to_s
12 * 12
'12' * 12
Did you get the results you expected?
How would you explain the difference between
12, '12' and 12.0 to a younger sibbling?