关于访问修饰符和变量的作用域
2015-04-30 11:49
253 查看
关于访问修饰符。也就是用来控制其他的类对类、成员变量、成员方法的访问权限,我们有四种访问修饰符,分别是公共的(public),受保护(protected),缺省的和私有的(private),这四种权限能起到很好的保护作用。 public代表任何类在任何地方都可以对其进行访问。 protected代表只能在同一个包或者子类中才能进行访问 缺省即为系统默认,只能在同一个包才能进行访问 private代表只能在本类中才能进行访问 关于变量的作用域,主要分为四种:全局变量,成员变量,局部变量和块变量
全局变量也就是类变量,它在类定义后就会直接被分配内存空间,因此它能被任何的包直接进行访问;而成员变量只有在对象实例化得时候才能进行访问,因为成员变量只有在对象实例化的时候才会被分配内存空间;局部变量就是方法之中的变量;块变量的作用域最小,指的是在if,for里面定义的变量。
由此可知这四种变量的访问权限,全局变量可以直接在成员变量、局部变量和块变量中进行访问,成员变量可以直接在非静态方法中进行访问,在静态方法中访问就必须实例化。局部变量就只能在本方法中以及块中进行访问了,而块变量仅仅只作用于块中,出了这个块便不存在了。
这里就会提到一个关键字:this,它表示类的当前对象,只有在实例化的时候才会有用,它的作用是可以区分同名的变量,比如有一个类如下: class Demo{ int a; void Demo1(){ int a = 5; this.a = a; } } 在Demo1方法里面,this.a就代表是成员变量,a就仅仅代表的是局部变量。 static表示的是静态的,也是全局的。,全局变量、方法能够在任何的类包中直接进行访问,不过还是要注意访问修饰符的类型。 不推荐用对象来访问静态方法和静态变量,因为里面的数值可能会被覆盖掉。
相关文章推荐
- java变量的作用域和访问修饰符
- 关于变量访问修饰符的使用
- Java的访问修饰符与变量的作用域讲解
- 关于Java中各种修饰符与访问修饰符的说明
- 关于javascript 回调函数中变量作用域的讨论
- 关于Java中各种修饰符与访问修饰符的说明
- 关于Scope,Compensation,Catch中的变量作用域!
- C++拷贝函数的小结,关于变量的作用域等---ShinePans
- 关于Java的访问控制修饰符
- 关于JS变量的作用域,作用域链与闭包
- 关于ibatis中mysql的@变量问题作用域、污染问题
- java 关于初学面向对象的问题三:访问权限等修饰符
- 关于Sqlserver中变量的作用域和生存期问题
- 关于javascript函数中变量的作用域
- 关于Java中各种修饰符与访问修饰符的说明
- 关于Java中各种修饰符与访问修饰符的说明
- 关于java访问修饰符的几个测试(jdk1.8)
- 关于Java中各种修饰符与访问修饰符的说明
- 关于派生类访问基类对象的保护变量的问题 --Coursera
- 关于js变量作用域