javaでは、「閉鎖」は必要ありません。関数内にあるのはこの関数のためのものだけです。静的なものはすべて使用しないでください。
Javaはオブジェクト指向です。オブジェクトの変数には、このオブジェクトのすべてのメソッドがアクセスできます。他のオブジェクトへのアクセスを望まない場合は、 "private"タグを使用してください。
//Class
public class HelloWorld(){
private int var1;
public String var2;
// Constructor
public HelloWorld(){
}
public void function1(){
//here you can use var1 and var2.
}
private void function2(){
//here you can use var1 and var2.
}
// If you have a parameter with same name, you should use this
private void function3(int var1){
// this.var1 object variable
// var1 method variable
}
}
//From another object:
public class ByeWorld(){
private HelloWorld anInstanceOfHelloWorld;
public ByeWorld(){
anInstanceOfHelloWorld = new HelloWorld();
// var2 is public you can use it (NO RECOMENDABLE)
anInstanceOfHelloWorld.var2;
anInstanceOfHelloWorld.function1();
// YOU CANT
// anInstanceOfHelloWorld.var1 // is private
// anInstanceOfHelloWorld.function2() // is private
//...
}
}
私はこれがあなたに役立つことを願っています。
"js function closure"という意味の例がありますか? – azro
インスタンス変数とメソッドは、基本的にクロージャの代替手段です。メソッドが認識する変数の量を制限することができるので、私はそれらをもっと好きです。 – byxor
私はなぜ閉鎖が必要か尋ねました。そして、javaに相当するものはありますか? –