<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>プログラムの書き方</title><revhistory><revision><revnumber>14</revnumber><date>2012-03-22 01:30:57</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>13</revnumber><date>2009-09-30 11:17:38</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>12</revnumber><date>2008-10-07 10:57:02</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>11</revnumber><date>2008-10-03 08:25:56</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>10</revnumber><date>2008-10-03 07:45:38</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2008-10-03 05:19:37</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2008-10-03 05:15:56</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2008-10-03 05:06:58</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2008-10-03 04:45:30</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2008-10-03 04:44:26</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2008-10-03 04:41:23</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2008-10-03 04:35:03</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2008-10-03 04:33:14</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2008-10-01 02:50:23</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>プログラムの書き方</title><section><title>文法どおりに書く</title><itemizedlist><listitem override="none"><para>守らないとコンパイルできなかったり、実行できなかったりします。 </para><para>文法は<emphasis role="strong">構文図</emphasis>を使って説明します。 </para></listitem></itemizedlist></section><section><title>慣習にしたがって書く</title><itemizedlist><listitem override="none"><para>文法として規定されているのではありませんが、プログラムを読みやすくするために、 次のような慣習があります。 できるだけ従いましょう。 </para></listitem></itemizedlist><para>インデント </para><itemizedlist><listitem><para>空白を使って位置ぞろえをして読みやすくすることを言います。 </para></listitem></itemizedlist><para>名前の付け方 </para><itemizedlist><listitem><para>1文字目は英字、２文字目以降は英字または数字。 </para></listitem><listitem><para>大文字と小文字は区別される。 </para></listitem><listitem><para>$と_(アンダーバー)は英字と同じ扱いだが、使い方は慣習で決まっている。 </para></listitem><listitem><para>普通の変数などはアルファベット小文字を使って分かりやすく、意味のある名前にします。 </para><itemizedlist><listitem override="none"><para>goukei, takasa, kouho1, kouho2 </para></listitem></itemizedlist></listitem><listitem><para>i, j, k は繰り返しに用いる。 </para></listitem><listitem><para>クラス名は１文字目をアルファベット大文字にします。 </para><itemizedlist><listitem override="none"><para>Lesson1, Onigiri, Tokei </para></listitem></itemizedlist></listitem><listitem><para>定数はすべて大文字にします。 </para><itemizedlist><listitem override="none"><para>SEIGEN, XSIZE </para></listitem></itemizedlist></listitem></itemizedlist><para>コメント </para><itemizedlist><listitem><para>プログラム先頭のコメントとして、プログラムの情報を書くようにしましょう。 </para></listitem><listitem><para>数行にわたるコメントは <emphasis role="strong">/</emphasis><emphasis role="strong">*</emphasis> と <emphasis role="strong">*</emphasis><emphasis role="strong">/</emphasis> ではさんで書きます。 </para></listitem><listitem><para><emphasis role="strong">//</emphasis> から行末までもコメントです。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>構文図</title><para>構文図は文の正しい書き方を表すための図です。 <inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9?action=AttachFile&amp;do=get&amp;target=parts1.png"/></imageobject><textobject><phrase>parts1.png</phrase></textobject></inlinemediaobject>、<inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9?action=AttachFile&amp;do=get&amp;target=parts2.png"/></imageobject><textobject><phrase>parts2.png</phrase></textobject></inlinemediaobject>、<inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9?action=AttachFile&amp;do=get&amp;target=parts3.png"/></imageobject><textobject><phrase>parts3.png</phrase></textobject></inlinemediaobject> と矢印を使って表します。 </para><itemizedlist><listitem><para>矢印に示す順に入り口から出口までたどることで、文法的に正しい結果が得られます。 </para></listitem><listitem><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9?action=AttachFile&amp;do=get&amp;target=parts1.png"/></imageobject><textobject><phrase>parts1.png</phrase></textobject></inlinemediaobject>または<inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9?action=AttachFile&amp;do=get&amp;target=parts2.png"/></imageobject><textobject><phrase>parts2.png</phrase></textobject></inlinemediaobject>の部分はその中に書かれた文字のとおりに書きます。 </para></listitem><listitem><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9?action=AttachFile&amp;do=get&amp;target=parts3.png"/></imageobject><textobject><phrase>parts3.png</phrase></textobject></inlinemediaobject>の部分には対応する内容を書きます。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>クラス</title><para>Javaのプログラムはクラスの集まりです。 </para><para>１つのファイルに１つのクラスの定義を書くのが普通の方法です。 別の方法については、機会があれば説明します。 </para><para>クラスの書き方は次の構文図のとおりです。 ファイル名はクラスの名前に .java をつけたものとします。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9?action=AttachFile&amp;do=get&amp;target=class.png"/></imageobject><textobject><phrase>class.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>メソッドの定義</title><para>Cの関数に相当します。オブジェクト指向プログラムではメソッド呼びます。関数以外の役目もあります。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9?action=AttachFile&amp;do=get&amp;target=method.png"/></imageobject><textobject><phrase>method.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>mainメソッド</title><para>コマンド </para><itemizedlist><listitem override="none"><screen><![CDATA[ > java クラス名]]></screen></listitem></itemizedlist><para>を入力するとJVM上で、指定クラスのmainメソッドが実行されます。 </para><para>実行するためには、対応するクラスの修飾子は public であり、mainメソッドの修飾子は public と static の２つが指定されていなければなりません。 </para><para>したがって、mainメソッドをもつクラスの定義はつぎのようになります。 </para><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[class]]></token><![CDATA[ ]]><methodname><![CDATA[Lesson1]]></methodname><![CDATA[ {]]>
<![CDATA[        ]]><token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[static]]></token><![CDATA[ ]]><token><![CDATA[void]]></token><![CDATA[ ]]><methodname><![CDATA[main]]></methodname><![CDATA[(]]><methodname><![CDATA[String]]></methodname><![CDATA[[] ]]><methodname><![CDATA[args]]></methodname><![CDATA[) {]]>
<![CDATA[                ...]]>
<![CDATA[                ...]]>
<![CDATA[        }]]>
<![CDATA[}]]>
</programlisting><para>この例ではクラス名がLesson1ですので、ファイル名はLesson1.javaになります。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>演習</title><para>文字を表示するプログラムを作成し、コンパイル実行できることを確かめなさい。 </para><itemizedlist><listitem override="none"><para>文字を表示するメソッド(関数)の１つにSystem.out.printfがあります。 </para><screen><![CDATA[ System.out.printf( 内容 );]]></screen></listitem><listitem override="none"><para>内容の部分の書き方はCと同じです。 </para></listitem></itemizedlist><para>ファイル名は Lesson1.java とすること。 </para><para>(1) 実行すると次の２行の表示を行うプログラムを作成しなさい。 </para><itemizedlist><listitem override="none"><screen><![CDATA[abcdefghijklmnopqrstuvwxyz
!@#$%^&*()<>[]{}\:;'"]]></screen></listitem></itemizedlist><para>(2) linux, windowsの一方でプログラムを作成コンパイルし、もう一方で実行しても結果が同じになることを確かめなさい。 </para></section></section></article>