美人すぎない化粧品販売員がアプリ開発を目指す

Javaの構文、オブジェクト指向、APIなど、プログラミング初心者の私がアプリ開発までに理解したことをまとめたブログ

2015-01-01から1年間の記事一覧

カプセル化の基本

オブジェクト指向のプログラミングでは、効率良く、安全にコードを書く仕組みが大きく分けると3つある。 1つ目 カプセル化 フィールドへの読み書きやメソッドの呼び出しを制御する機能(アクセス制御) ex. このメソッドはAクラスからは呼び出し可だが、Bク…

static 〜 静的メソッド

staticはメソッドにもつけられる staticがついているメソッドを静的メソッドという 静的フィールド+静的メソッド→静的メンバ ★ 静的メソッドを定義すると、静的フィールドと同様に3つの効果が現れる 1. メソッド自体は金型のクラスの方につく ・・・「クラ…

static〜 静的フィールド

newによって生成されるインスタンスはそれぞれ別のもの(独立している) →よって、同じクラスを金型にしていたとしても、 基本的にはインスタンスごとにそれぞれ違う情報を代入する ex. class Hero{ int hp; } class Main{ public static void main(String[ ] …

引数を受け取るコンストラクタ

コンストラクタの機能 メインメソッドでインスタンス化をした時に毎回同じ情報が自動的に入る ただ自動的に入れてほしい情報が「勇者の名前」のように毎回同じ情報ではない時は? ("太郎"、"次郎"のように名前は毎回違うが、「名前を代入する」という行為は…

コンストラクタの基本的な概念

コンストラクタとは インスタンスの金型であるクラスに専用の文法を用いて記述することで、 その金型を用いてインスタンスを生成するごとに その記述がインスタンスに自動で代入され、実行される処理のこと なぜそのような仕組みが必要なのか? ex.既に定義…

クラス型をフィールドやメソッドに使う

フィールドやメソッドにクラス型を使い、 違うクラスで定義した内容をそのまま情報の一部として使っても問題ない ・フィールドにクラス型を使用する場合 ex.① 剣(Sword)という内容でクラスを定義する class Sword{ String name; int damage; } ② 勇者(Hero)…

パソコン内でのインスタンス化の仕組み(ヒープ領域の使用)

Javaの仮想世界は、 コンピューターのメモリ領域(ヒープ領域)の中にある なので、Javaがプログラムを実行する時は JVM(Javaを動かす動作主)が仮想世界を実現させるためにメモリ領域をまず準備する 私たちがnewを用いてインスタンスを生み出すとき ヒープ領域…

Mainクラスからインスタンスに指示を送る手順

オブジェクトを作る上で最初にすること クラス定義・・・オブジェクトの金型(クラス)を作る事 ☆ クラス定義によって可能になる2つのこと 1. そのクラスに基づいてインスタンスの生成ができるようになる 2. インスタンスを入れる変数の型がどこでも利用でき…

クラスの具体的な定義方法 フィールド宣言/メソッド宣言

〈クラスの定義方法〉 クラス図 クラス名 (勇者) class Hero{ 属性 (名前、HP) String name; int hp; 操作 (戦う、走る) void attack( ){ } void run( ){ } 属性(クラスブロック内に宣言された変数)のことをフィールドという。 〈フィールド宣言〉 属性を宣…

クラスとインスタンスの関係性

オブジェクト指向のプログラマの仕事 ① 各オブジェクトが負うべき責務を考え、「属性」「操作」の種類と内容を定義する ② 各オブジェクトを仮想世界に生み出し、動かす ※ オブジェクトは定義できないので、 代わりに オブジェクトの設計図であるクラスを定義…

オブジェクトの三大機能 カプセル化/継承/多様性

オブジェクト指向の本質 「現実世界を仮想世界内にそのまま再現すること」 ↓ Javaでは、それを開発者が安心して安全に円滑に行えるように 文法などに専用の機能が準備されている [オブジェクトの三大機能] ① カプセル化 属性や操作を一部の相手からは利用禁…

オブジェクトの責務を果たすための「属性」と「操作」

オブジェクト指向では、 開発者はそれぞれオブジェクト指向に乗っ取って部品化されたもの(オブジェクト)に対して、 それぞれ責務(役割、責任)を事前に割り振る ↓ コードが実行されたら、 それぞれ責務が割り振られた部品達が自分の役割を果たしながら 他の部…

オブジェクト指向の基本的な概念

オブジェクト指向を使う目的とは? 「人間が把握しきれない複雑さ」を克服すること ・・・ソースコードが長くなるほど開発者がどこに何を書いてどうなっているのか だんだん把握しきれなくなってくる これまでの基本文法→「問題(こういう操作をするには?)に…

APIパッケージとクラスローダー

APIとは? Javaに標準添付されているパッケージ ex.5つの要素を持つint型配列を並び替えたい java.util.Array.sort(height); ↑APIに入っている命令(引数heightをそのメソッドに渡すだけでOK) わざわざメソッド内容を具体的に記述しなくても、APIに書いてあ…

パッケージの役割とimport文の記述

クラスはパッケージというものに所属させないといけない ソースコードの先頭に package 所属させたいパッケージ名; を記述 ex. palkage calcapp.main; パッケージ名は小文字で記述する パッケージはそれぞれ独立しているので、パッケージ内にパッケージを入…

1つのクラスを複数のクラスに分割したい時

〈作成した1つのクラスを複数のクラスに分割したい時の手順〉 1. 移動したいメソッドを入れるソースファイルを新たに作る その際のソースファイル名はクラス名と同じでなければならない ex. ソースファイル名 →CalcLogic.java プログラムの書き始め →public…

引数と戻り値 まとめ

〈引数〉 ・メソッドの呼び出し時に値をメソッドに渡すもの ・メソッドを呼び出すときに渡す値を実引数(mainメソッド)、 受け取る側の変数を仮引数という ・メソッド内で宣言した変数をローカル変数といい、他のメソッドからは使用出来ない メソッドの実行が…

ターミナルから引数を指定する(コマンドライン引数)

ターミナルから引数を指定出来る(コマンドライン引数) 〈ターミナル〉 >java プログラム名 引数リスト ※スペースは全て半角 ex. >java Main 太郎 次郎 〈プログラム〉 Main (String[ ] args) argsは配列構造になっており、中にターミナルで指定した引数が入…

文字列、配列の長さを取得したい時

文字列の長さを取得したい時 〈構文〉 文字列変数名.length →全角、半角を問わず、1文字でカウントされる ex. String s="Javaで開発"; System.out.println(s.length( )); ・・・出力 7 配列の長さを取得したい時 〈構文〉 配列変数名.length ex. int ans={0…

戻り値なしと戻り値ありの違い

戻り値とは値を呼び出し元に返すこと 値・・・数値、文字列など ※配列{1,2,3}も値に入る 〈戻り値なし〉 main add(100,200); static add(int x, int y){ int ans=x+y; print(x+"+"+y+"+"+"="+ans); →mainのaddメソッドから100と200がstaticのaddへ引数として…

値渡しと参照渡しの違い

〈値渡し〉 普通の変数を呼び出して渡そうとすると、 まず呼び出し元の変数の中の値(ex.100)がコピーされて、 呼び出し先に渡される 同じ値を持った独立した変数が2つ出来るイメージ ・・・お互い独立した変数なので、 呼び出し先で渡された値を変えても(x=…

配列を引数として渡す

引数として渡す情報は基本データ型(int型やdouble型など)ではなく、配列を渡すことも可能 例 〈呼び出される側〉 void printArray(int array){ for(int element : array){//配列array内の数値を順番に取り出してint elementへ代入 System.out.println(elemen…

オーバーロード〜複数個同じ名前のメソッドを作りたいとき〜

原則としてメソッドに同じ名前をつけることは出来ない →ただ複数個同じメソッドを作りたい時は、同じ名前にしてる方が分かりやすい オーバーロードという概念を使う オーバーロードとは? 引数の型の種類を分けることで、同じ名前のメソッドでもパソコンに違…

戻り値とは何か

戻り値とは? 呼び出されたメソッドから、それを呼び出したメソッド(呼び出し元)に値を返すことを 「値を戻す」という その際に戻されるデータ(返されるデータ)のことを「戻り値」という 戻り値とは、 例えばmainメソッドからメソッドAを呼び出す→メソッドA…

メソッド内の変数の使用範囲(スコープ)

メソッド内の変数の使用範囲(スコープ) ブロック内で宣言された変数は同じブロック内しか使用できない 〈エラーになってしまう例〉 class Main{ int x=100; int y=10; add( ); } Mainの中でadd( )メソッドを定義して、ブロック外でadd( )メソッドを使おうと…

引数とは何か

引数とは? メソッドを使いたい時(呼び出したい時)は、 あらかじめ定義したメソッド(「このパターンよく使いそうだな」と思って事前に書いたもの)を呼び出している しかし定義した場面では、より多くのところでメソッドを使うために(多くのところで使えたほ…

メソッドの基本的な概念と構文

メソッドとは何か? プログラムのコードを書いてると同じようなコードが繰り返しでてくることが多々ある そもそもソースコードを書くときは効率化を追求していくことが大事! どうすれば楽になるかを考えることが大切(何度も同じコードを書くなんて面倒) …

2次元配列とは何か

2次元配列とは? 配列は一行の横に長い箱を用意だが、二次元配列だと横に長い箱を縦にも積み上げていき、1つのデータとして扱うイメージ 例えば、クラス全員の国語と算数の成績(2つのデータ)を1セットのデータとして扱いたい時などに便利 〈宣言〉 要…

配列の基本

配列とは? いくつかの関係あるデータをグループにして、まとめて1つの変数に入れること また、そうすることで、 きちんとした構造に整理して、後から特定の値を取り出すことが出来る 配列のイメージ・・・0から番号がついた箱が並んでいて、その箱1つ1…

while文/do...while文/for文 まとめ

・while文 構文 while(条件式){ ブロック } 条件式を先に評価してから、ブロック内の処理を実行する ・do...while文 構文 do{ブロック}while(条件式) ループは最低1回以上は行い、条件式は後で評価する ・for文 構文 for(初期化処理;繰り返し条件;繰り返し…