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.*など、有名というかよく使うクラスから見ていきます。そして、コンソール出力と入力→標準入力、出力は色々と遊べるのでここから見ていこうと思います。
まずは標準入力を受けてそれをコンソールに出力する
プログラムをみてみましょう。
実はこのプログラムはバグがあって
5文字までしか入力が受け付けられません。
緑色が入力した文字です。
1〜6まで入力したのに
コンソールには5までしか表示されません。
これは、上のプログラムでbyte[] moji = new byte[5];
と配列の数を固定しているためです。
なので、入力した分だけの配列を用意しないといけません。
でも、入力した後に配列長を決定することはできないので。。。
じゃーどーするか?→InputSreamReaderを使用します。
Javaでは入力を受け取る処理が実装されていて自分で作らなくても
扱うことができます。標準入力の読み込みを行うためのクラス
それが「InputSreamReaderクラス」と「BufferedReaderクラス」です。
本当は、それ以外にも使用できますが。。。
ここではサンプルということで。。。
こんな感じで使用します。
java.ioパッケージはファイルの読み込みや出力も扱えます。
興味があれあばこちらをどうぞ
でわでわ。。。
標準入力について補足
https://zenryokuservice.com/wp/2018/08/13/java-doc読解-〜system-in〜/
ミニゲームを作ってみた
https://zenryokuservice.com/wp/2018/05/20/java-basic-ミニゲーム作成-〜コンソールゲーム〜/
<問題1>
標準入力を受け取り、コンソールに出力する
プログラムを作成してください。
<問題2>
作成したクラスの構成を考えてイメージ
できれば「絵」にしてください。
【ヒント】
全てのクラスは「Objectクラス」を継承しています。
なので、
「Objectクラス」←「作成したクラス」となります。
そして作成したクラスにはフィールド変数がありますか?
メソッドは何がありますか?
というのを整理してみてください。