以下のエディターは、Java のパラメータとしてメソッドを使用する例、つまりポリモーフィズムを示します。編集者はこれがとても良いと思ったので、参考として共有します。エディターに従って見てみましょう
少し前にインテリジェントなアルゴリズムを勉強していたとき、Java を使用して実装すると、具体的な実装プロセスは似ていることがよくありますが、適応度値関数はアルゴリズムに応じて大きく変化することがわかりました。これはコードのメンテナンスに大きな障害をもたらし、C/C++ の習慣によれば、ポインタの存在により、適合度値関数
をメソッドに渡すことができるのかという疑問が生じます。 、この関数はポインターが渡されるとして使用できます。ポインターの使用は複雑で難しいため、効果は平均的です。オブジェクト指向の考え方に変更すると、インターフェイス I を設計することを考えることができます。このインターフェイスはメソッドを 1 つだけ提供するため、呼び出し時にインターフェイスをパラメーターとして渡すことと同じになります。クラスを作成してそれを実装すると、関数をメソッドに渡すことができます。
以下では、目的関数が異なるため、この種の検索は単峰性関数でのみ実行可能であることに注意してください。
アルゴリズムは、以下の図:
public interface Fitness {
public double getFitness(double X);
}
public class stationUtils{/***
* 黄金分割搜索法,寻找最小值的函数
* @param min 搜索上限
* @param max 搜索下限
* @param fitness 函数值
* @return
*/
public double goldenSearch(double min,double max,Fitness fitness){
/*double X1=min+0.382*(max-min);*/
double a=doubleOperation.substract(max,min);
double X1=doubleOperation.add(min,doubleOperation.multiply(0.382,a));
/*double X2=min+0.618*(max-min);*/
double X2=doubleOperation.add(min,doubleOperation.multiply(0.618,a));
double F1=fitness.getFitness(X1);
double F2=fitness.getFitness(X2);
while(Math.abs(doubleOperation.substract(X1,X2))>delt){
if(F1<F2){
max=X2;
X2=X1;
F2=F1;
X1=min+0.382*(max-min);
F1=fitness.getFitness(X1);
}else{
min=X1;
X1=X2;
F1=F2;
X2=min+0.618*(max-min);
F2=fitness.getFitness(X2);
}
}
return doubleOperation.pide(doubleOperation.add(max,min),2);
}
}
public class Func implements Fitness{ @Override public double getFitness(double X) { return X*X- 3 * X + 1; } }
4 .簡単な呼び出し:
@Test public void run1(){ Func func=new Func(); double result=stationUtils.goldenSearch(-2.00,4.00,func); System.out.println(result); }
概要 多くのパラメータが渡されます。値をインターフェイス実装クラスに渡すと、getFitness メソッドがこのパラメータにアクセスできます。 。
以上がJava はパラメータを渡すことによってポリモーフィズムの例としてメソッドを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
