虽然Javascript不像Java,但仍然相当于java中的Javascript函数闭包?为什么我们需要关闭?
这是我的理解 1. java中的私有和受保护变量由该类中的所有方法访问。 2.有没有一种方法可以增加一个私有变量,只允许访问Java中一个类中的一个方法? 3.如果第2点的答案为NO,那么为什么JavaScript中的闭包会满足这样的要求? 4.我们在哪里可以面对上述第2点的要求?
答案 0 :(得分:0)
在java中,你不需要"关闭"。你在函数中所拥有的只是这个函数,你应该尝试不要使用静态的东西。
Java是OO,对象中的所有方法都可以接受对象中的变量。如果您不希望其他对象访问它,请使用" 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
//...
}
}
我希望这对你有所帮助。