見出し画像

04. コーディングの中身を知る

※無料で読めます

プログラミング未経験でも大丈夫?

java でのコーディングはどうやるの?

java で作りたいものを作る方法は?

初めてjava を学習してみようという方に向けた記事です。

java 学習のコトハジメになります。第二弾です。

プログラミングに初めて触れる時は混乱します。

調べてみたけど、結局よく分からないなんてこともあります。

せっかく始めようと決意したのに、心が折れるのはもったいない

今は無料で学べるコースもあるけれど、あまり信用できない方。
最初で躓きたくない方。
難しい言葉ばかりで眠くなる方。

そういったことがないように、私なりの言葉でまとめていきます。

アジェンダ

こういった学習では、難しい言葉や固い言葉での説明が多くなりがちです。
そういった、読んでいて眠くなることがないように、タイトルなどを工夫していきます。

今回のゴール
・java でコーディングができる
・やりたい処理を作ることができる

やらないこと(別の記事で書きます)
・変数や型
・複雑な処理を作る


0. 世界の理を知らねば歩くことも難しい

一つだけコーディングをするうえでのルールがあります。それは、

「処理・定義がここまでですよ」という部分で、; (セミコロン)を書く。

ということです。
コーディングをしたことがある方なら、
「当然すぎて…」という内容かもしれません。
けれど、初めのうちはそういう内容も知らなかったな…と思い出しました。

基本的に、
・処理は一行に複数書ける。
・処理は複数行に改行をしたものでも書ける。
という特性があります。ですので、下記はエラーになりません。
(まあ、あまりやらないんですけど…)

public static void main(String[] args) {
  System.out.println(

    "ああああああ"

  )

  ;
  System.out.println("いい");System.out.println("(」・ω・)」うー!(/・ω・)/にゃー!");
}

このルール(処理の終わりが ; )じゃない・いらないよ。
という言語もありますが、java や javascript, C# では必要です。
java を学習される方は、覚えておいてください。


1. 魔法を紐解けば自在に発動できる

public static void main(String[] args) {
}

これはメインメソッドです。
コール&レスポンスのように解説していきたいと思いますよ。

アクセス修飾子、public
どこからでも呼び出せる宣言、 static
戻り値がない、void
メソッド名、 main !
メソッドに渡す引数(ひきすう)(String[] args)
どこまでがその処理の内容かを表す、 {}

・・知らない単語がたくさんありますね。覚えるのはこちらです。

1. メソッド
2. アクセス修飾子
3. 戻り値
4. 引数


2. 意味のある言葉が重なって魔法になる

メソッド とは、やってほしい処理をまとめたものです。
端的に言ってしまうと、作りたいものを実現するための手段です。

戻り値 とは、処理の最終結果としてどうなるかを表しているものです。
例えば、計算をするメソッドであれば、その計算結果が欲しいですよね。
どういう計算をするのかは分かりません。けれど、計算をするのだから、数が最終結果として導き出されることだけは当然かと思います。
なのでメソッドに対して、
「このメソッドは呼び出すと数値がもらえるよ」という宣言をします。

引数 とは、処理を行うために必要な何でも良い値(変数)です。
例えば、足し算をするメソッドを作るとしましょう。
1+1、1+10、1+99、1+200…
やりたいことは足し算なのですから、x+y でも同じことですね。
学校の数学みたいな感じになってしまいましたが、
x = 1 、y = 10 であれば、 1+10 となり足し算ができますね。
なのでメソッドに対して、
「このメソッドは呼び出す際に数値を受け取って処理ができます」という宣言をします。


3. 魔法に属性があるように・・

アクセス修飾子 とは、
どこまでなら呼び出されることを良しとするかの設定です。
どこでもOK! ⇒ public
関連するやつ同じ場所にいるならOK! ⇒ protected
同じ場所にいるならOK! ⇒ 何も書かない(package private と言う)
・このクラス内しかダメ。隠れてる。 ⇒ private
という風に、種類が決まっています。

では、どういう使い方をするのか見ていきましょう。

public static void main(String[] args) {
}

public void method1() {
}

public String method2() {
  return "";
}

public void method3(int number) {
}

protected void method4() {
}

void method5() {
}

private void method6() {
}

public static void staticMethod1() {
}

public static String staticMethod2() {
  return "";
}

static void staticMethod5() {
}

メインメソッドだけはメソッド名がmainに決まっていますが、
他のメソッド名は、自由につけることができます
ただし、数値から始まる名前はつけることができません。ご注意ください。


Let's お遊びTime

試しに、色んなメソッドを作ってみてください。
メインメソッドから呼び出す場合は、static をこき使ってください。
※ 何をやれば良いか分からない方は、下記をお試しください。
1. メインメソッドを一つのクラスの中に二つ作れないの?
2. メソッド名が被ることはできるの?(引数の数を変えたりして試してみる)
3. アクセス修飾子を色々試してみる(他のクラスも作って呼び出してみる)
 ※呼び出せないなら、static をつけてみる
4. 引数や戻り値 を色々試してみる
5. 数値を引数で渡し、メソッド内で数値を変えてみる。
6. 配列を引数で渡し、メソッド内で配列の中身を変えてみる。

画像1

色々できましたか・・?
こういった自分で試して、遊んで、学ぶのは大事です。
好きなキャラクターの台詞を出力したり、
推しの名前を出力してみたり。
誰に見せるわけではないのです、自由に遊びましょう。


Let's 発展お遊びTime

試しに、色んなメソッドを作ってみてください。
※ 何をやれば良いか分からない方は、下記をお試しください。
5. 数値を引数で渡し、メソッド内で数値を変えてみる。
6. 配列を引数で渡し、メソッド内で配列の中身を変えてみる。

上記を試してみたでしょうか・・?
5 と 6 に関して、もう一つ試してほしいことがあります。
既に書いている方もいらっしゃるかもしれませんが、下記のメソッドと同じようなものを作ってほしいのです。

public int[] copyAndSum(int[] argNumArray) {
  int[] result = argNumArray;
  result[0] = argNumArray[0] + 10;
  return result;
}

public int copySum(int argNum) {
  int result = argNum;
  result = result + 10;
  return result;
}

やりたいことは、
「引数にあるものを一度変数にコピーして、その値を足す」
ということです。それを実現するためのメソッドを作ろうとしています。

では、何を確認してほしいのかと言うと、
メソッドの戻り値メソッドに渡した引数の中身です。

どうなりましたか・・?
copyAndSum() に渡した値、変わっていませんか・・?

本来やりたかったことは、
1. 引数の値をコピー
2. コピーした値だけを変更
です。しかし、引数の値も変わってしまいました。
凄く困ります!!!
...これが、実際の仕事でも起こる可能性があります(残念ながら)。

copySum() の方は大丈夫なのに、
なんで、copyAndSum はこうなってしまうのか。

これには渡されたもののが関係しています。
型の種類によって、こういったことが起きてしまったんです。


さいごに

java のコーディングの全ては、
メソッドを作り、その中に処理を書いていくことです。

まだ、型やクラスに関して学んでいませんが、
実は、ここまででコーディングができるようになっています。

次回、クラスに関しての説明をしていきたいと思いますので、よろしければご覧になってください。

有料パートに関して
・今回の記事のまとめを書いています
 ※必須ではないけれど知っておいた方が良い知識も添えています
・copyAndSum() で問題ない形での実装方法を書いています
・具体的な書き方と共に詳細説明をしています

目次に戻る


ここから先は

1,734字 / 1画像

¥ 200

いただいたサポートは、今後の創作活動に役立てさせていただきます。