LoginSignup
5
6

More than 5 years have passed since last update.

Apex(クラス定義)

Last updated at Posted at 2017-02-14

クラスの属性定義

public String xxxx {set; get;}
public String xxxx {get{ return xxxx;}}

public List<String> xxxx {private set; get{
    if (xxxx==null){
         xxxx = new List<String>();
    }
    return xxxx;
};}

インターフェースの例

インターフェースにはプロパティは定義できない

public interface ResponseData {
    //メソッドにpublicは付けない
    Map<String, Object> getResultMap();
}

継承元クラス

//インスタンス化しないクラスでは abstractキーワードを付ける
public abstract class XXX_XXXXBase {
    .... 
    //private/protected/publicの考え方はjavaと同じ
    private    xxxx {set; get;}
    protected  XXXX {get{
         return xxxx;
    }}
    public xxxx {protected set; get;}
}
//インスタンス化するクラスの場合はvirtualキーワードを付ける
public virtual class XXX_XXXXCtrl {
    ....
}

継承先のクラス

//javaと同じ extneds
public with sharing class XXXX extends XXX_XXXXBase{
    .....
    //継承先のクラスではプロパティはthisで参照
    this.xxxx = xxxx;

    //サブクラス側でメソッドをオーバーライドしたい場合は overrideキーワードを付ける
    public override string getXXX() {
        //親メソッドを呼ぶには super();
        super();
        .....
    }

}

Iteratorクラスの実装

public with sharing class CsvIterator implements Iterator<List<String>>, Iterable<List<String>> {
    private List<List<String>> data;  //table data for csv
    private Integer curpos = 0;

    /*
     * constructor
     */
    public CsvIterator(List<List<String>> data){
        this.data = data;
    }

    public Boolean hasNext() {
        return this.curpos < data.size() ? true : false;
    }

    public List<String> next() {
        return data[curpos++];
    }

    public Iterator<List<String>> Iterator(){
        return this;
    }
}
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6