Apex - Objetos
Uma instância de classe é chamada de Object. Em termos de Salesforce, o objeto pode ser de classe ou você pode criar um objeto de sObject também.
Criação de objeto da classe
Você pode criar um objeto de classe como faria em Java ou outra linguagem de programação orientada a objetos.
A seguir está um exemplo de classe chamada MyClass -
// Sample Class Example
public class MyClass {
Integer myInteger = 10;
public void myMethod (Integer multiplier) {
Integer multiplicationResult;
multiplicationResult = multiplier*myInteger;
System.debug('Multiplication is '+multiplicationResult);
}
}
Esta é uma classe de instância, ou seja, para chamar ou acessar as variáveis ou métodos desta classe, você deve criar uma instância desta classe e então você pode realizar todas as operações.
// Object Creation
// Creating an object of class
MyClass objClass = new MyClass();
// Calling Class method using Class instance
objClass.myMethod(100);
Criação de objetos
sObjects são os objetos do Salesforce nos quais você armazena os dados. Por exemplo, Conta, Contato, etc., são objetos personalizados. Você pode criar instâncias de objeto desses sObjects.
A seguir está um exemplo de inicialização de sObject e mostra como você pode acessar o campo daquele objeto específico usando a notação de ponto e atribuir os valores aos campos.
// Execute the below code in Developer console by simply pasting it
// Standard Object Initialization for Account sObject
Account objAccount = new Account(); // Object initialization
objAccount.Name = 'Testr Account'; // Assigning the value to field Name of Account
objAccount.Description = 'Test Account';
insert objAccount; // Creating record using DML
System.debug('Records Has been created '+objAccount);
// Custom sObject initialization and assignment of values to field
APEX_Customer_c objCustomer = new APEX_Customer_c ();
objCustomer.Name = 'ABC Customer';
objCustomer.APEX_Customer_Decscription_c = 'Test Description';
insert objCustomer;
System.debug('Records Has been created '+objCustomer);
Inicialização estática
Variáveis e métodos estáticos são inicializados apenas uma vez quando uma classe é carregada. Variáveis estáticas não são transmitidas como parte do estado de exibição de uma página do Visualforce.
A seguir está um exemplo de método estático, bem como variável estática.
// Sample Class Example with Static Method
public class MyStaticClass {
Static Integer myInteger = 10;
public static void myMethod (Integer multiplier) {
Integer multiplicationResult;
multiplicationResult = multiplier * myInteger;
System.debug('Multiplication is '+multiplicationResult);
}
}
// Calling the Class Method using Class Name and not using the instance object
MyStaticClass.myMethod(100);
Static Variable Use
Variáveis estáticas serão instanciadas apenas uma vez quando a classe for carregada e este fenômeno pode ser usado para evitar a recursão do trigger. O valor da variável estática será o mesmo dentro do mesmo contexto de execução e qualquer classe, gatilho ou código em execução pode se referir a ele e evitar a recursão.