In this tutorial I am going to show you how to create a class, write methods for a class, create an instance of a class, and then you will learn how to call methods from that class in multiple ways.

What are classes for?

Well, classes can be used to sort or organize your code. Usually when you implement a class, it is used for separating your code so it is easier to use. A class makes it easier to call the same methods over and over again. Instead of rewriting each method, you can write it once and just include your code for next time. For instance if I want to create a class to hold the methods to solve for the volume of six shapes, then I would create a class called 'VolumeOf'

class VolumeOf end

Now that we have our class, we need to define some methods/functions. Since we want to get the volume of a cylinder, cube, sphere, pyramid, cone, and a rectangular prism; we will need to create 6 methods.

class VolumeOf def Cylinder end def Cube end def Sphere end def Pyramid end def Cone end def RectangularPrism end end

Since the volume formulas require some user input we need to add some parameters. We can't pass any data into our methods yet because we don't have any parameters. We are going to add the 'radius' and 'height' as a parameter for the Cylinder, the 'side' as a parameter for the Cube, the 'radius' for the Sphere, the 'base' and 'height' for the Pyramid, the 'base', 'height', and 'radius' for the Cone, and the 'depth', 'height', and 'width' for the RectangularPrism. Remember when adding parameter(s) your parameter(s) need to be within a '(' and ')'. If there is more than one parameter then you need to use a comma ',' to separate them. This is what your code should look like:

class VolumeOf def Cylinder(radius, height) end def Cube(side) end def Sphere(radius) end def Pyramid(base, height) end def Cone(base, height, radius) end def RectangularPrism(depth, height, width) end end

Now that we have our parameters in place, we need to actually code the methods. When finding the volume of a cylinder we need the radius, the height, and an approximate for pi; we will be using 3.14159 as our approximate for pi. The formula for finding the volume of a cylinder is pi * radius[squared] * height. In ruby the way we get the square of the radius is: radius * radius or we can use radius ** 2; either way will work. In this case we are going to use radius ** 2. After we get the volume we need to return the volume. Your cylinder code should look something like this:

# Gets the volume of a Cylinder def Cylinder(radius, height) # Gets an approximate for pi pi = 3.14159 # Gets the volume volume = pi * (radius ** 2) * height # Returns the volume return volume # Exit the mehtod end

We are going to do the same thing, but this time we will be using different shapes, so they will require different formulas to find the volume. The volume of a cube is side[cubed] or side * side * side. This is probably the easiest one to find the volume of. All you need to do is know the measure of one side.

# Gets the volume of a Cube def Cube(side) # Gets the cube of the side volume = (side ** 3) # Returns the volume return volume # Exit the mehtod end

The volume of a sphere is (4/3, or 1 1/3) multiplied by an approximate for pi, and we have to cube the radius. So it looks like this when we put it into code:

# Gets the volume of a Sphere def Sphere(radius) # Gets the fraction 4/3 or 1 1/3 fraction = (4 / 3) # Gets an approximate for pi pi = 3.14159 # Gets the volume volume = fraction * pi * (radius ** 3) # Return the volume return volume # Exit the method end

With a pyramid we need a fraction(1/3), the pyramid's base and pyramid's height. To get the volume all we do is multiply the fraction(1/3) by the base, then multiply that by the height. Then don't forget to return the volume.

# Gets the volume of a Pyramid def Pyramid(base, height) # Gets the fraction 1/3 fraction = (1 / 3) # Gets the volume volume = fraction * base * height # Return the volume return volume # Exit the method end

Getting the volume of a cone is similar to getting the volume of a pyramid except for the parameter we need include parameter for the radius as well as the base and height. The formula to find the volume of the cone is: (1/3) multiplied by an approximate for pi multiplied by the radius[squared] multiplied by the height. Once again don't forget that we are using 3.14159 as an approximate for pi.

# Gets the volume of a Cone def Cone(base, height, radius) # Gets the fraction 1/3 fraction = (1 / 3) # Gets an approximate for pi pi = 3.14159 # Gets the volume volume = fraction * pi * (radius ** 2) * height # Return the volume return volume # Exit the method end

Ok last one. We are going to get the volume of a rectangular prism. For this one all you need to do is get the depth, the height, and the width; then multiply them all together.

# Gets the volume of a Rectangular Prism def RectangularPrism(depth, height, width) # Getst the volume volume = depth * height * width # Return the volume return volume # Exit the mehtod end

Ok here is the full code in case you got lost somewhere:

# Gets the volumes of a Cylinder, Cube, Sphere, Pyramid, Cone, and Rectangular Prism. class VolumeOf # Gets the volume of a Cylinder def Cylinder(radius, height) # Gets an approximate for pi pi = 3.14159 # Gets the volume volume = pi * (radius ** 2) * height # Returns the volume return volume # Exit the mehtod end # Gets the volume of a Cube def Cube(side) # Gets the cube of the side volume = (side ** 3) # Returns the volume return volume # Exit the mehtod end # Gets the volume of a Sphere def Sphere(radius) # Gets the fraction 4/3 or 1 1/3 fraction = (4 / 3) # Gets an approximate for pi pi = 3.14159 # Gets the volume volume = fraction * pi * (radius ** 3) # Return the volume return volume # Exit the method end # Gets the volume of a Pyramid def Pyramid(base, height) # Gets the fraction 1/3 fraction = (1 / 3) # Gets the volume volume = fraction * base * height # Return the volume return volume # Exit the method end # Gets the volume of a Cone def Cone(base, height, radius) # Gets the fraction 1/3 fraction = (1 / 3) # Gets an approximate for pi pi = 3.14159 # Gets the volume volume = fraction * pi * (radius ** 2) * height # Return the volume return volume # Exit the method end # Gets the volume of a Rectangular Prism def RectangularPrism(depth, height, width) # Getst the volume volume = depth * height * width # Return the volume return volume # Exit the mehtod end # Exit the class end

Ok now that we have finished coding all of the methods we are going to learn how to create a new instance of a class, and then call the methods multiple ways.

The first way I will show you will be when you only need to call a method once from a class. By that I mean, if you need to call a method more than once do NOT use Methods 1 & 2, skip ahead to Method 3.

**Method 1:**

# Creates a new instance of the 'VolumeOf' class # and gets the volume of a Cylinder VolumeOf.new.Cylinder(5,23)

**Method 2:**

# Creates a new instance of the 'VolumeOf' class # and gets the volume of a Cylinder (VolumeOf.new).Cylinder(5,23)

**Method 3:**

# Creates a new instance of the 'VolumeOf' class volumes = VolumeOf.new # Gets the volume of a Cylinder volumes.Cylinder(5,23)

Remember that if you want to call a method more than once, then I recommend that you use Method 3, otherwise you will have to keep defining new instances of the VolumeOf class. Ok now you should have a Basic Understanding of Classes inside of Ruby.