精华内容
下载资源
问答
  • java 方法作用域

    千次阅读 2013-04-14 17:32:21
    java中,针对不同的修饰词,类及其类中的方法、域都有不同的可见性。以下为针对java中可见性的几点总结。 1.java中的默认包(这个包是没有名称的),对于任何修饰词来说,其中的内容...作用域 当前类 同一package

    java中,针对不同的修饰词,类及其类中的方法、域都有不同的可见性。以下为针对java中可见性的几点总结。
    1.java中的默认包(这个包是没有名称的),对于任何修饰词来说,其中的内容只能对其包内类为可见。
    2.对于java中的非默认包中的内容,各修修饰词及其可见性如下表:

     

    作用域        当前类           同一package                        子孙类                     其他package
    public              √                          √                                        √                                     √
    protected        √                          √                                         √                                     ×
    friendly            √                          √                                         ×                                      ×
    private             √                          ×                                         ×                                     ×
    不写时默认为friendly

     

     

     

    对上表有几点说明:对于default类型修饰词,如果其子孙类与父类如果是位于同一个包内,则子孙类中的方法可以访问无修饰词修饰的父类方法;如果子孙类与父类是位于不同的包内,则子孙类中的方法无法访问父类中的无修饰词修饰的父类方法。对于protected类型修饰词,则子孙类可以访问父类中的protected方法,而其它类则不行。上面提到的父类都是public。


    展开全文
  • Java作用域

    千次阅读 2016-05-27 13:40:57
    Java作用域 作用域是指变量能生效的区域范围,声明在不同地方的变量具有不同的作用域,而决定作用域的就是花括号的位置,同时还决定了变量名的可见性与生命周期. Java语言中,变量的类型主要有成员变量,静态变量,和...

    Java的作用域

      作用域是指变量能生效的区域范围,声明在不同地方的变量具有不同的作用域,而决定作用域的就是花括号的位置,同时还决定了变量名的可见性与生命周期.

      Java语言中,变量的类型主要有成员变量,静态变量,和局部变量三种.类的成员变量 的作用范围与类的与类对象的作用范围相同,当类被实例化时,成员变量就会在内存中分配空间并初始化,直到这个实例化对象的生命周期结束为止.static修饰的成员变量为静态变量或者全局变量,与成员变量不同的是静态变量不依赖于特定的实例,而是被所有的实例所共享,只要一个类被加载JVM就会给类的静态变量分配内存空间,因此,就可以通过类名和变量名来访问静态变量.局部变量处于方法内部,其作用域与可见性为他所在的花括号内.

    成员变量的四种作用域

    作用域,可见性 当前类 同一package 子类 其他package
    public 可见 可见 可见 可见
    private 可见 不可见 不可见 不可见
    protected 可见 可见 可见 不可见
    default 可见 可见 不可见 不可见

    作用域详解:

    -public :表明该成员变量或者方法是对所有类或者对象都是可见的,所有类或者对象都可以直接访问
    - private:表明该成员变量或者方法是私有的,只有当前类对其具有访问权限,除此之外其他类或者对象都没有访问权限.子类也没有访问权限.
    - protected:表明成员变量或者方法对类自身,与同在一个包中的其他类可见,其他包下的类不可访问,除非是他的子类
    - default:表明该成员变量或者方法只有自己和其位于同一个包的内可见,其他包内的类不能访问,即便是它的子类

    需要注意的是,这些修饰符只能用来修饰成员变量,不能用来修饰局部变量

    privateprotected不能用于修饰类

    只有public , abstract , final能用于修饰类

    实例题:

    下列说法中正确的是();

    A.实例方法可以直接调用超类的实例方法

    B.实例方法可直接调用超类的类方法

    C.实例方法可以直接调用其他类的实例方法

    D.实例方法可用于直接调用本类的类方法

    正确答案选D.子类在父类为priavatedefault类型下不能访问父类的方法,且只有静态方法可以被直接调用,故D正确.

    完毕!

    展开全文
  • Java对象作用域

    千次阅读 2017-06-11 21:40:41
    大多数程序设计语言都提供了“作用域”...在C,C++和Java 里,作用域是由花括号的位置决定的。参考下面这个例子: { int x = 12; /* only x available */ { int q = 96; /* both x & q available */ } /* only
    大多数程序设计语言都提供了“作用域”(Scope)的概念。对于在作用域里定义的名字,作用域同时决定了它的“可见性”以及“存在时间”。在C,C++和Java 里,作用域是由花括号的位置决定的。参考下面这个例子:
    {
    int x = 12;
    /* only x available */
    {
    int q = 96;
    /* both x & q available */
    }
    /* only x available */
    /* q “out of scope” */
    }
    作为在作用域里定义的一个变量,它只有在那个作用域结束之前才可使用。
    在上面的例子中,缩进排版使Java 代码更易辨读。由于Java 是一种形式自由的语言,所以额外的空格、制表位以及回车都不会对结果程序造成影响。
    注意尽管在C 和C++里是合法的,但在Java 里不能象下面这样书写代码:
    {
    int x = 12;
    {
    int x = 96; /* illegal */
    }
    }
    编译器会认为变量x 已被定义。所以C 和C++能将一个变量“隐藏”在一个更大的作用域里。但这种做法在
    Java 里是不允许的,因为Java 的设计者认为这样做使程序产生了混淆。
    Java 对象不具备与主类型一样的存在时间。用new 关键字创建一个Java 对象的时候,它会超出作用域的范
    围之外。所以假若使用下面这段代码:
    {
    String s = new String("a string");
    } /* 作用域的终点 */
    那么句柄s 会在作用域的终点处消失。然而,s 指向的String 对象依然占据着内存空间。在上面这段代码里,我们没有办法访问对象,因为指向它的唯一一个句柄已超出了作用域的边界。
    这样造成的结果便是:对于用new 创建的对象,只要我们愿意,它们就会一直保留下去。这个编程问题在C和C++里特别突出。看来在C++里遇到的麻烦最大:由于不能从语言获得任何帮助,所以在需要对象的时候,根本无法确定它们是否可用。而且更麻烦的是,在C++里,一旦工作完成,必须保证将对象清除。
    这样便带来了一个有趣的问题。假如Java 让对象依然故我,怎样才能防止它们大量充斥内存,并最终造成程序的“凝固”呢。在C++里,这个问题最令程序员头痛。但Java 以后,情况却发生了改观。Java 有一个特别的“垃圾收集器”,它会查找用new 创建的所有对象,并辨别其中哪些不再被引用。随后,它会自动释放由那些闲置对象占据的内存,以便能由新对象使用。这意味着我们根本不必操心内存的回收问题。只需简单地创建对象,一旦不再需要它们,它们就会自动离去。这样做可防止在C++里很常见的一个编程问题:由于程序员忘记释放内存造成的“内存溢出”。
    展开全文
  • java变量作用域Scope

    千次阅读 2017-11-26 17:55:45
    在C,C++和Java里,作用域是由花括号的位置决定的。变量的作用域分为四个级别:类级、对象实例级、方法级、块级。   二、类级Scope 类级变量又称全局级变量或静态变量,需要使用static关键字修饰。类级变量在类定义...
    一、变量Scope
    

    作用域同时决定了它的“可见性”以及“存在时间”。在C,C++和Java里,作用域是由花括号的位置决定的。变量的作用域分为四个级别:类级、对象实例级、方法级、块级。

     

    二、类级Scope

    类级变量又称全局级变量或静态变量,需要使用static关键字修饰。类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化。

    package testdemo;
    /**
     *
     * @author MK
     */
    public class TestDemo {
    
        //类变量
        public static int classVariable;
    
    }

     

    三、对象实例级Scope

    对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问。

    package testdemo;
    /**
     *
     * @author MK
     */
    public class TestDemo {
    
        //实例变量
        public int instanceVariable;
    
    }

     

    四、方法级Scope

    方法级变量就是在方法内部定义的变量,就是局部变量。

    package testdemo;
    /**
     *
     * @author MK
     */
    public class TestDemo {
    
        /**
         * 静态方法
         */
        public static void staticMethod() {
            int localVariable=0;
        }
        /**
         * 实例方法
         */
        public  void instanceMethod() {
            int localVariable=0;
        }
    }

     

    五、块级Scope

    块级变量就是定义在一个块内部的变量,变量的生存周期就是这个块,出了这个块就消失了,比如 if、for、while 语句的块。块是指由大括号包围的代码。

    package testdemo;
    
    /**
     *
     * @author MK
     */
    public class TestDemo {
    
        /**
         * 实例代码块
         */
        {
            int localVariable = 0;
        }
    
        /**
         * 静态代码块
         */
        static {
            int localVariable = 0;
        }
    
        /**
         * 静态方法
         */
        public static void staticMethod() {
            {
                int localVariable = 0;
            }
        }
    
        /**
         * 实例方法
         */
        public void instanceMethod() {
            if (12 > 0) {
                int localVariable = 0;
            }
        }
    }

     

    注意:

    1、正确

    package testdemo;
    
    /**
     *
     * @author MK
     */
    public class TestDemo {
    
        int variable=0;
        /**
         * 实例方法
         */
        public void instanceMethod() {
            
          int variable = 0;
            
        }
    }

     

    2、正确

    package testdemo;
    
    /**
     *
     * @author MK
     */
    public class TestDemo {
    
        int variable=0;
        /**
         * 实例方法
         */
        public void instanceMethod() {
             {
                int variable = 0;
            }
        }
    }

     

    3、错误,两个局部变量作用域相交,这与c/c++的局部变量隐藏不一样

    package testdemo;
    
    /**
     *
     * @author MK
     */
    public class TestDemo {
    
        int variable=0;
        /**
         * 实例方法
         */
        public void instanceMethod() {
            
          int variable = 0;
          {
              int variable = 0;//错误
          }  
        }
    }

     

    4、正确

    package testdemo;
    
    /**
     *
     * @author MK
     */
    public class TestDemo {
    
        int variable=0;
        /**
         * 实例方法
         */
        public void instanceMethod() {
            
         
          {
              int variable = 0;
          } 
          
           int variable = 0;
        }
    }

     

    总结:

    (1)在同一作用域范围的包裹下成员变量名和局部变量名是可以变量名相同的。

    (2)在同一个作用域范围的包裹下局部变量和局部变量不可以变量名相同(作用域内不能重复命名)。

    (3)在方法中使用变量的时候如果不指明使用成员变量还是局部变量,那么默认的就是使用局部的那个变量,但是如果局部变量超出了它本身的作用域范围则会失效,被JVM垃圾回收,那么则可以重复命名此变量,并使用最新定义的这个局部变量。

     

    展开全文
  • JAVA - 变量作用域

    千次阅读 2018-06-03 13:20:49
    对于在作用域里定义的变量,作用... 在JAVA中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。* 类级变量又称全局级变量或静态变量,需要使用static关键字修饰。类级变量在类定义后就已经存在,占用...
  • JAVA之四大作用域对象

    千次阅读 2018-03-06 20:44:45
    java四大作用域按作用范围从大到小为:ServletContext,Session,request,pageContext其作用就是为了在一定范围内共享数据,下面这张图聚合了四大作用域的生命周期,作用范围,主要功能....
  • 今天cvte电话面试被问到了这个问题,真真没有想到,写了这么长时间的... java中的作用域有 public ,protected,private,default。坑就在这,我以为default和protected是一样的。  现在来逐个讲解一下: 1.对于p
  • java变量作用域和堆栈

    千次阅读 2014-04-20 18:55:02
    1.成员变量:在类的所有方法外部声明的变量,即类所拥有的变量,可以被系统初始化。 1.1静态成员变量:类被加载时被创建,其生命周期与该类的生命周期相同; 1.2类属性成员变量:在类的实例被创建时产生,其生命周期...
  • Java作用域

    千次阅读 2012-07-25 14:37:22
    作用域 public,private,protected,以及不写时的区别: 作用域 当前类 同一package 子孙类 其他 package非子孙类 public √ √ √ √ protected √ √ √ × friendly √ √ ...
  • java 中的作用域

    千次阅读 2018-03-11 17:47:39
    java作用域是有花括号的位置决定的,它决定了其变量名的可见性与生命周期。java中变量类型主要有3种:成员变量,静态变量和局部变量。类的成员变量的作用域与类的实例化对象的作用域相同,当类被实例化时,成员...
  • java作用域与可见性

    千次阅读 2012-12-03 20:55:56
    java中,针对不同的修饰词,类及其类中的方法、域都有不同的可见性。以下为针对java中可见性的几点总结。 1.java中的默认包(这个包是没有名称的...作用域  当前类 同一package 子孙类  其他package public
  • Java变量的作用域

    千次阅读 2016-12-11 15:33:50
    java中,变量的作用域分为四个级别:类级,对象实例级,方法级,块级。 类级变量又称全局变量或静态变量,需要使用staitc关键字修饰,你可以与c/c++中的static变量对比学习。类级变量在类定义后已经存在,占用内存...
  • Java访问权限作用域介绍

    千次阅读 2017-04-09 14:10:34
    作用域简介Java中有四种定义作用域或者说访问权限的关键字,分别为public,default,protected以及private,作用域的级别和范围从高到低。
  • java四大作用域 的理解

    千次阅读 2015-01-20 16:46:30
    request:属性的作用范围仅限于同一个请求(也可以理解为controller里的某个方法,其他方法不行) session:属性的作用范围仅限于一次会话(浏览器打开直到关闭称之为一次会话,前提示再次期间会话不失效,即...
  • Java之路:变量作用域

    千次阅读 多人点赞 2018-12-15 09:50:01
    变量作用域 变量是有作用范围(Scope)的,也即作用域。一旦超出变量的作用域,就无法再使用这个变量。 按作用域范围划分,变量分为成员变量和局部变量。 (1)成员变量 在类体内定义的变量称为成员变量,它的...
  • Java中的块作用域

    千次阅读 2018-06-26 11:48:10
    块(block)的概念块(即复合语句)是指由一对花括号括起来的若干条简单的Java语句,块确定了变量的作用域,一个块可以嵌套在另一个块中。下面就是在main方法块中嵌套另一个语句块的示例,见图1。public class Test{...
  • Java中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。   类级变量又称全局级变量或静态变量,需要使用static关键字修饰。类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不...
  • java 变量的作用域

    2014-03-08 15:39:56
    什么是变量的作用域? 答:指的是变量的存在范围,只有在这个范围内,程序代码才能访问它。当一个变量被定义时,它的...在方法内部声明,其作用域是整个方法。 ‚在方法中的一个代码块声明:其作用域谁这个代码块,
  • Java中的作用域有哪些

    万次阅读 2018-10-12 14:34:36
    Java语言中,作用域是由花括号的位置决定的,它决定了其定义的变量名的可见性与生命周期。 在Java语言中,变量的类型主要有3种:成员变量、静态变量和局部变量。 类的成员变量的作用范围与类的实例化对象的...
  • java作用域的区别

    千次阅读 2013-08-23 10:37:41
    java中,针对不同的修饰词,类及其类中的方法都有不同的可见性。以下为针对java中可见性的几点总结。 一.java中的默认包(这个包是没有名称的),对于任何修饰词来说,其中的内容只能对其包内类为可见。 最近在...
  • Java中修饰符的作用域及可见性

    万次阅读 2015-04-13 17:53:20
    java+ 作用域+
  • JAVA类的作用域

    千次阅读 2016-10-28 20:42:44
    作用域 当前类 同包下(子类、无关类) 不同包下 其它包(不同包下无关类) public √  √  √  √  protected √  √  √    default  √  √      private √  ...
  • java对象的作用域

    千次阅读 2014-05-14 16:09:50
    java对象不具备和
  • Java中变量的作用域

    千次阅读 2015-08-06 21:03:15
    Java中变量的形式有实例变量、局部变量、方法参数、异常处理参数
  • 这一章节我们来聊一下在方法作用域里的内部类。1.为什么需要在方法作用域里的内部类?(1)隐藏代码。(2)处理复杂的问题,需要辅助类。package com.ray.ch10; public class Test { { class PDestination {...
  • 总结:java中的作用域与单例和多例

    千次阅读 2017-05-29 15:20:35
    变量:在同一作用域范围的包裹下成员变量名和局部变量名是可以变量名相同的,在同一个作用域范围的包裹下局部变量和局部变量不可以变量名相同(作用域内不能重复命名),在方法中使用变量的时候如果不指明使用成员...
  • java作用域有四个,分别是public、protected、default(friendly)、private。作用域即:对象之间访问权限的控制。下面对四个作用域说明下: public修饰符:对象本身、同一个包下、子类、其他包下对象都可以调用 ...
  • Java之局部变量的作用域

    千次阅读 2018-05-28 11:01:25
    1、循环语句中变量public static void main(String args[]) { ...}就上面最简单的程序说明吧,上面在for循环中定义了i和sum,但是出了循环,这两个变量就被丢弃了,显然i和sum的作用域就是for循...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 291,448
精华内容 116,579
关键字:

java方法的作用域

java 订阅