こんばんわ。

 

寿司打ってありますよね。タイピングをするやつ。

 

 

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

 

これですこれこれ。懐かしいと思う人も居るんじゃないでしょうか。?

 

めちゃくちゃはまってまして、頑張ってます。(笑)

 

 

 

結果はギリギリだったんですが、これから毎日やっていって記録を伸ばしていきたいと思います。毎日頑張るぞ!

こんばんわ。

 

今回もテキパキ行きたいと思います。

 

使っている参考書です。是非。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

 

 

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

 今回のポイント

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

 ・データ型は大きく分けて「プリミティブ型」「参照型

 ・ソースコード内の値の事を「リテラル」という

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

 今回から概念の話では無く、知識や技術について取り上げて行きます。

 

 まずはjavaで使用するデータ型を取り上げます。

 

 

 そもそもデータ型とは、データの扱い方を指定する為に必要な情報です。同じ「2」でも、データ型によっては「数値」「文字」として扱うかが異なります。

 

 javaはデータ型を大きく「プリミティブ型」と「参照型」に分けることが出来ます。

 

 プリミティブ型(基本データ型)・・・数値、真偽値、文字を扱う。

 

 参照型・・・オブジェクト型、列挙型、配列型を扱う。

 

 違いは、値そのものを扱うか、インスタンスへの参照(リンク)を扱うかになります。

 ※ 参照型はまだやりませんが、プリミティブ型はこれから先、たくさん出てくるので覚えときましょう。

 

 プリミティブ型は8個の決まった型があり、それぞれに入れることが出来る値が決まっています。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

 byte  / 8ビット整数 -128~ 127

 short  / 16ビット整数 -32768 ~ 32767

 int   / 32ビット整数 -2147483648 ~ 2147483647

 long  / 64ビット整数  -9223372036854775808                  ~ 9223372036854775807

 float  / 32ビット単精度浮動小数点数

 double / 64ビット倍精度浮動小数点数

 char  / 16ビットUnicode文字 ¥u0000 ~ ¥uFFFF

 boolean / true , false (真偽値)

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

また、ソースコード中に記述する値の事を、「リテラル」と呼びます。

 

  デフォルトならば

   整数値は「int型」

   浮動小数点数値であれば「double型」

   真偽値であれば「boolean型」

   文字なら「char型」 となります。

  javaのリテラルの種類は上記の4つです。

 

 値をそのままにし、データ型を変えたい場合は、明示的にコードを変更しなければいけない時があります。

 データが大きいものから小さいものは、「データを削れば大丈夫」という認識で自動で型変換されるのですが、小さいものから大きいデータに、例えば「int型からlong型」「int型からfloat型」などに変換する際にはルールが存在します。

 

 long型に変換する際には、「50L」のように「L」「l」を。

 float型に変換する際には「15.0F」のように「F」「f」を。

  リテラルの後ろに付けます。「接尾辞」と呼ばれているもので、明示的にデータの型変換を行います。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

 また、整数リテラルに関しては、10進数の他に、8進数、16進数。さらにJava SE 7からは、2進数も扱えるようになりました。これらもルールにしたがって明示的に記述する事が出来ます。

 

 8進数には「01115」のように「0」を。

 16進数には、「0x4E」のように「0x」を。

 2進数には「0b1110110101」のように「0b」を。

こちらは先頭に決められた単語を並べる必要があります。「接頭辞」と呼ばれます。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

 

今回はここまでにします。疲れちゃうんでね。次にいきましょう。

 

 

 

 

 

 

 

 

 

こんばんわ。

 

今回のポイント

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

・javaの4つの原則は「カプセル化」「データ隠蔽」「抽象化」「情報隠蔽

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

 今回は少しテキパキとやって行きましょう。

 前回最後に触れたjavaをコーディングしていく際の考え方「オブジェクト指向」での目的・・「変更に強い設計」を目指す為に必要な要件は下記の2つでした。
 
・コードの変更の際に変更範囲が分かり易いこと。
・変更作業の際に工程を出来るだけかけないこと。
 
 この2つが満たされる変更に強い設計を作るためにjavaには4つの基本原則があります。それが今回紹介する
 
「カプセル化」「データ隠蔽」「抽象化」「情報隠蔽」
                         の4つです。
 
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
 
カプセル化
 
 カプセル化は、関係するデータと、そのデータを使う処理を一緒のくくりでひとまとめする事です。
このひとまとめにした部品の事を「オブジェクト」といい、プログラムの基本の単位になります。データの変更の際に、「そのデータを使う処理は同じくくりにしか無い」という状況を作る事が出来る為、変更に対する影響の範囲がすぐに特定する事ができます。
 
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
 
データ隠蔽
 
 データ隠蔽はカプセル化とセットで行うべき設計とされています。
あるオブジェクトのデータに対し、他のオブジェクトから直接アクセスされてしまう事があったら、データの変更などの影響がオブジェクト内だけでは止まらなくなります。
 そのような事を防ぐために他のオブジェクトの処理からオブジェクト内のデータにアクセス出来ないようにアクセス制限をする事を「データ隠蔽」といいます。
アクセス制限には「アクセス修飾子」を使うことで実現が出来ます。
 
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
 
抽象化
 
 javaを実用化する時には、沢山のオブジェクトを扱います。多分。実用した事ないけど。1つ1つオブジェクトの中身を分かりやすく纏めることに成功しても、オブジェクト同士が連携し合って複雑になってしまっては本末転倒です。
そこで、「抽象化」という考え方を使う事で、全体を単純に捉え、理解を簡単にする事が出来ます。抽象化とは共通する部分だけを取り上げ、違う部分を見ないようにする考え方です。
 それぞれ共通点だけを見ることで、とてもシンプルな構造となります。オブジェクト指向では「ポリモーフィズム」という技術で実現が出来ます。
 
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
 
情報隠蔽
 
 最後に情報隠蔽です。データ隠蔽とは全くの別物なので注意が必要です。
 
 オブジェクト指向は長い間の保守に長けています。
長い間、開発を続けていると、抽象化にて一度「見ないもの」として扱ったデータを変更しなければならない場合もあります。何度も手をつけてしまえば、構造がより複雑になる事が予想されます。
 そういう可能性を考え、1度「見ないもの」にしたものに、アクセス出来ないように制限します。何を公開させるか、非公開にしてアクセス制限をかけるか。このアクセス制限が「情報隠蔽」と呼ばれるものです。
 
また、設計意図に反した利用や変更を防ぐ為に、アクセス制限をすることも重要な役割です。
 
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
 
 
 上記の4つを満たすことで、変更に強いプログラムを作る事が出来ます。
これから触れていくプログラミングのコードを作成する際には、基本原則を意識していきながら作っていくことにしましょう。しかし、そもそもどんなものを使ったら基本原則に沿っていく事が出来るのが分からなければ、身も蓋もないので学習を深めて行きましょう。
 
次回はjavaのデータ型や文字列などに触れて行けたらと思います。では、ぴーす。