粛々とした生活

2020年4月にエンジニアに転職しました。日々の勉強したことのアウトプットや雑記などを書きます。更新頻度は超低いです。

プロゲートjavaⅣ

朝6時に起きてプロゲートをやる。

多くの人が挫折するというオブジェクト志向にとりかかる。いよいよコードがややこしくなってきてちんぷんかんぷん。

午前は一周して、午後にもう一周。新しいことを覚えるのはとてもとても辛い。

 

 

オブジェクト指向とは?

プログラムの世界に現実世界の「もの」(オブジェクト)に似た物を作り、そのオブジェクトを中心にプログラミングを組み立てるという考え方。この項では様々な用語が出てきました。

 

クラスとインスタンス

インスタンンスはオブジェクトの別名。

クラスはインスタンスの設計図にあたります。

インスタンスは情報や振る舞いを持ちます。

これらの情報を設計図であるクラスに定義していきます。

 

インスタンスフィールド

インスタンスの情報にあたるもの。

例えば現実の人間なら名前や身長、体重についてのこと。インスタンスフィールドといっても情報を格納しておく変数にすぎません。

変数定義の前にpublicがつきます。

public データ型 変数名; 定義

例 public String mame;

インスタンスフィールドへのアクセス

インスタンス名.フィールド名(変数)

例 Person person1 = new Person();

        person1.name = "Suzuki";

        System.out.println(person1.name);

 

「this」

メソッド内でインスタンスフィールドにアクセスするために用いる変数。

クラス内のメソッド定義の中でのみ使える。

thisはメソッドが呼ばれたときに、そのメソッドを呼び出してるインスタンスに置き換えられる。

コンストラク

newを使ってインスタンスが生成した後に自動で呼びだされる特殊なメソッド。

定義方法は1.戻り値を書かない 2.クラス名と同じにする。

またコンストラクタでは他のコンストラクタを呼び出すことができます。

コンストラクタの先頭でthis()

 

インスタンスメソッド

インスタンスの振る舞いにあたるもの。

挨拶をしたり話したりといった動作を与える。

メソッドとは情報をまとめる部品のようなものと前回言いましたが、インスタンスのプログラミング上での振る舞いもメソッドと呼びます。

public 戻り値の型 メソッド名() 定義

例 public void hello() {

ここではstaticは使いません。

なぜならstaticはクラスへの定義にしか使わないからです。

 

クラスフィールド

フィールドやメソッドはクラスにも使えます。

public static データ型 変数名

staticはクラスの定義の時に使います。

例えば次の例は何回インスタンスを生成したか数えるプログラムの例です。

cIass Person {

     public static int count; ←クラスフィールド

     public String firstName; ← インスタンス

     public String IastName; ←  フィールド

null

値が何もセットされていないフィールドにはnullという何もないという意味の値が入ってる。

カプセル化

自分がクラスをつくる際に他の人が安心してクラスを使えるように、使ってほしい機能は公開し、使ってほしくない機能は隠す。

基本的にはフィールドはprivateカプセル化

メソッドはpublicでアクセス自由にする。

ゲッター

フィールドをprivateにした上でクラス外から安全にフィールドの値を取得するために、フィールドの値を返すだけのメソッド。これをゲッターという。getフィールド名で使用。

セッター

privateなフィールドを変更するメソッドをセッターと呼ぶ。setフィールド名で使用。

 

用語がわからなすぎてメソッドってなんだっけ?とかクラスってなんだっけ?フィールドってなに?…みたいに全然学習が進まない。

もっとシンプルに物事を考えたいよ。

明日は道場をやって前回、前々回の復習をやっていこうと思います。

さて、今日の勉強は終わり!

ブログでのアウトプットも合わせると、6時間くらい?は勉強したかも。

もっと勉強したいんですけどプログラミングの勉強と歴史や英語の勉強って同じ勉強でも全然違うと思いません?

プログラミングの勉強って未知の物に対して必死に咀嚼して?マークが浮かびまくりながらも無理くり進めていくから勉強のストレスが半端ないんです。

僕が今とにかくやらなければならないのは習慣化。今はニートなので時間はありますがまたいつかは絶対働かなきゃならんのです。

時間がない制約の中でもIT業界に潜り込むとなれば日々の勉強や新しい技術には触れ続けなければなりません。勉強を習慣化していつかは東京に上京するぞ!年収を上げるぞ!AIに仕事や下の世代の人間から仕事を奪われないように勉強していかなければ…

といってもやっぱり集中が切れて横になって四股ったりしちゃうのでそれをどうにか治したいな。