☕️

Javaについて学ぶ-その2

に公開

はじめに

こんにちは。
今回も、Javaについて学んでいきましょう。
文字前回の記事を見ていない方は、こちらもぜひご覧ください。

https://zenn.dev/articles/a774851b2a079c

それでは、初めていきましょう。

挨拶をしてみよう

今回の課題はこれです。Javaを使ってパソコンが挨拶をしてくれるようにしましょう。
Zedの右側にバーがあると思います。

右クリックして、New FileをクリックしてGreeting.javaと入力します。

public class Greeting {

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

これが、今回のコードです。

細かな解説をする前に一回実行してみましょう。

この画面の、右下の

を押します。

Last login: Tue Sep 30 13:17:44 on ttys000
MacBook-Pro Java-study %

このようなものが出てくると思います。
この部分をクリックして、

javac Greeting.java

と入力してください。
このようなものが出てくると思います。
この部分をクリックして、

java Greeting

と入力すると

Hello, World!

このようなものが出てくると思います。
そしてみていただくとわかると思いますが、サイドのバーにGreeting.classというものが追加されていると思います。

それぞれのコマンドの意味と仕組み

ここからはさっき書いてもらったプログラムとコマンドについて解説していこうと思います。

public class Greeting{}について

public class Greeting{}は、Javaのクラス定義です。Javaでは、クラスはオブジェクトの設計図のようなものです。クラスは、属性(フィールド)とメソッド(関数)を含むことができます。このクラスは、mainメソッドを含んでいます。mainメソッドは、Javaプログラムのエントリーポイントです。つまり、プログラムが実行されると、mainメソッドが最初に呼び出されます。
というのが一般的な説明ですが、とてもわかりにくいと思います。

もう少し簡単に説明すると、「Greeting という名前の設計図(クラス)を新しく作りますよ」という宣言です。
ですが、これだけだと抽象的すぎてわかりにくいと思うのでもう少しだけわかりやすくするために、それぞれの要素について分解するようにしようと思います。

publicについて

public は、『このクラスは公開されていて、誰でも使えますよ』という宣言だと思ってください。Javaでは、プログラムのメインとなるクラスにはこのpublicを付けるのがお約束です。
そして、public を付けたら、ファイル名とクラス名を同じにするのを忘れないでください。
つまりはじめに解説する大半のものにはこれをつけると覚えておいてください。

classについて

前回の記事でも取り上げた通りJavaとはオブジェクト言語という分類に入ります。これについての解説は、前回の記事を読んでいただけると助かります。
classのみに視点を当ててもらうと、このような解説になります。

多くの主流なオブジェクト指向言語では、『クラス』という設計図をまず定義し、それを基に**『オブジェクト』という実物**を作成するというのが基本的なルールです。
つまり、classとはJavaを学習する場合において必須なものであると考えてもらって構いません。

Greetingについて

これはプログラマーが自由につけることができるクラスの名前です。
一般的に、クラス名の最初の文字は大文字にするという命名規則があります。
基本的には、この大文字にするという命名規則を守っておくと後からの呼び出しの時に統一されているため扱いやすいなどのメリットがあります。

'{}'について

これは、プログラミングを行う時に特に大切な部分で、これで囲っている部分が内容ですよと示すものです。

class Greeting {
    // Greetingクラスの範囲
    // この中に、このクラスに関連するコードを書く
}

こんな感じで簡単に考えてもらえれば大丈夫です。

public static void main(String[] args)について

これはJavaプログラムを動かすための**「お決まりの呪文」であり、プログラムの起動スイッチ**となる特別なメソッドです。
Java仮想マシン(JVM)がプログラムを実行する際、必ずこの形をした main メソッドを探して、そこから処理を開始します。

なんか、わかりにくいですよね。もっとわかりやすいように解説します。

staticについて

「このメソッドはクラスに直接属しています」という意味です。
通常、メソッドを呼び出すには、まずクラスの設計図からオブジェクト(実物)を作成する必要があります。
しかし、プログラムの開始時点ではまだオブジェクトは一つも存在しません。
static を付けることで、オブジェクトを作成しなくてもJVMが直接 ClassName.main() という形でメソッドを呼び出せるようになります。

これは一番理解しにくいものです。私も、いまだにあまり理解ができていません。
とにかく、プログラムが呼び出すために必要としているものとして理解をしてもらえれば問題はないと思います。
ですが、わからないと納得できないという方もいると思いますので簡単に説明すると、
staticがついているものは、static がついたものは、(そのクラスが読み込まれた時に)メモリ上にただ一つだけ作られ、全ての場所から共有される。
と覚えてください。

voidについて

void は、戻り値がないことを示すキーワードです。
main メソッドは、プログラムの開始時に呼び出され、その結果を返す必要はありません。
そのため、void を使用します。

こんなこと急に説明されても訳がわかりませんよね。
私も勉強し始めた時には全くわかりませんでした。
もう少し簡単に説明をすると、mainというものに対しては原則voidを付けてもらえれば正しく動きます。
理屈で説明すると、voidではのちに説明する戻り値というものを返す必要がないものに対してつけるものです。

main()について

メソッドの名前です。JVMはmain という名前のメソッドを開始点として探すように決められています。これは変更できないルールです。
これに関しては、Javaが処理をするために必ず必要なものと理解するだけで大丈夫です。

String[] argsについて

String[] args は、コマンドライン引数を格納するための配列です。
main メソッドは、プログラムの開始時に呼び出され、その結果を返す必要はありません。
そのため、void を使用します。

こんな解説をされてもわかりません。
もっと簡単に説明すると、String[] args は、プログラム起動時に文字列データを受け取るためのものという理解で大丈夫です。

System.out.println("Hello, World!");について

System.out.println("Hello, World!");は、コンソールに"Hello, World!"と表示するためのメソッドです。
これに関してはシンプルで特定の文字を表示するために使うものです。
具体的には、System.out.println()この部分で文字を出力してくださいと指定をします。
そして()の中の文字によって出力する文字列を明記します。この時に、文字を入力する場合は"Hello, World!"のように"によって文字を囲む必要があります。
最後に、;を使うことによってこの処理のストップを指定します。

さいごに

今回は、どのプログラムを学習する時にも必ずやるHello Worldを出力するためのコードを紹介しました。
次回は、もう少しプログラムを書いている実感を得れる四則演算の方法について解説していきます。
もしこの記事が面白かったりわかりやすかった場合は是非バッジなどによる応援をしていただけると助かります。
今回も、ありがとうございました。次回もよろしくお願いします。

Discussion