Constructor & Conditional Statements in Salesforce

on

|

views

and

comments

Table of Contents

Previous Sessions

Constructor in Salesforce

A constructor is a unique method that is used to create and initialize an instance/Object of a class. When an object is created from a class, the constructor is automatically called to initialize the object’s state and properties.

  • The constructor does not have any return type.
  • The name of the constructor must be the same as the Class Name.
  • The parent class(topmost class) constructor should always be public.
    • Private in cases where the methods are class methods.
				
					Example:- 
Animal dog = new Animal();

Where - 
Animal - Class
dog - the variable name of the Object
= - Assignment operator
new - keyword
Animal() - constructor
				
			

Types of Constructor

There are two types of constructors in Salesforce:

  • Default Constructor: A default constructor is a constructor that is automatically created by Salesforce if no other constructor is defined in the class.
    • The default constructor takes no arguments and does not perform any initialization.
  • A parameterized constructor is a constructor that takes one or more parameters and uses them to initialize the object’s state and properties.
    • When you want to enforce that user must need to pass the value while creating the instance/Object.
    • Parameterized constructors are useful for setting initial values or default values for object properties.
      • Animal dog = new Animal(‘Paremrian’);
				
					public List<String> stateList;
pubic StatePicker(String countryName){
    stateList = {'','',''};
}
				
			
				
					
<Access Modifier> <Class Name> (<Parameters>) {
  // Constructor Body
}

public class MyObject {
  public String name;
  public String description;

  public MyObject(String objectName, String objectDescription) {
    this.name = objectName;
    this.description = objectDescription;
  }
}
				
			

Conditional Statements

  • Conditional Statements
    • If else
    • Switch

Use the “if-else” statement in Apex code to execute different blocks of code based on a condition

				
					if (condition) {
    // code block to execute if the condition is true
} else {
    // code block to execute if the condition is false
}

if (condition) { // boolean (TRUE/FALSE)
    // code block to execute if the condition is true
} else if(condition) {
    // code block to execute if the condition is false
} else {

}
// Example 1
Integer x = 5;
if (x > 10) { // <, = , >=, <=, != <>
    System.debug('x is greater than 10');
} else {
    System.debug('x is less than or equal to 10');
}

Integer x = 5;
if (x > 10) { // <, = , >=, <=, != <>
    System.debug('x is greater than 10');
} else if(x >= 5) {
    System.debug('x is greater than or equal to 5');
} else{
    System.debug('x is less than 5');
}

// Example 2
String fruit = 'banana';
if (fruit == 'apple') {
    System.debug('This is an apple');
} else if (fruit == 'orange') {
    System.debug('This is an orange');
} else {
    System.debug('This is neither an apple nor an orange');
}
				
			

Switch Statement in Salesforce

You can use the “switch” statement in Apex code to execute different blocks of code based on the value of a variable.
The syntax for the “switch” statement is as follows:

				
					switch on expression {
    when value1 {
        // code block to execute if expression equals value1
    }
    when value2 {
        // code block to execute if expression equals value2
    }
    when value3 {
        // code block to execute if expression equals value3
    }
    when else {
        // code block to execute if the expression does not equal any of the specified values
    }
}
				
			

Here’s an example of how to use the “switch” statement in Apex code:

				
					String fruit = 'banana';
switch on fruit {
    when 'apple' {
        System.debug('This is an apple');
    }
    when 'orange' {
        System.debug('This is an orange');
    }
    when 'banana' {
        System.debug('This is a banana');
    }
    when else {
        System.debug('This is not an apple, orange, or banana');
    }
}
				
			

