☆ Javaの歴史 JDK1.0→JDK1.1 →(大幅改良 文法の拡張やAPIの追加)J2SE1.2→J2SE1.3→J2SE1.4 →(大幅改良) J2SE5.0(1.5)→J2SE6.0(1.6)→J2SE7.0(1.7) //大掛かりな改良だったため、1.5ではなく5.0を使うことになった ⇩ 〈1.4以前のJavaでは何が使えないのか〉 ① …
☆ エラーは出ないが動作がおかしい ・プログラムが動き続けて終わらない (実行すると、動き続けて止まらない) 原因 ① プログラムはユーザーからの入力を待っている状態。 java.util.Scannerなどを使ってキー入力を試みるとこの状態になる。 ② プログラムは無…
☆ プログラムが実行できない ・ 「java.lang.NoclassDefFoundError」(その1) 原因 java Main.javaで実行している (実行する時は拡張子(.java)はいらない) 解決策 「java.Main」のように拡張子なしで修正 ・「java.lang.NoclassDefFoundError」(その2) 原因…
☆ コンパイル出来ないとき ・「return文が指定されていません」 「このメソッドは型~の結果を必ず返す必要があります」 原因 戻り値を返すように宣言されたメソッドの内部で 「戻り値を返さない可能性がある場合」 ex int型を返すメソッドの中身 if(条件式)…
☆ エラー種類 ・「";"がありません」 原因 セミコロンと似ている文字を入力している可能性あり 解決策 :(コロン)やi(小文字のアイ)を入力していないか確認。また、誤って全角文字の;になってないかも確認する ・「構想解析中にファイルの終わりに移りました…
☆ エラー ① 「何が悪いのか、どこが悪いのか」という指摘は、エラーメッセージに書いてある →まずはエラーメッセージをよく読む事が大事 ② 原因を理解した上で修正する (なぜなら、原因が分からないまま修正して動いたとしても、また同じエラーに悩まされる…
☆ スマートフォンアプリを作る アプリを作るには、それぞれの機種専用の「プログラミングで利用するクラス」がSDKとして提供されており、 それら専用のクラスを用いてプログラミングを行う必要がある 「java+SDK」の知識が必要 ☆ Webアプリケーション 利用者…
☆ ウィンドウアプリケーションを作る プログラムの見た目・操作性のこと・・・"ユーザーインタフェース" 〈文字ベースのインタフェース・・・CUI〉 ex. メインメニュー 1 会員登録 2 会員検索 〈デザインベースのインタフェース・・・GUI〉 ex. 「窓枠があっ…
☆ データベースを操作する データベースとは? →データを整理して格納したソフトウェアとデータの集合体 (格納したデータを高速で取り出せる) データベースに格納されている表の中の値を取得したり、書き換えるためには 「SQL」というデータベース専用の言語…
☆ インターネットへのアクセス →インターネット上Webページの内容を取得する(java.netパッケージを使用) ex. import java.io.InputStream; import java.net.URL; //java.netパッケージ public class Main{ public static void main(String[ ] args){ URL u=n…
☆プログラムからコンピュータの中にあるファイルを読み書きする場合 一度に一気に読み込んでいるわけではなく、ファイルを少しずつ読み込んでいる (一度に読み込むとメモリが足りなくなるから) コンピュータからプログラムへ読み込んでいる最中に文字が通…
☆ 例外的状況をJVMに報告する 例外状況を監視しているJVMに対して私たちが「~Exceptionという例外状況になりました」と報告することができる →これにより、自分が作成したクラスに例外状況が発生した際に、きちんと例外処理が発生するかを事前にチェックす…
☆ 例外の伝播 ・mainメソッド内ではsubメソッドを呼ぶ ↑ ・sub( )メソッド内では、subsub( )メソッドを呼ぶ ↑ ・subsub( )メソッド内では何らかの例外が発生する可能性がある もし例外が発生する可能性のある箇所にtry-catch文の記述がなかった場合、 呼び出…
☆ 例外 プログラムを設計する際は、実行時に想定外の事態が発生する可能性があることを考慮に入れておく必要がある エラーを起こすことは絶対にダメ! Javaのエラーは大きく分けると3種類 ① 文法エラー(syntax error) どこかの文法が間違っている ex. セミ…
☆ Javaで用いられる型(変数を入れる箱)の種類 →「基本データ型」「参照型」の2種類 基本データ型に対応するクラスのことを、ラッパークラスという ラッパークラスとは、基本データ型をクラス型に変換させてくれるもの (クラスにすると、インスタンス化が出…
☆ Javaルール 親なしのクラスは定義出来ない …では、extends(継承)で親クラスを指定していないクラスは、 いったいどのクラスを継承して定義されているのか? 実は、あるクラスを定義する時、extendsで親クラスを指定しなければ、java.lang.Objectを親クラス…
Javaにはクラスを定義しなくても、皆がよく使うものはもともとクラスとして入っている→標準クラス API この標準クラスの中にクラスの中身は既に定義されているので、 あとはMainから呼び出すだけでOK その中でもよく使うもの 日付情報を扱うーDateクラス ex.…
なぜ多態性を利用するのか? 例えば、5人のキャラ(違う職業)のHPを同時に回復したい時 多態性を使わないと、、、 1つの職業ずつ回復させないといけないので、 コードに重複が多くなり、記述が面倒 もし新たにコードを追加しないといけない場合(全部の職業…
〈ザックリとした型に代入した後、入れたインスタンスと同じ型に再び戻したい時〉 Character c=new Wizard; ↑WizardをCharacterと見なす これによってcに対してCharacterクラスにはない(Wizardクラスにしかない)メソッドのfireball( );は呼べなくなる (Java…
〈多態性利用時のJVMによる中身の判断〉 ザックリ捉えた変数の箱にインスタンスを代入した時点で、 JVMはその変数としか中身を判断できなくなってしまう ex. public class Main{ public static void main(String args[ ]){ Wizard w=new Wizard( ); Characte…
〈多態性〉 多態性を曖昧なイメージで説明すると 「あるものをあえてザックリ捉える」ことでさまざまなメリットを享受しようとする機能 キーワードは 「ザックリ」 ex. 車の車種 トヨタ ホンダ マツダ 厳密に言えばそれぞれ別の物体(車種)であるが、全部を「…
〈インターフェース〉 継承されたクラスは元をたどっていくとどんどん抽象的になっていく ex. Goblinクラス int hp; attack( ){ 中身確定}; int mp; run( ){中身確定}; ↓ (抽象メソッドが増える) WalkMonsterクラス int hp; abstract attack( ); 中身は未定 …
〈高度な継承〉 まず前提として 親クラス…曖昧なクラス 子クラス…具体的なクラス これまでの継承 目の前のプログラム開発に必要なクラスを作る開発者の立場で考える (既存クラスを継承して子クラスを作る人) 開発チームの中で作るクラスの中から共通点がた…
☆ 正しい継承 「is-aの原則」と言われるルールに則っている継承 is-aの原則とは? 子クラスは親クラスの一種であるということ ex. 親 Hero 子 SuperHero SuperHeroはあくまでHeroの一種 ☆ 間違った継承 概念としてis-aの関係がないにも関わらず、継承を使っ…
〈子クラスから親クラスのコンストラクタの呼び出す〉 インスタンス作成の際のJVM内部の動作 new superHero( ); // mainメソッドからインスタンスを作れという命令が送られる ① まず、親インスタンス部が作られる ② 外側に子インスタンス部が作られる ③ JVM…
〈親クラスのメンバを呼び出す〉 親クラス void run( ){ System.out.println("逃げ出した"): } 子クラス(オーバーライド 再定義) void run( ){ System.out.println("撤退した"); } ※子クラス側でrun( );メソッドの中身は再定義しているが、親クラスのrun( );…
オーバーライド もし継承されたクラス(子クラス)で親クラスから自動で継承されているコード(自動なので記述しなくても良いコード)を そのまま使うのではなく子クラスの場合だけ変更したい時は? ⇩ 子クラス側で変えたいメソッドを再度定義する(メソッドの上…
「継承」という概念はなぜ生まれたのか? たくさんクラスを作るうちに「以前作ったクラスによく似ているが、一部だけ違うクラス」というのが出てくる →一部しか違わないのに同じようなコードを何度も書くのは面倒... ex.前記述したクラスと比べて、フィール…
☆ クラスに対するアクセス制御 (名前) (記述) (許可) package private なし 自分と同じパッケージに属するクラス public public 全てのクラス ex. class HeroSkill{ ←記述なしなので、package private public void use( ){.... } } ・・・メソッドはpu…
〈フィールドを書き換えたい時〉 class Hero{ private int hp; hpフィールドは他のクラスからはアクセス出来ないが、 同じクラス内のattack( );やsleep( );のようなメソッドからであれば アクセス(書き換え)が出来る →この場合は、通常通り this.hpで書き換…