脚本宝典收集整理的这篇文章主要介绍了作用域,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
面向对象中,变量作用域是非常重要知识点,相对来说不是特别好理解,请大家注意听,认真思考,要求深刻掌握变量作用域。
Scope01.java
1.在java编程中,主要的变量就是属性(成员变量)和局部变量。
2.我们说的局部变量一般是指在成员方法中定义的变量。【举例Cat类:cry】
3.java中作用域的分类
全局变量:也就是属性,作用域为整个类体Cat类:cry eat等方法使用属性
【举例】
局部变量:也就是除了属性之外的其他变量,作用域为定义它的代码块中!
4.全局变量(属性)可以不赋值,直接使用,因为有默认值,局部变量必须赋值后,才能使用, 因为没有默认值。
public class Scope01 { public static void main(String[] args) { }}class Cat{ //全局变量:也就是属性,作用域为整个整体 //属性在定义时,可以直接赋值 int age = 10; //指定的值是10 double weight; //没有给属性赋值就会自带一个默认值 public void cry(){ int n = 10; String name = "jack"; //这里的n和name就是局部变量 //n和name的作用域仅仅只在cry方法中 System.out.println("在cry属性中使用age=" + age); } public void eat(){ System.out.println("在eat属性中使用age=" + age); }}
VarScopeDetail.java
属性和局部变量可以重名,访问时遵循就近原则。
在同一个作用域中,比如在同一个成员方法中,两个局部变量,不能重名。[举例
属性生命周期较长,伴随着对象的创建而创建,伴随着对象的死亡而死亡。
局部变量,生命周期较短,伴随着它的代码块的执行而创建,伴随着代码块的结束而死亡。
即在一次方法调用过程中生效。
作用域范围不同 全局变量:可以被本类使用,或其他类使用 (通过对象调用) 局部变量:只能在本类中对应的方法中使用
修饰符不同 全局变量/属性可以加修饰符 局部变量不可以加修饰符
public class VarScopeDetail { public static void main(String[] args) { Person p1 = new Person(); p1.say(); //当执行say方法时,say方法的局部变量比如name,会创建,当say执行完毕之后,name局部变量就会销毁 //但是全局变量(属性)仍然是可以使用的 Tamplex t1 = new Tamplex(); t1.test(); t1.test2(p1); //此时可以传入一个对象 }}class Tamplex{ //创建一个类 public void test(){ //这里如果我们想要使用到其他类的变量 Person p1 = new Person(); System.out.println(p1.name); //可以直接将别的类的属性实例化 } public void test2(Person p1){ System.out.println(p1.name); //这里参数的对象就为main的p1,此时参数p1就指向了main中p1指向的对象 }}class Person{ //属性可以添加修饰符(public protected private) //局部变量是不能添加修饰符的 public String name = "jack"; public void say(){ String name = "King"; //属性和局部变量可以重名,访问时遵循就近原则。 System.out.println("say() name = " + name); } public void hi(){ String address = "北京"; //String address = "上海"; //错误,重复定义了变量 String name = "mike"; //这个name和say方法的name处于不同作用域,因此是正确的 }}
以上是脚本宝典为你收集整理的作用域全部内容,希望文章能够帮你解决作用域所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。