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;