Developer

【はじめてのJava】ファイル名、拡張子、文字コード【コラム】
2020.09.21
Lv1

【はじめてのJava】ファイル名、拡張子、文字コード【コラム】

はじめてのJava

このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。


コラム

コラムでは、本編の補足などをしていきます。

この記事では、Javaのプログラム作成時の補足を紹介します。

Javaのプログラム作成時の記事はこちら。


目次


コラム:ファイル名とpublic class

classの直後に書かれている部分を クラス名 と言います。実はファイル名はクラス名と一致していなくても大丈夫です。ただし、ソースコード中に「publicが付いたクラス名」が記載されている場合は、クラス名がファイル名になっていないとJavaのプログラムの作成に失敗します
これは、 クラス名の前にpublicを付けてよいのはファイル名とクラス名が一致するときだけ というJavaのルールがあるためです。
(publicについては理解するためにある程度Javaの知識が必要になります。説明に必要な内容を紹介し終えた頃に、別の記事として説明予定です。)

ソースコード作成例のサンプルは以下のようになっていました。

public class Sample{
  public static void main(String[] args){
    System.out.println("Hello World!");
  }
}

この場合、以下のように最初のpublicの記載を消せば「Sample.java」以外のファイル名でもうまくいくことがあります。

class Sample{
  public static void main(String[] args){
    System.out.println("Hello World!");
  }
}

混乱しやすいため筆者はファイル名とクラス名を一致させることを強くお勧めします


コラム:拡張子はファイルの中身と無関係

拡張子はファイルの種類の目安になります。例えばWindowsの場合、ファイルをダブルクリックした際にどのソフトウェアで開くのかは拡張子を基に自動判別します。
javaのソースコードは拡張子を「.java」にしましたが、中身は「.txt」ファイルと同じプレーンテキストです。拡張子を変更しただけでファイルの中身に何か特別な変化が起こるわけではありません。
そう考えると、Javaのソースコードの拡張子は「.txt」でも良さそうですが、そうすると人間がファイル名を見ても、それがJavaのソースコードなのか普通のテキストファイルなのか区別ができません。Javaのソースコードが1つ2つならそれでもいいかもしれませんが、100個のソースコードと100個のテキストファイルが混在していたら…と考えると、Javaのソースコードの拡張子が「.java」であることは、理に適っていると言えます。

また、拡張子は必ずしも正確にファイルの中身を表すとは限りません。例えば画像ファイルの拡張子を「.txt」にすることもできます。Windowsで拡張子が「.txt」となっているファイルをダブルクリックするとメモ帳で開こうとしますが、ファイルの中身はメモ帳で表示できない内容が含まれるため、おかしなデータが並んでいるように見えます。
よく「メールの添付ファイルを迂闊にクリックしてはいけない」と言われますが、その理由の一つは、添付されているファイルは拡張子が偽装された悪意のあるファイルかもしれないためです。


文字コードの設定

文字コードとはコンピュータ内で文字を表す番号のことです。コンピュータ内では、2進数(「0」と「1」)しか使えません。そのためコンピュータ内で文字のデータを管理するために各文字には番号が割り当てられています。例えば「A」は01000001番(10進数表記で65番)などです。
この番号の割り当て方は1通りではなく、何通りもの割り当て方があります。

割り当て方が異なると、同じ番号が違う文字を表してしまいます。インターネットのページやメールが文字化けすることがありますが、その原因の1つは、やり取りしているデータをお互いに違う文字コードで解釈してしまったためです。
これを避けるためにはお互いに文字コードを併せておけばOKです。

プログラムを作成する場合には、書き始める前に使う文字コードを決めておくことで、文字コードが原因のトラブルを減らすことができます。

どの文字コードを使うかはシステムや環境に依りますが、最近は「UTF-8」で統一されていることも多くあります。

Javaのソースコード作成時にUTF-8に設定する場合は、以下の画像のように保存直前の画面で文字コードをUTF-8に変更すればOKです。

もし選択肢に「BOM付き」というものがあってもそちらは選ばないでください。同様に「BOM」というチェック欄があってもチェックは外してください。

 

なお、文字コードに関する説明はJavaのソースコードの作成時に必要な部分だけを手短に載せています。他のプログラムと連携するシステムを作る場合には改めて文字コードについて調べてください。


はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編


java 11 の練習問題一覧はこちら