Takunojiのプログラミング・プレイグラウンド(遊び場)

Javaプログラミングを基本にして、ゲーム作成に必要なことの調査結果、やったら面白そうなことなどを記載します。プログラミングのススメ的なことも記載します。プログラミングで楽しく遊ぶために色々と記載して行きます。

Java Basic クラスとは InputSreamReader 〜Step2_1〜

前回で基礎文法は大体理解しました。

今回はJavaのクラスについてやります

 

クラス(class)とは以下のものを親に持ったクラスです。

オブジェクト(Object)クラス、データ型は参照型です。→ つまりは「クラス」Objectクラスの子クラスという事。

具体的には、String, Integer, Double ...などの既に用意されているクラスや、自分で作ったHogeクラスなどは、書いてないけど、Objectクラスを継承しています。こういう時には「暗黙的にObjectクラスを継承している」なんて書き方をする本が多いように思います。

内訳としては、コンパイラがそのように解釈して実行するからです。なので、自作クラスには作っていないメソッド「equals(), getClass() ...」などのメソッドが使用可能です。クラスの中に実装した時は、オーバーライドする事になります。

詳細はこちらです。

Java Basic クラスとは InputSreamReader〜Step2_1〜 – PGボックス

<クラスの持っているもの>

・フィールド変数

・メソッド

Javaの場合は全てObjectクラスを

   親に持ちます。

 

「親」という言葉は気にしないで下さい

「よくわからんがとにかく親がObjectクラスなんだな!」って認識でOK🌟

初めに作成したクラスにはフィールドなんて書いてないよ?と疑問に思うかもしれませんが親クラスが持っています。

 ここも「よくわからんがとにかく親が持っているんだな!」って認識でOK🌟

 

写経して、動かして、理解して…このステップを踏む事で使いこなすまでの時間が短くなります。(多分…)

 

クラス→オブジェクト指向の考え方は

時間かけてゆっくり理解してください。

変に理解すると、プログラムがつまらなくなってしまうかも?

 

というわけで、こっからが本題になります。

まず、既に提供されている

クラスを使うとこから始めます。

java.*パッケージのクラスです。

具体的には、java.lang.*(java.langから下のクラス全部の意味)や、java.util.*など、有名というかよく使うクラスから見ていきます。そして、コンソール出力と入力→標準入力、出力は色々と遊べるのでここから見ていこうと思います。
 
まずは標準入力を受けてそれをコンソールに出力する
プログラムをみてみましょう。

f:id:Takunoji:20180514183704p:plain

実はこのプログラムはバグがあって
5文字までしか入力が受け付けられません。

f:id:Takunoji:20180514183813p:plain

緑色が入力した文字です。
1〜6まで入力したのに
コンソールには5までしか表示されません。

これは、上のプログラムでbyte[] moji = new byte[5];
と配列の数を固定しているためです。

なので、入力した分だけの配列を用意しないといけません。
でも、入力した後に配列長を決定することはできないので。。。

じゃーどーするか?→InputSreamReaderを使用します。
Javaでは入力を受け取る処理が実装されていて自分で作らなくても
扱うことができます。標準入力の読み込みを行うためのクラス
それが「InputSreamReaderクラス」と「BufferedReaderクラス」です。

本当は、それ以外にも使用できますが。。。
ここではサンプルということで。。。

f:id:Takunoji:20180514194439p:plain

こんな感じで使用します。
java.ioパッケージはファイルの読み込みや出力も扱えます。
興味があれあばこちらをどうぞ

java.io (Java Platform SE 8)


でわでわ。。。

標準入力について補足

https://zenryokuservice.com/wp/2018/08/13/java-doc読解-〜system-in〜/

 

ミニゲームを作ってみた

https://zenryokuservice.com/wp/2018/05/20/java-basic-ミニゲーム作成-〜コンソールゲーム〜/


<問題1>
標準入力を受け取り、コンソールに出力する
プログラムを作成してください。

<問題2>
作成したクラスの構成を考えてイメージ
できれば「絵」にしてください。
【ヒント】
全てのクラスは「Objectクラス」を継承しています。
なので、
「Objectクラス」←「作成したクラス」となります。
そして作成したクラスにはフィールド変数がありますか?
メソッドは何がありますか?
というのを整理してみてください。