Apex - Classes
O que é uma classe?
Uma classe é um modelo ou projeto a partir do qual os objetos são criados. Um objeto é uma instância de uma classe. Esta é a definição padrão de Classe. As classes Apex são semelhantes às classes Java.
Por exemplo, InvoiceProcessorclass descreve a classe que contém todos os métodos e ações que podem ser executados na Fatura. Se você criar uma instância dessa classe, ela representará a única fatura que está atualmente no contexto.
Criação de classes
Você pode criar classes no Apex a partir do console do desenvolvedor, Force.com Eclipse IDE e da página de detalhes Apex Class também.
Do console do desenvolvedor
Siga estas etapas para criar uma classe Apex no console do desenvolvedor -
Step 1 - Vá para Nome e clique em Console do desenvolvedor.
Step 2 - Clique em Arquivo ⇒ Novo e depois clique na classe Apex.
Do IDE da Force.com
Siga estas etapas para criar uma classe do Force.com IDE -
Step 1 - Abra Force.com Eclipse IDE
Step 2 - Crie um Novo Projeto clicando em Arquivo ⇒ Novo ⇒ Classe do Apex.
Step 3 - Forneça o Nome da Classe e clique em OK.
Feito isso, a nova classe será criada.
Da página de detalhes da classe Apex
Siga estas etapas para criar uma classe na página de detalhes da classe Apex -
Step 1 - Clique em Nome ⇒ Configuração.
Step 2- Pesquise 'Apex Class' e clique no link. Isso abrirá a página de detalhes da classe Apex.
Step 3 - Clique em 'Novo' e, a seguir, forneça o nome da turma e clique em Salvar.
Estrutura da Classe Apex
Abaixo está a estrutura de amostra para a definição da classe Apex.
Syntax
private | public | global
[virtual | abstract | with sharing | without sharing]
class ClassName [implements InterfaceNameList] [extends ClassName] {
// Classs Body
}
Esta definição usa uma combinação de modificadores de acesso, modos de compartilhamento, nome da classe e corpo da classe. Veremos todas essas opções mais adiante.
Example
A seguir está um exemplo de estrutura para a definição da classe Apex -
public class MySampleApexClass { //Class definition and body
public static Integer myValue = 0; //Class Member variable
public static String myString = ''; //Class Member variable
public static Integer getCalculatedValue () {
// Method definition and body
// do some calculation
myValue = myValue+10;
return myValue;
}
}
Modificadores de acesso
Privado
Se você declarar o modificador de acesso como 'Privado', essa classe será conhecida apenas localmente e você não poderá acessar essa classe fora dessa parte específica. Por padrão, as classes têm este modificador.
Público
Se você declarar a classe como 'Pública', isso implica que essa classe está acessível para sua organização e seu namespace definido. Normalmente, a maioria das classes do Apex são definidas com esta palavra-chave.
Global
Se você declarar a classe como 'global', ela poderá ser acessada por todos os códigos apex, independentemente de sua organização. Se você tiver um método definido com a palavra-chave do serviço da web, deverá declarar a classe que o contém com a palavra-chave global.
Modos de Compartilhamento
Vamos agora discutir os diferentes modos de compartilhamento.
Com Compartilhamento
Este é um recurso especial das classes Apex no Salesforce. Quando uma classe é especificada com a palavra-chave 'Com Compartilhamento', as seguintes implicações: Quando a classe for executada, ela respeitará as configurações de acesso do usuário e a permissão do perfil. Suponha que a ação do usuário tenha acionado a atualização do registro para 30 registros, mas o usuário tem acesso a apenas 20 registros e 10 registros não estão acessíveis. Então, se a turma estiver realizando a ação de atualização dos registros, serão atualizados apenas 20 registros aos quais o usuário tem acesso e o restante dos 10 registros não serão atualizados. Isso também é chamado de modo de usuário.
Sem compartilhar
Mesmo que o usuário não tenha acesso a 10 registros em 30, todos os 30 registros serão atualizados à medida que a Aula está rodando no modo Sistema, ou seja, foi definida com a palavra-chave Sem Compartilhamento. Isso é chamado de modo de sistema.
Virtual
Se você usar a palavra-chave 'virtual', isso indica que esta classe pode ser estendida e substituições são permitidas. Se os métodos precisarem ser substituídos, as classes devem ser declaradas com a palavra-chave virtual.
Abstrato
Se você declarar a classe como 'abstrata', ela conterá apenas a assinatura do método e não a implementação real.
Variáveis de classe
Syntax
[public | private | protected | global] [final] [static] data_type
variable_name [= value]
Na sintaxe acima -
- O tipo de dados da variável e o nome da variável são obrigatórios
- Os modificadores de acesso e o valor são opcionais.
Example
public static final Integer myvalue;