新しくブログを開設しました。

Webエンジニアがデザイナーになってみる。


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

新しくブログを開設しました。

Webエンジニアがデザイナーになってみる。


■クラスの作成

Javaプログラムで行われる処理はクラス内部で行われます


クラスには「変数」「メソッド」「コンストラクタ」が含まれます

変数はクラスの状態を表し
メソッドは定義された動作を構成するロジックを
コンストラクタはクラスの新しいインスタンスの状態を初期化する特殊メソッドを表します


簡単なクラスの作成を紹介します

class Sample{
 int a;
 int b;
 int c;
}


次にオブジェクトを作成するにはnew演算子が必要です

Sample one = new Sample();
Sample two = new Sample();


これを実行することにより
Sampleクラスで作成されたオブジェクトが2つ作成されます。

変数oneとtwoにはそれぞれ別のオブジェクトへの参照が格納されます。
そのため、それぞれのオブジェクトで独自の変数a,b,cが存在します。



■コンストラクタの追加

コンストラクタとは、特定のクラスのオブジェクトを作成して初期化する特殊メソッドのことです

コンストラクタの特徴
・クラス名と同じ名前を持つ
・引数を受け取ることができる
・戻り値を返すことができない
・new演算子により呼び出す

コンストラクタを明示的に宣言しない場合は、Javaコンパイラによって引数のない内容が空のコンストラクタが自動生成されます
しかし、コンストラクタを一つでも生成するとJavaコンパイラは自動でコンストラクタを生成してくれなくなります


■コンストラクタのオーバーロード
クラスのはコンストラクタを複数用意することができる
これをコンストラクタのオーバーロードと言います

複数コンストラクタを用意したとしても名前は全てクラス名と同じです
しかし、パラメータリスト(シグネチャ)が異なります
※シグネチャとはその名前とパラメータの型のリストを合わせたもの

このシグネチャが同じコンストラクタが1つのクラスにあるとJavaコンパイラはエラーメッセージを発生させます

※インスタンスとはクラスを基にした実際の値としてのデータのこと


■thisについて
thisとは現在実行中のオブジェクトを指します


※変数名が違うだけとかだとコンパイルエラー?

コンストラクタ生成の例

*Example1*
class Const {
 //メンバ変数
 double x;
 int y;
 //コンストラクタ
 Const(double x, int y) {
  this.x = x;
  this.y = y;
 }
 //コンストラクタのオーバーロード
 Const(double x) {
  this.x = x;
  this.y = 15;
 }
 //コンストラクタのオーバーロード
 Const() {
  this.x = 10;
  this.y = 15;
 }
 //メソッド
 double getMean() {
  double z = this.x/this.y;
  return z;
 }
}
class TestConstructor {
 public static void main(String args[]) {
  double m1,m2;

  //コンストラクタ呼び出し(インスタンス化)
  Const obj1 = new Const(1059.0, 12);
  Const obj2 = new Const(1298.0);

  //メソッド呼び出し
  m1 = obj1.getMean();
  m2 = obj2.getMean();

  System.out.println("obj1: " + m1);
  System.out.println("obj2: " + m2);
 }
}



*実行結果*
C:\Java>javac TestConstructor.java
C:\Java>java TestConstructor
obj1: 88.25
obj2: 86.53333333333333





■インスタンス変数とインスタンスメソッド
インスタンス変数 = インスタンスに関連付けられている変数
インスタンスメソッド =
スポンサーサイト

テーマ:web制作 - ジャンル:コンピュータ

<<千夏!脱税? | ホーム | 悲しいNewsが2つも・・・・・・・・・・。>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://kanamehackday.blog17.fc2.com/tb.php/31-42c12577
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。