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

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

2015-05-01から1ヶ月間の記事一覧

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へ引数として…