Javaのコンストラクタとは何ですか?

コンストラクタは強力なコンポーネントプログラミングです。ジャワの全潜在能力を解放するためにそれらを使用してください。

オープンソース、クロスプラットフォームのプログラミング分野では、Javaは間違いありません(?)文句なしのヘビー級言語です。そこに多くのですが、素晴らしいクロスプラットフォームのフレームワークが、いくつかは通りますJavaの統一と直接として。

もちろん、Javaは、独自の繊細さや慣行で、非常に複雑な言語です。でJavaコンストラクタ コンストラクタ最も頻繁に関するよくある質問の一つがある:彼らが何であるか、その役割とは何か?

要するに:Javaで新しいコンストラクタを作成しますオブジェクトオブジェクト実行するアクション。Javaアプリケーションは、あなたが書いたクラスのインスタンスを作成するとき、それはコンストラクタをチェックします。(クラス)のコンストラクタが存在する場合は、コンストラクタでコードを実行するとき、それは、Javaのインスタンスを作成します。これらの言葉は専門用語が多数に含まれていますが、実際にそれを見たときに、より明確になるので、あなたがしていることを確認しますJavaのインストールやプレゼンテーションの準備ができて。

コンストラクタルーチンの開発を使用しないでください

あなたはJavaコードを書いている場合は、すでにあなたがそれを知らないかもしれない場合でも、コンストラクタを使用しています。あなたはコンストラクタを作成しない場合でも、あなたは、コードをコンパイルするとき、Javaがあなたのために生成されるため、Javaのすべてのクラスは、コンストラクタを持っています。ただし、Javaが提供する隠されたコンストラクタを、実証無視するために、(デフォルトのコンストラクタは、余分な機能を追加していないため)、および明示的なコンストラクタ状況を観察していません。

あなたがゲームのための擬似乱数を生成したいので、あなたは、単純なJavaアプリケーションのクラップスを書いているとしましょう。

まず、あなたはサイコロサイコロを表現するクラスを作成することができます。あなたは長い間プレー、「ダンジョンズ&ドラゴンズ」、あなたはサイコロがある20面体を作成することにしました。この例のコードでは、変数は、diceスロー(ダイスは、ダイス端20の数が20を超えてはならないロール)ダイスの最大可能数を表す、20の整数です。変数は、roll究極乱数プレースホルダであるrand乱数シードとして使用します。

import java.util.Random;

public class DiceRoller {
  private int dice = 20;
  private int roll;
  private Random rand = new Random();
复制代码

次に、DiceRoller金型コンピュータシミュレーションを圧延するステップを実行するために、クラス関数を作成する注意しなければならない:からrand整数を取得しに割り当てられたroll変数、ゼロからカウントを考慮が、Javaの型面20値が0でありません場合、rollプラス1、及びその結果を印刷します。

import java.util.Random;

public class DiceRoller {
  private int dice = 20;
  private int roll;
  private Random rand = new Random();
复制代码

最後に、生成DiceRollerクラスのインスタンスを、その主要な機能を呼び出しますRoller

// main loop
public static void main (String[] args) {
  System.out.printf("You rolled a ");

  DiceRoller App = new DiceRoller();
  App.Roller();
  }
}
复制代码

限り、あなたは(のようなJava開発環境のインストールとOpenJDKのを)、あなたは、端末上でアプリケーションを実行することができます。

$ java dice.java
You rolled a 12
复制代码

この実施形態では、明示的なコンストラクタ。これは非常に有効であり、正当なJavaアプリケーションであるが、それは少し制限があります。たとえば、あなたが側にゲーム「ダンジョンズ&ドラゴンズ」を置けば、いくつかの「ヤッツィー」を再生する夜に、あなたは6面体のサイコロが必要になります。この単純な例では、変更するコードは、あまりにも多くの問題を持っていませんが、複雑なコードでは、これは現実的な選択肢ではありません。この問題を解決する1つの方法は、コンストラクタを使用することです。

コンストラクタの役割

サンプルプロジェクトのDiceRollerクラスは、仮想サイコロの工場を表します。それが呼び出されると、それは、仮想サイコロを作成し、「ロールを。」しかし、カスタムビルダーを書き込むことによって、あなたはサイコロシミュレーションの種類をお聞きしたいアプリケーションを作るためにサイコロをロールバックすることができます。

コードのほとんどは、コンストラクタは、顔の数を表す数値パラメータを受け入れることを除いて、同じです。この図は、まだ存在していないが、それは後に作成されます。

import java.util.Random;

public class DiceRoller {
  private int dice;  
  private int roll;
  private Random rand = new Random();

  // constructor
  public DiceRoller(int sides) {
    dice = sides;
  }
复制代码

アナログ・スクロール機能は同じまま:

public void Roller() {
  roll = rand.nextInt(dice);
  roll += 1;
  System.out.println (roll);
}
复制代码

コードの大部分を提供するために、アプリケーションを実行するときに任意の引数を提供します。これは確かに複雑なアプリケーションになり、あなたは慎重にパラメータを解析し、予期しない結果をチェックする必要がありますが、この例では、唯一の予防策は、整数パラメータ型に文字列を変換することです。

public static void main (String[] args) {
  System.out.printf("You rolled a ");
  DiceRoller App = new DiceRoller( Integer.parseInt(args[0]) );
  App.Roller();
}
复制代码

アプリケーションを起動し、あなたがサイコロを持ちたい面の数を提供します。

$ java dice.java 20
You rolled a 10
$ java dice.java 6
You rolled a 2
$ java dice.java 100
You rolled a 44
复制代码

コンストラクタは、あなたの入力を受け入れているので、あなたは、クラスのインスタンスを作成するときに、されるsides変数は、ユーザーが指定した任意の数に設定されています。

コンストラクタは強力なコンポーネントプログラミングです。ジャワの可能性を最大限にロックを解除するためにそれらを使用して練習。


経由:opensource.com/article/19/...

著者:セス・ケンロンのトピック:lujun9972の翻訳:laingke校正:WXY

この記事LCTTオリジナルのコンパイラは、Linuxの中国は誇りに思っています

おすすめ

転載: juejin.im/post/5daafbbaf265da5b707ea6fe