タグ付けされた質問 「entry-point」

8
コンストラクターではなく、JavaとC#の静的mainメソッドが必要な理由
Applicationクラスのインスタンス(エントリポイントを含む)でアプリケーションインスタンスを表すのではなく、(特に)JavaとC#が静的メソッドをエントリポイントとして持つことにした理由について、プライマリソースまたはセカンダリソースからの明確な回答を探しています。適切なコンストラクタであること)。 私の以前の研究の背景と詳細 これは以前に尋ねられました。残念ながら、既存の回答は単に質問を懇願しているだけです。特に、次の答えは私を満足させるものではありません。 コンストラクターがオーバーロードされると、あいまいさが生じます。–実際、C#(およびCとC ++)では異なる署名を使用できるMainため、同じ潜在的なあいまいさが存在し、対処されます。 staticこの方法は、その初期化の順序は明らかである前に、何のオブジェクトをインスタンス化することはできないことを意味します。–これは事実上間違っています。一部のオブジェクトは前にインスタンス化されます(静的コンストラクターなど)。 したがって、親オブジェクトをインスタンス化することなく、ランタイムによって呼び出すことができます。–これはまったく答えではありません。 なぜこれが有効で興味深い質問であると思うのかをさらに正当化するために: 多くのフレームワークは、クラスを使用してアプリケーションを表し、コンストラクターをエントリポイントとして使用します。たとえば、VB.NETアプリケーションフレームワークは、専用のメインダイアログ(およびそのコンストラクター)をエントリポイント1として使用します。 JavaもC#も技術的にmainメソッドを必要としません。まあ、C#をコンパイルするには1つが必要ですが、Javaでもそれは必要ありません。また、どちらの場合も実行には必要ありません。したがって、これは技術的な制限ではないようです。そして、最初の段落で述べたように、単なる慣習としては、JavaとC#の一般的な設計原則に不自然に合わないようです。 明確に言うと、静的メソッドを使用することには特別な欠点はありません。それは明らかに奇妙です。そのため、技術的な根拠があるのではないかと思いました。main 私は単なる推測ではなく、一次または二次情報源からの決定的な答えに興味があります。 1ただし、Startupこれをインターセプトする可能性のあるコールバック()があります。
54 java  c#  history  entry-point 

2
静的mainメソッドを持つJavaクラスの命名規則?
コンストラクターではなく、なぜJavaおよびC#の静的メインメソッドに対するgnatの答えを読んだ後ですか?彼の答えは、静的なmainメソッドを持つJavaクラスの目的は、define a program entry pointそれ自体がプログラムそのものではないことを意味すると考えています。 これを行うためのより良い方法があるかもしれませんが、私は通常、次のような単純なことを行う静的なmainメソッドを持つクラスを持っています: public class MenuLauncher { public static void main(String[] args) { Menu menu = new Menu(); menu.run(); } } 上記のコードは、静的メインを持つクラスが、独立した非静的オブジェクト内に含まれるプログラムロジックを起動または起動する以上のことをしないOOPのベストプラクティスでしょうか。結局、mainは静的なので、MenuLauncherクラス自体は非常に制限されませんか?mainは開始点であるため、エントリポイントになること以外のクラスの目的はありません。 mainメソッドを含み、プログラムのエントリポイントになる目的を果たすクラスに一般的に使用されるJava命名規則はありますか?

3
コマンドライン引数を「argv」と命名する規則はどこから来たのですか?
ように思えるのPython、PHP、およびRubyは、すべてのコマンドライン引数のリストを参照するために名前「ARGV」を使用します。名前「argv」はどこから来たのですか?なぜ「引数」のようなものではないのですか? 私の推測では、vは「ベクトル」を表すCに由来するものです。ウィキペディアには、次のような脚注があります。 この変数の名前のベクトル用語は、文字列を参照するために従来の意味で使用されます。 ただし、この情報のソースはありません。本当に、さらにさかのぼるルートがあるかどうか興味があります。Cがそれを使用したのは、その前の何かがそれを使用したからですか

4
オブジェクト指向プログラミングのメインの責任は何ですか?
私はオブジェクト指向プログラミングに不慣れで、メインの目的が何なのかわかりません。 はい、私はそれがプログラムの「入り口」であると読みましたが、私が理解していないことは、メインに何があるべきかです。そして、その責任は何ですか? メインで記述された何かが別のオブジェクトにカプセル化される可能性がありますが、このアプローチをどの程度使用する必要がありますか? これが私がJavaで書いた最初のメインです。非常にシンプルですが、私の疑問をよりよく理解してくれるかもしれません。「Cat」と「Dog」によって拡張された抽象クラスAnimalがあります。メインを使用してオブジェクトを作成し、ユーザーとの「インターフェース」としても使用しました。実際に、条件付きの指示を使用して、ユーザーが何をしたいかを「ユーザーに尋ねる」ことができます。 私の質問は、インターフェイスが別のオブジェクトにカプセル化され、メインにその責任を与えないという事実から生じました。 public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("What type of animal do you want to create? \n dog cat"); String type = input.nextLine(); if ( Objects.equals(type, "dog")){ System.out.println("Enter the animal's age: "); int age = input.nextInt(); // Scans the next token …

7
エントリポイントが1つもないコードを詳しく調べるにはどうすればよいですか?
実行フローを追跡できる単一のエントリー・ポイントがないエンタープライズJavaプロジェクトで作業しています。一部のプロジェクトには数百のクラスがあり、プロジェクトに機能を追加するように求められたとき、コードのどこから始めればよいか迷うことがよくあります。 時間を無駄にすることなく機能をすばやく実装できるように、そのようなプロジェクトに飛び込むための最良の方法は何ですか。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.