2012-07-28 47 views
1

我在看YouTube上的教程,主题是私有变量。我们通常设置在Java中的变量是这样的:在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); 
    } 
} 

正如你可以看到它是不是主要方法,但我想问一下,私有变量总是必须超出方法或什么?

我是初学者,所以这对我来说是非常有帮助的,因为我不想为了防止混淆而塞满知识,也因为事实上,那些塞满代码的人永远不会成为一名优秀的程序员。

+0

@chronodekar可以defintely在C中定义的全局变量,这是不是函数/方法里面。我认为你需要在这一点上更新自己。 – 2012-07-28 08:16:50

+0

我的歉意。Zéychin是正确的。我认为*我*是在这里与语言混淆的人。 :(:(旧评论现在由于不准确而被删除) – chronodekar 2012-07-28 09:34:10

回答

3

做私有变量总是必须超出方法或什么?

这是正确的。方法中的变量是局部变量,不能具有任何访问修饰符,如私有,公共或受保护的。这些修饰符只能应用于成员变量,即在类作用域中声明的变量。

如果你仔细想一想,它会有很大的意义,因为无论如何本地变量不能被其他类访问。甚至不是同一个对象中的同一个类或另一个方法的另一个对象。

相关问题:

0

卡斯变量必须声明为以下类型之一:保护

公共

Public

在第一个示例中,变量对于函数是局部的:即,它专门绑定到方法hello.main()。

在这种情况下,它只能在该方法函数内访问。它不是一个类变量,所以它不需要设置访问级别。

在第二个例子中,变量是一个类变量。当你有一个类变量时,你可以将它设置为私有的(只能由该类的一个对象访问),受保护的(被继承的类访问)或公共的(可以在对象之外访问)。然后可以在类中使用许多方法来访问该类变量。

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

当有任何方法内设置一个变量,它只能被该方法的内部访问,并且不能被外部访问(除非使用参考指针或使其通过方法参数)。

0

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

,方法中的声明的变量只能所述方法的范围内进行访问。在if语句中声明的变量只能在if语句中访问......等等。

它最好有尽可能少的私人由于性能问题尽可能变量。假设你有一个类中声明了100个私有变量。你的类包含10个方法,每个方法使用10个变量。当实例化一个对象时,你的对象被创建实例化为100个私有变量。如果你让你的局部变量的方法,则没有变量的类的实例创建的,每次访问的方法时10个变量用于....

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

0

我觉得你是区分局部变量(在方法中声明)和成员变量(在类中声明的,在类的方法之外)的区别。

的局部变量存在只,而它在被声明的方式运行。它在声明它的位置时出现,然后在下一个}字符出现时超出范围(除了那些匹配{字符还未打开的字符)。这实际上意味着变量消失在一团烟雾中 - 一旦它超出范围就不能使用。

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

private改性剂上的成员变量只是意味着它只能通过代码这是在该对象所属的类访问。

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

那么,在方法中做一个变量private是没有意义的。 由于在方法中声明的变量是堆栈变量,并且它们的范围比私有变量的范围要窄。因为它们只能在声明的方法中访问,而私有变量在整个类中声明它们的范围。

0

在范围内创建的任何变量(代码块在{}内)是一个local变量的范围;并且无法在街区外进出。

private变量是当你谈论班级和定义一个不可访问的成员类的图片时出现的术语。