Lesson 2
Powering Up with Attributes and Methods
Powering Up with Attributes and Methods

Wonderful to see you back here! Having established a basic understanding of classes and objects from the last lesson, we’re now ready to add more power to our Spacecraft class. Just like in the real world, where a spacecraft has unique features and can perform various actions, we can do the same in our code by adding attributes and methods.

Before we dive into enhancing our Spacecraft class, let's break down what attributes and methods are!

Attributes

Attributes, also known as properties or fields, are variables that belong to a class. They are used to store data relevant to objects created from the class. For our Spacecraft class, an attribute could be something like name, speed, or fuelLevel.

Attributes allow each instance of a class (each object) to have its own set of data. When defining an attribute, we use the public keyword to set its visibility, meaning it can be accessed from outside of the class. Don't worry too much about the different visibility levels right now; we'll cover them in a future lesson.

Here's an example:

php
1<?php 2class Spacecraft { 3 public $name; // This is an attribute 4} 5?>

This code snippet defines an attribute called name for the Spacecraft class, which can store the name of each spacecraft.

Methods

Methods are functions that belong to a class. They are used to define behaviors or actions that objects of the class can perform. For instance, a Spacecraft might have methods like launch(), land(), or refuel().

Methods can utilize and modify the object's attributes through the $this keyword, which refers to the current instance of the class. When defining a method, we also use the public keyword to set its visibility, meaning it can be called from outside of the class. Again, we'll talk more about different visibility levels in an upcoming lesson.

Here's an example:

php
1<?php 2class Spacecraft { 3 public $name; 4 5 public function launch() { // This is a method 6 echo $this->name . " is launching!"; 7 } 8} 9?>

In this example, the launch method utilizes the name attribute via the $this keyword to output a message indicating that a spacecraft is launching.

Attributes store the state of an object, while methods define the behavior. Together, they make objects truly powerful and versatile components in your software. Now, let's move on to adding these elements to our Spacecraft class.

What You'll Learn

In this lesson, we will go a step further by learning how to:

  • Define attributes to store the properties of a class.
  • Create methods to perform actions.

Attributes and methods are the core components that bring your objects to life. You'll learn how to add properties like name to your Spacecraft class and how to define actions like launch that your objects can perform.

Let’s take a quick look at an example:

php
1<?php 2class Spacecraft { 3 // Attribute to hold the name of the spacecraft 4 public $name; 5 6 // Method to launch the spacecraft 7 public function launch() { 8 // Print a message with the name attribute 9 echo $this->name . " is launching!"; 10 } 11} 12 13// Create a new Spacecraft object 14$apollo = new Spacecraft(); 15// Set the name of the spacecraft 16$apollo->name = "Apollo"; 17// Call the method to launch the spacecraft 18$apollo->launch(); 19?>

This snippet shows how to add a name attribute and a launch method to your Spacecraft class.

Why It Matters

Attributes and methods are fundamental to making your classes functional and interactive. By using attributes, you can store all kinds of data associated with your objects. Methods allow these objects to perform operations and interact with the data.

Imagine designing a video game where each character has different abilities and stats — attributes and methods give you the tools to make these features possible. Beyond gaming, this concept applies to any software involving complex data management, from e-commerce platforms to data analysis tools. The more adept you become at leveraging attributes and methods, the more effective and efficient your code will be.

Let’s get started with the practice section to begin expanding your Spacecraft class with some exciting new capabilities!

Enjoy this lesson? Now it's time to practice with Cosmo!
Practice is how you turn knowledge into actual skills.