java中的私有变量?

时间:2012-07-28 06:54:03

标签: java

我正在观看youtube上的教程,主题是私有变量。我们通常在java中设置变量:

class hello {

    public static void main(String args[]) {
        String x;
        x = "Hello"
    }
}

但在该教程中,字符串类型是从这样的方法声明的:

class hello {

    private String x;

    public void apples() {
        x = "this is a private variable.";
        System.out.println(x);
    }
}

正如你所看到的那样,它不是主要的方法,但是我想问私有变量总是必须是方法还是什么?

我是一名初学者,所以这对我们来说非常有帮助,因为我不想提醒知识以防止混淆,而且因为事实上加密代码的人永远不会成为一名优秀的程序员

6 个答案:

答案 0 :(得分:3)

  

私有变量总是必须是方法还是什么?

没错。方法内的变量是局部变量,并且不能具有任何访问修饰符,例如private,public或protected。这些修饰符只能应用于成员变量,即在类范围中声明的变量。

如果你考虑一下,它很有意义,因为无论如何本地变量都不能被另一个类访问。甚至不是同一个类中的另一个对象或同一对象中的另一个方法。

相关问题:

答案 1 :(得分:0)

必须将Cass变量声明为以下类型之一:

公共

受保护的

公共

在第一个例子中,变量是函数的本地变量:也就是说,它特定地绑定到方法hello.main()。

在这种情况下,它只能在该方法函数中访问。它不是类变量,因此不需要设置其访问级别。

在第二个例子中,变量是一个类变量。如果有类变量,则可以将其设置为private(只能由该类的对象访问),protected(由继承的类访问)或public(可以在对象外部访问)。然后,类中可能的许多方法都可以访问该类变量。

如果在类定义中有变量集,而不是在方法内部,则称为“字段”或“属性”或“属性”。您需要定义字段的可访问性的方式,因为类中的多个方法可以引用它。

当你在任何方法中有一个变量集时,它只能在该方法内部访问,并且不能在外部访问(除非你使用引用指针或通过方法参数传递它)。

答案 2 :(得分:0)

Java中的私有变量是类的全局可访问变量,只能访问该类(当然还有包含类中的任何其他方法)。

只能在方法范围内访问方法中声明的变量。在if语句中声明的变量只能在if语句中访问....依此类推。

由于性能问题,最好尽可能少地使用私有变量。假设您在类中声明了100个私有变量。您的类包含10个方法,每个方法使用10个变量。在实例化对象时,会创建对象,实例化100个私有变量。如果你使变量是局部变量,那么在实例化类时就不会创建变量,每次访问方法时都会使用10个变量....

java中还有其他类型的变量,为了更好地理解你可以从这里开始http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

答案 3 :(得分:0)

我认为令人困惑的是局部变量(在方法中声明)和成员变量(在类的方法之外,在类的方法之外声明)之间的区别。

一个局部变量就在它声明的方法正在运行时存在。它在声明时出现,然后在下一个}字符出现时超出范围(除了那些匹配{尚未打开的字符)之外的字符。这实际上意味着变量在一团烟雾中消失 - 一旦它超出范围就无法使用。

但是一个成员变量存在于一个对象中。这意味着它在创建对象时被创建,并在对象被销毁时被销毁。因此它通常比局部变量的持续时间长得多。成员变量有时可以被它们所属的对象以外的对象使用;当有可能做到这一点时,有一些相当复杂的规则。

成员变量上的private修饰符只表示它只能由对象所属的类中的代码访问。

答案 4 :(得分:0)

 but i want to ask that do private variables always have to be out of method or what?.

嗯,实际上在方法中将变量设为私有没有意义。 因为方法中声明的变量是堆栈变量,并且它们的范围比私有变量更窄。因为它们只能在它们被声明的方法中被访问,而私有变量在它们被声明的整个类中具有范围。

答案 5 :(得分:0)

在范围内创建的任何变量(在{}内限定的代码块)是该范围的local变量;并且无法进入街区。

此外,private变量是当您谈论类并定义无法访问外部类的成员时会出现的术语。