Diksamã®ææ³ä¸è¦§ã§ããJava, C++, C#çã®è¨èªãããç¨åº¦ç¥ã£ã¦ãã人ã¯ãããèªãã°Diksamã®åºç¤ããã¹ã¿ã¼ãã¦Diksamãæ¸ããã¨ãã§ããããã«ãªã£ã¦ãã¾ãã
ââã¯ãã便ä¹ã§ãããªã«ããã¯ã¦ãã®ãããã®äººæ°è¨äºãåºç¤ææ³æéãã¹ã¿ã¼ã ããã«ãªã£ã¦ããã®ã§ãã¾ããéè¦ãããã¨ãæãã¾ãããã
Diksamã£ã¦ä½ã ãã£ã¦? ç§ãä½ã£ãèªä½è¨èªã§ãã
è¨èªãä¼¼ã¦ããã ãã«ãä¸è¨ã¯Java基礎文法最速マスター - いろいろ解析日記ããã¼ã¹ã¨ããã¦ããã ãã¾ããã
è¨èªä»æ§ã¯ãã¡ãï¼
http://kmaebashi.com/programmer/devlang/dls_0_4_01.html
ãã®æ¬ã®å¾åã§æ±ã£ã¦ããè¨èªã§ãããã¾ãã
1.åºç¤
ããã°ã©ã ã®æ§æ
ããã°ã©ã ã¯å®£è¨é¨ããããã¬ãã«ãé¢æ°å®ç¾©ã¾ãã¯å®£è¨ãåå®ç¾©ãå®æ°å®ç¾©ããæ§æããã¾ããå®è¡ã¯ãèµ·åæã«æå®ãããã½ã¼ã¹ãã¡ã¤ã«ã®ããããã¬ãã«ã«è¨è¿°ãããæãé ã«å®è¡ããã¾ãããã£ã¦ã"hello, world."ã¨è¡¨ç¤ºããããã°ã©ã ã¯åã«æ¸ãã¾ãã
println("hello, world.");
Javaã«ãããimportã«ç¸å½ãããã®ã¨ãã¦require宣è¨ãããã¾ããããã¯å®£è¨é¨(ããã°ã©ã ã®åé )ã«è¨è¿°ãã¾ãã
requre diksam.lang; requre diksam.math;
ãã ããdiksam.langã¯ããã©ã«ãã§requireããã¦ããã®ã§ãã¦ã¼ã¶ãé½ã«requireããå¿ è¦ã¯ããã¾ããã
æååãæç»ããé¢æ°
æ¹è¡ãªãã®print()é¢æ°ãæ¹è¡ããã®println()é¢æ°ã使ç¨ã§ãã¾ãã
print("hello, "); println("world.");
ã³ã¡ã³ã
ã³ã¡ã³ãã§ãã
// ä¸è¡ã³ã¡ã³ã
/* è¤æ°è¡ã³ã¡ã³ã */
å¤æ°ã®å®£è¨
å¤æ°ã®å®£è¨ã§ããå¤æ°ã®å®£è¨æã«ã¯ãã¼ã¿åãæå®ãã¾ãã
// å¤æ° int num;
ãã¼ã¿å
Diksamã®ãã¼ã¿åã«ã¯åºæ¬åã¨æ´¾çåãã¯ã©ã¹/ã¤ã³ã¿ãã§ã¼ã¹ãåæåãdelegateåãããã¾ãã以ä¸ã¯åºæ¬åã®ãã¼ã¿åã§ãã
// int(æ´æ°)å int num; // double(å精度浮åå°æ°ç¹)å double value; // boolean(è«ç)å boolean flag; // string(æåå)å string str;
ã¯ã©ã¹ãé åã¯åç §åã®ãã¼ã¿åã§ãã
// Fileå File f; // é åå int[] array;
ããã°ã©ã ã®å®è¡
Diksamã¯ã³ã³ãã¤ã«ã¯ä¸è¦ã§ããããã°ã©ã ãå®è¡ããã«ã¯ãã³ãã³ãã©ã¤ã³ã§ä»¥ä¸ã®ããã«ãã¾ãã
diksam hoge.dkm
2. æ°å¤
æ°å¤ã®è¡¨ç¾
intãdoubleåã®å¤æ°ã«æ°å¤ã代å
¥ã§ãã¾ã(floatã¯ããã¾ãã)ãJavaã¨ã¯ç°ãªããintã«å°æ°ã代å
¥ãããã¨ãã§ãã¾ã(ãã¡ããå¤ã¯åãæ¨ã¦ããã¾ããCã¨åã)ã
int i = 2; int i = 100000000; double num = 1.234;
ååæ¼ç®
ååæ¼ç®ã§ãã
num = 1 + 1; num = 1 - 1; num = 1 * 2; num = 1 / 2;
åã®æ±ãæ¹ã§ããå²ãæ°ã¨å²ãããæ°ã両æ¹ã¨ãæ´æ°ã®å ´åãè¨ç®çµæã®å°æ°ç¹ä»¥ä¸ãåãæ¨ã¦ããã¾ãã
num = 1 / 2; // 0
å²ãæ°ã¨å²ãããæ°ã®ã©ã¡ãããå°æ°ã®å ´åãè¨ç®çµæã®å°æ°ç¹ä»¥ä¸ãåãæ¨ã¦ããã¾ããã
num = 1.0 / 2; // 0.5 num = 1 / 2.0; // 0.5 num = 1.0 / 2.0; // 0.5
ä½ãã®æ±ãæ¹ã§ãã
// ä½ã mod = 4 % 2
ã¤ã³ã¯ãªã¡ã³ãã¨ãã¯ãªã¡ã³ã
ã¤ã³ã¯ãªã¡ã³ãã¨ãã¯ãªã¡ã³ãã§ãã
// ã¤ã³ã¯ãªã¡ã³ã i++; // ãã¯ãªã¡ã³ã i--;
åç½®ã®ã¤ã³ã¯ãªã¡ã³ãããã¯ãªã¡ã³ãæ¼ç®åã¯ããã¾ããã
3. æåå
æååã®è¡¨ç¾
æååã¯ããã«ã¯ã©ã¼ãã§å²ã¿ã¾ãã
string str = "abc";
æååæä½
å種æååæä½ã§ãã
// çµå string join = "aaa" + "bbb"; // é·ã int length = "abcdef".length(); // åãåºã "abcd".substr(0, 2); // ab
4. é å
é
åå¤æ°ã®å®£è¨
é
åã§ãã
// é åã®å®£è¨ int[] array;
é
åã®çæ
é
åã®çæã§ããé
åã®çææã«ã¯è¦ç´ æ°ãæå®ããããé
åãªãã©ã«ãæå®ãã¾ãã
int [] array; // è¦ç´ æ°ãæå®ãã¦é åãçæ array = new int[5]; // åæãã¼ã¿ãæå®ãã¦é åãçæã // é åãªãã©ã«ã®åã¯ãæåã®è¦ç´ ã®åã®é åã«ãªãã array = {1, 2, 3};
é
åã®æä½
é
åã®æä½ã§ãã
// è¦ç´ ã®åç § array[0] array[1] // è¦ç´ ã®ä»£å ¥ array[0] = 1; array[1] = 2; size = array.size(); // ãµã¤ãºã®åå¾ array.resize(10); // ãµã¤ãºã®å¤æ´ array.insert(3, 5); // æ¿å ¥(array[3]ã®åã«5ãæ¿å ¥) array.remove(3); // åé¤(array[3]ãåé¤ããè©°ãã) array.add(5); // æ«å°¾ã¸ã®è¦ç´ 追å
5. å¶å¾¡æ
ifæ
ifæã§ããJavaçã¨ã¯ç°ãªããæ³¢æ¬å¼§ã¯çç¥ã§ãã¾ããã
if ( æ¡ä»¶ ) { }
if ã elseæ
if ã elseæã§ãã
if ( æ¡ä»¶ ) { } else { }
if ã else if æ
æ³¢æ¬å¼§ãçç¥ã§ããªãã®ã§ãJavaã®ããã«elseã®å¾ã«åæã®ifãç¶ãããã¨ãã§ãã¾ããããã®ãããäºç´èªelsifãå°å
¥ããã¦ãã¾ãã
if ( æ¡ä»¶ ) { } elsif ( æ¡ä»¶ ) { }
whileæ
whileæã§ãã
int i = 0; while ( i < 5 ) { // å¦ç i++; }
foræ
foræã§ãã
for (int i = 0; i < 5; i++) { }
ãªããforeachã¯ã¾ã ããã¾ããã
switch caseæ
switch caseã§ããCãJavaã®ãããªfall throughã«ã¯ãªã£ã¦ãã¾ããã
switch (a) case 1 { // aã1ã®æã«å®è¡ãããã } case 2, 3 { // aã2ã¾ãã¯3ã®æã«å®è¡ãããã } default { // aã1ã§ã2ã§ã3ã§ããªãå ´åã«å®è¡ãããã }
6.å®æ°/é¢æ°/ã¯ã©ã¹/åæ/delegateå®ç¾©
é¢æ°å®ç¾©
é¢æ°å®ç¾©ã§ãã
// å¼æ°ã¨ãã¦ãµãã¤ã®æ´æ°ãåãåãããã®åãè¿ãé¢æ° int sum(int a, int b) { return a + b; } // å¼æ°ã¨ãã¦é åã¨ã¤ã³ããã¯ã¹ãåãåãã // ãã®åæã®è¦ç´ ãè¿ãé¢æ°ã int getAt(int[] array, int index) throws ArrayIndexOutOfBoundsException { return array[index]; }
å®æ°å®ç¾©
å®æ°ã¯ãã¼ã¯ã¼ãconstã§å®ç¾©ãã¾ãã
const MINUTES_A_DAY = 24 * 60;
åã®æå®ããããªããã¨ã«æ³¨æã
ãªãã以ä¸ã®ããã«finalã使ã£ã¦æ¸ããã¨ãã§ãã¾ãããfinalæå®ã®å¤æ°ã¯ãå®éã«ãããå®è¡ãããªãã¨ä»£å ¥ããã¾ããã
final int MINUTES_A_DAY = 24 * 60;
ã¯ã©ã¹å®ç¾©
ã¯ã©ã¹ã¯ã以ä¸ã®å½¢å¼ã§å®ç¾©ãã¾ãã
ã¯ã©ã¹ä¿®é£¾å class ã¯ã©ã¹å : ã¹ã¼ãã¼ã¯ã©ã¹, å®è£ ããã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ä¸¦ã³ { ãã£ã¼ã«ããã¡ã½ãããã³ã³ã¹ãã©ã¯ã¿å®ç¾©ã®ä¸¦ã³ }
ã¯ã©ã¹ä¿®é£¾åã«ã¯ä»¥ä¸ã®ãã®ãããã¾ãã
- ã¢ã¯ã»ã¹ä¿®é£¾åãpublicãæå®ãããç¡æå®ã®ãããããpublicæå®ããã¨å¥ããã±ã¼ã¸(å¥ã½ã¼ã¹ãã¡ã¤ã«)ããåç §å¯è½ã¨ãªãã
- abstract修飾åãæ½è±¡ã¯ã©ã¹ãæå³ãããæå®ãããããªããã®ããããã
Diksamã¯ã¯ã©ã¹ã«ã¤ãã¦ã¯åä¸ç¶æ¿ã®ã¿å¯è½ã§ããã¾ããDiksamã§ã¯ãæ½è±¡ã¯ã©ã¹ä»¥å¤ã¯ç¶æ¿ã§ãã¾ããã
ã¤ã³ã¿ãã§ã¼ã¹å®ç¾©
ã¢ã¯ã»ã¹ä¿®é£¾å interface { // ã¡ã½ããå®ç¾©ã®ä¸¦ã³ }
ãã£ã¼ã«ãå®ç¾©
ã¢ã¯ã»ã¹ä¿®é£¾å final修飾å å ãã£ã¼ã«ãå åæåå;
ãã£ã¼ã«ãã«å¯¾ããã¢ã¯ã»ã¹ä¿®é£¾åã¯ãpublicã privateããããã¯ç¡æå®ã§ãã publicã¯å¥ã®ããã±ã¼ã¸ãã使ç¨å¯è½ãç¡æå®ã¯åä¸ããã±ã¼ã¸å
ãã使ç¨å¯è½ã privateã¯ã¯ã©ã¹å
ã®ã¿ã§ä½¿ç¨å¯è½ã§ãããã¨ãããããæå³ãã¾ãã
finalãæå®ãããã¨ã§ããã®ãã£ã¼ã«ãã¯ä»£å
¥ä¸è½ã¨ãªãã¾ãã
Diksamã«ã¯staticãªãã£ã¼ã«ãã¯ããã¾ããã
ã¡ã½ããå®ç¾©
ã¡ã½ãã修飾å å ã¡ã½ããå (ãã©ã¡ã¼ã¿ã®ä¸¦ã³) throwsç¯ { æã®ä¸¦ã³ }
é¢æ°å®ç¾©ã¨åæ§ãthrowsç¯ã¯çç¥å¯è½ã§ããã¾ããabstract修飾åãä»ããå ´åã
é¢æ°æ¬ä½(æã®ä¸¦ã³ãå«ããããã¯)ã¯è¨è¿°ã§ãã¾ããã
ã¡ã½ãã修飾åã«ã¯ä»¥ä¸ã®ãã®ãããã¾ãã
- ã¢ã¯ã»ã¹ä¿®é£¾åãpublicãprivateã ç¡æå®ã®ããããã
- abstract修飾åã æå®ãããããªããã®ããããã
- virtual修飾åãã¾ãã¯override修飾åã
Diksamã®ããã©ã«ãã¯non virtualã§ããvirtualæå®ã®ãªãã¡ã½ããã¯ãªã¼ãã¼ã©ã¤ãã§ããªããã¾ãããªã¼ãã¼ã©ã¤ãããå ´åã¯ãå¿ ãoverrideãæå®ããªããã°ãªãã¾ããã
Diksamã«ã¯staticãªã¡ã½ãããããã¾ããã
ã³ã³ã¹ãã©ã¯ã¿
Diksamã§ã¯ãã³ã³ã¹ãã©ã¯ã¿ã®å®ç¾©ã«ã¯ãconstructor修飾åã使ç¨ãã¾ãã
public constructor initialize() { // ã³ã³ã¹ãã©ã¯ã¿ã®å¦çãè¨è¿°ããã }
constructor修飾åã¯ãååã¨åãå ´æã«è¨è¿°ãã¾ãããã£ã¦publicãvirtualçã®ã¡ã½ãã修飾åããã¯å¾ãã«è¨è¿°ããªããã°ãªãã¾ããã
constructor修飾åã«ãããJava, C++, C#çã¨ã¯ç°ãªããã³ã³ã¹ãã©ã¯ã¿ã«ä»»æã®ååãä»ãããã¨ãã§ããããã«ãªã£ã¦ãã¾ãããªã¼ãã¼ã©ã¤ããå¯è½ã§ããã¤ã³ã¹ã¿ã³ã¹ãnewããéã«ã以ä¸ã®å½¢å¼ã§ã³ã³ã¹ãã©ã¯ã¿ãæå®ãã¾ãã
// myinit()ã¯ã¦ã¼ã¶ãä½æããã³ã³ã¹ãã©ã¯ã¿ Point p = new Point.myinit(x, y);
ã¡ã½ããåãæå®ãããåã«new Point(x, y)ã®ããã«è¨è¿°ããå ´åã initializeã¨ããååã®ã³ã³ã¹ãã©ã¯ã¿ãå¼ã³åºããã¾ãã
åæå
åæåã¯ä»¥ä¸ã®ããã«å®ç¾©ãã¾ãã
enum Fruits { APPLE, BANANA, ORANGE, };
使ãã¨ãã¯ä»¥ä¸ã®ããã«åç §ãã¾ãã
Fruits f = Fruits.ORANGE
delegateå
delegateåã¯é¢æ°ãæãåç
§åã§ããäºç´èªdelegateã®å¾ãã«é¢æ°ã·ã°ããã£å®£è¨ã¨åãå½¢å¼ã§å®ç¾©ãã¾ãã
delegate boolean MouseButtonClicked(int x, int y, ButtonKind kind);
å¼ã®ä¸ã«é¢æ°åãåã«è¨è¿°ãããã¨ã§ãé¢æ°åã®å¤ãçæããã¾ããé¢æ°åã®å¤ã¯ãä»£å ¥äºææ§ã®ãã delegateåå¤æ°ã«ä»£å ¥å¯è½ã§ãã¾ããé¢æ°ã®å¼æ°ã¨ãã¦æ¸¡ããããæ»ãå¤ã¨ãã¦åãããã¨ãã§ãã¾ãã
boolean mouseButtonHandler(int x, int y, ButtonKind kind) { â¦â¦ } // buttonãªãã¸ã§ã¯ãã®setMouseButtonHandlerã¡ã½ããã«ã // mouseButtonHandleré¢æ°ãå¼æ°ã¨ãã¦æ¸¡ãã button.setMouseButtonHandler(mouseButtonHandler);
delegateåå¤æ°ã«ã¯ãé¢æ°ã ãã§ãªãã¡ã½ãããä»£å ¥å¯è½ã§ãããã®å ´åãdelegateåå¤æ°ã¯ãã¡ã½ããã«å¯¾å¿ããã¤ã³ã¹ã¿ã³ã¹ãä½µãã¦ä¿æãã¾ãã
é¢é£è¨äº
Perl基礎文法最速マスター - Perl入門ゼミ
Route 477(2010-01-25)
PHP基礎文法最速マスター - Shin x blog
2010-01-26
VBA基礎文法最速マスター - いろいろ解析日記
Java基礎文法最速マスター - いろいろ解析日記
Bash基礎文法最速マスター - いろいろ解析日記
Haskell基礎文法最速マスター - think and error
Brainf*ck基礎文法最速マスター - このブログは証明できない。
VBScript 基礎文法最速マスター - CX's VBScript Diary - VBScript グループ
JavaScript基礎文法最速マスター - gifnksmの雑多なメモ
untitled - notes plastiques