Apex-클래스

수업이란?

클래스는 객체가 생성되는 템플릿 또는 청사진입니다. 객체는 클래스의 인스턴스입니다. 이것은 Class의 표준 정의입니다. Apex 클래스는 Java 클래스와 유사합니다.

예를 들면 InvoiceProcessor클래스는 송장에서 수행 할 수있는 모든 메서드와 작업을 포함하는 클래스를 설명합니다. 이 클래스의 인스턴스를 만들면 현재 컨텍스트에있는 단일 송장을 나타냅니다.

클래스 생성

Developer Console, Force.com Eclipse IDE 및 Apex 클래스 세부 정보 페이지에서도 Apex에 클래스를 만들 수 있습니다.

개발자 콘솔에서

다음 단계를 따라 개발자 콘솔에서 Apex 클래스를 만듭니다.

Step 1 − 이름으로 이동하여 개발자 콘솔을 클릭합니다.

Step 2 − 파일 ⇒ 새로 만들기를 클릭 한 다음 Apex 클래스를 클릭합니다.

Force.com IDE에서

Force.com IDE에서 클래스를 생성하려면 다음 단계를 따르십시오.

Step 1 − Force.com Eclipse IDE 열기

Step 2 − 파일 ⇒ 새로 만들기 ⇒ Apex 클래스를 클릭하여 새 프로젝트를 만듭니다.

Step 3 − 클래스 이름을 입력하고 확인을 클릭합니다.

이 작업이 완료되면 새 클래스가 생성됩니다.

Apex 클래스 세부 정보 페이지에서

Apex 클래스 세부 정보 페이지에서 클래스를 생성하려면 다음 단계를 따르십시오.

Step 1 − 이름 ⇒ 설정을 클릭합니다.

Step 2− 'Apex Class'를 검색하고 링크를 클릭합니다. Apex 클래스 세부 정보 페이지가 열립니다.

Step 3 − '새로 만들기'를 클릭하고 클래스 이름을 입력 한 다음 저장을 클릭합니다.

Apex 클래스 구조

다음은 Apex 클래스 정의에 대한 샘플 구조입니다.

Syntax

private | public | global
[virtual | abstract | with sharing | without sharing]
class ClassName [implements InterfaceNameList] [extends ClassName] {
   // Classs Body
}

이 정의는 액세스 수정 자, 공유 모드, 클래스 이름 및 클래스 본문의 조합을 사용합니다. 이 모든 옵션에 대해 자세히 살펴 보겠습니다.

Example

다음은 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;
   }
}

액세스 수정 자

은밀한

액세스 한정자를 'Private'로 선언하면이 클래스는 로컬로만 알려지며 특정 부분 외부에서이 클래스에 액세스 할 수 없습니다. 기본적으로 클래스에는이 수정자가 있습니다.

공공의

클래스를 '공용'으로 선언하면이 클래스가 조직 및 정의 된 네임 스페이스에 액세스 할 수 있음을 의미합니다. 일반적으로 대부분의 Apex 클래스는이 키워드로 정의됩니다.

글로벌

클래스를 '글로벌'로 선언하면 조직에 관계없이 모든 apex 코드에서 액세스 할 수 있습니다. 웹 서비스 키워드로 정의 된 메서드가있는 경우 포함하는 클래스를 global 키워드로 선언해야합니다.

공유 모드

이제 다양한 공유 모드에 대해 논의하겠습니다.

공유와 함께

이것은 Salesforce의 Apex 클래스의 특수 기능입니다. 'With Sharing'키워드로 클래스를 지정하면 다음과 같은 의미가 있습니다. 클래스가 실행될 때 사용자의 액세스 설정 및 프로필 권한을 존중합니다. 사용자의 작업으로 인해 30 개의 레코드에 대한 레코드 업데이트가 트리거되었지만 사용자는 20 개의 레코드에만 액세스하고 10 개의 레코드에는 액세스 할 수 없다고 가정합니다. 그런 다음 클래스가 레코드 업데이트 작업을 수행하는 경우 사용자가 액세스 할 수있는 20 개 레코드 만 업데이트되고 나머지 10 개 레코드는 업데이트되지 않습니다. 이를 사용자 모드라고도합니다.

공유하지 않고

사용자가 30 개 중 10 개 레코드에 접근 할 수없는 경우에도 클래스가 시스템 모드에서 실행 중이므로, 즉 Without Sharing 키워드로 정의되어 있으므로 30 개 레코드가 모두 업데이트됩니다. 이를 시스템 모드라고합니다.

가상

'virtual'키워드를 사용하면이 클래스를 확장 할 수 있고 재정의가 허용됨을 나타냅니다. 메서드를 재정의해야하는 경우 가상 키워드를 사용하여 클래스를 선언해야합니다.

요약

클래스를 'abstract'로 선언하면 실제 구현이 아닌 메서드의 서명 만 포함됩니다.

클래스 변수

Syntax

[public | private | protected | global] [final] [static] data_type
variable_name [= value]

위의 구문에서-

  • 변수 데이터 유형 및 변수 이름은 필수입니다.
  • 액세스 수정 자 및 값은 선택 사항입니다.

Example

public static final Integer myvalue;