Hands-on Code

				
					public class Laptops {
    /* Instance Variable / Object Variable */
    public String companyName; // default value ~= null
    public Boolean isAdult; // default value ~= null
    public String processor;
    public Integer ramSize;
    
    /* Class Variable / Static Variable */
    public static String name;
    /*
    public Laptops(){
    }
    */
    // Account acc = new Account(Name ='Test Account');
    // Account acc = new Account(Name ='Test Account', Industry='Education');
    public Laptops(Integer ramSize){
        this.ramSize = ramSize;
        // this.ClassVariableName = <constructor parameter name>
    }
    public Laptops(String companyName){
        System.debug('Company Name in constructor is =>'+ companyName);
        this.companyName = companyName;
        // this.ClassVariableName = <constructor parameter name>
    }
    public Laptops(String companyName, String processor){
        System.debug('Company Name in constructor is =>'+ companyName);
        this.companyName = companyName;
        this.processor = processor;
    }
    public Laptops(String companyName, String processor, Integer ramSize){
        System.debug('Company Name in constructor is =>'+ companyName);
        this.companyName = companyName;
        this.processor = processor;
        this.ramSize = ramSize;
    }
    
    public void listAllLaptops(){
       // SOQL
    }
    // Instance Method / Object Method
    public void printCompanyName(){
        
        System.debug(' Company Name withing printCompanyName method is => '+ companyName);
        System.debug(' Company Name withing printCompanyName method is => '+ name);
        
        if(companyName != null){
            
            System.debug(' Company Name withing printName method is => '+ name);
            // SOQL - SELECT ID, Name, ----- FROM Laptop__c WHERE Company_Name = ''
            
        } else if( companyName != null && processor != null ){ // && = AND, || = OR 
            
            System.debug(' companyName withing printName method is => '+ companyName);
            System.debug(' processor withing printName method is => '+ processor);
            // SOQL - SELECT ID, Name, ----- FROM Laptop__c WHERE Company_Name = '' AND Processor__c = ''
             
        } else if(companyName != null && processor != null && ramSize != null){
            
            System.debug(' companyName withing printName method is => '+ companyName);
            System.debug(' processor withing printName method is => '+ processor);
            System.debug(' ramSize withing printName method is => '+ ramSize);
            // SOQL - SELECT ID, Name, ----- FROM Laptop__c WHERE Company_Name = '' AND Processor__c = '' AND RAM_SIZE__c = 784;
             
        } else if(companyName != null || processor != null || ramSize != null){
            
            //
            
        } else {
            
        }
    }
    // Class Method / Static Methods
    public static void printName(){
        // Static Variable/Class Variable
        
    }
    
}
				
			
				
					//Laptops apple = new Laptops('Apple');
//apple.printCompanyName();
Laptops.name = 'Apple';
Laptops.printName();

String fruit = 'bananat632';
switch on fruit {
    when 'apple' {
        System.debug('This is an apple');
    }
    when 'orange' {
        System.debug('This is an orange');
    }
    when 'banana' {
        System.debug('This is a banana');
    }
    when else {
        System.debug('This is not an apple, orange, or banana');
    }
}

Integer x = 56;
Integer y = 10;
Integer z = (x / y);// +, - , /, *, %
System.debug(' '+z);
				
			

Assignment

Create a class “Car” that should have the following

  • The class should have the private variables
    • Name
    • Model
    • Year
    • Company
    • Type
  • Create multiple constructors that are accepting the different parameters
    • Car(String name, String type)
    • Car(String name)
    • Car( )
    • Car(String name, String model, String year, String company, Type)
    • Car(Integer year)
  • Within the constructors assign the values to the private variables. Note: – The value should be assigned to the variable that is passed in the constructor and for other variables assign a blank value. See the example below
    • public Car(String year){
      this.year = year;
      this.name = ”;
      this.model = ”;
      this.company = ”;
      this.type = ”;
      }
  • Create various methods to print the Car Details
    • printCarInformation( ) → This method should print all the information about the Car
    • printCarName( ) → This method should only print the name of the Car
    • printCarYear( ) → This method should only print the built year of the Car
    • printCarNameType( ) → This method should only print the name & type of the Car

Full Video

Resources

Amit Singh
Amit Singhhttps://www.pantherschools.com/
Amit Singh aka @sfdcpanther/pantherschools, a Salesforce Technical Architect, Consultant with over 8+ years of experience in Salesforce technology. 21x Certified. Blogger, Speaker, and Instructor. DevSecOps Champion
Share this

Leave a review

Excellent

SUBSCRIBE-US

Book a 1:1 Call

Must-read

How to Utilize Salesforce CLI sf (v2)

The Salesforce CLI is not just a tool; it’s the cornerstone of development on the Salesforce Platform. It’s your go-to for building, testing, deploying, and more. As one of the most important development tools in our ecosystem

Save the day of a Developer with Apex Log Analyzer

Table of Contents What is Apex Log Analyzer? Apex Log Analyzer, a tool designed with Salesforce developers in mind, is here to simplify and accelerate your...

Salesforce PodCast

Introduction Hey Everyone, Welcome to my podcast, the first-ever podcast in India for Salesforce professionals. Achievement We are happy to announce that we have been selected as Top...

Recent articles

More like this

LEAVE A REPLY

Please enter your comment!
Please enter your name here

5/5

Stuck in coding limbo?

Our courses unlock your tech potential