精华内容
下载资源
问答
  • 修饰静态成员的修饰符
    2019-01-29 19:58:42

    1.类修饰符

    public :所有位置都可以访问该类

    friendly(默认):同一个包中的类可以访问,可以被继承(包括别的包中的类)

    final:声明为最终类,不能被继承

    abstract:抽象类,抽象类不能被实例化,只能被继承,且子类需要实现抽象类中所有的抽象方法

    接口中所有的方法都是默认public abstract,所有的成员变量都默认是final static

    个人认为,类声明为private是没有意义的,因为如果一个类不能够被其他地方访问,这个类还有存在的意义吗。

    类修饰符没有protected,因为没有必要,类的子类自然有对该类的“访问权限”,实际上权限的问题转移到了子类对父类中的成员变量以及方法有无访问权限,而这些由他们各自的成员变量、方法修饰符决定。

    2.成员变量修饰符

    public:所有类都可以访问

    protected:同一个包中的类或者子类可以访问

    默认:同一个包中的类可以访问(和类修饰符的friendly的意义不同)

    private:只有该类本身可以访问

    final:声明为最终变量,不可改变

    static:静态变量

    3.方法修饰符

    public:同成员变量

    protected:同成员变量

    默认:同成员变量

    private:同成员变量

    final:方法不能被重写、可以被重载

    static:静态方法

    synchronize:同步修饰符,用于线程对方法的加锁

    4.局部变量修饰符

    局部变量只能够被两种修饰符修饰:默认和final

    更多相关内容
  • 什么是修饰符修饰符的作用是在原有组件之上添加一些额外特性,修饰符有很多个,不同的修饰符所能修饰的组件不同,表现出的特性也不同; 多个修饰符可以一起使用,组件所表现的特性也会根据修饰符的数量不断叠加。...
  • static 修饰符 静态局部变量、静态全局变量

    Static是c\c++中的修饰符,用来控制变量的存储方式和可见性;

    函数内部定义的变量,编译器为它在栈上分配内存,但在函数执行结束后会自动释放掉;在有些时候,我们需要将函数内部定义的变量保存下去或者是作为函数的返回值时,就会遇到问题。解决办法一是:将变量定义为全局变量,但全局变量有诸多缺点,最重要的是改变了变量的作用域,故变量就不仅仅只受这个函数影响了,第二个方法就是使用static关键词修饰变量为静态变量;

    存储区域:静态存储区(全局储存区)

    如果是初始化的静态变量则保存在静态存储区的DATA段

    如果是未初始化的静态变量则保存在静态存储区的BSS

    在 C++ 中 static 的内部实现机制:静态数据成员要在程序一开始运行时就必须存在。因为函数在程序运行中被调用,所以静态数据成员不能在任何函数内分配空间和初始化。这样,它的空间分配有三个可能的地方:

    一是作为类的外部接口的头文件,那里有类声明;

    二是类定义的内部实现,那里有类的成员函数定义;

    三是应用程序的 main() 函数前的全局数据声明和定义处。

    静态数据成员要实际地分配空间,故不能在类的声明中定义(只能声明数据成员)。类声明只声明一个类的"尺寸和规格",并不进行实际的内存分配,所以在类声明中写成定义是错误的。它也不能在头文件中类声明的外部定义,因为那会造成在多个使用该类的源文件中,对其重复定义。

    特点:

    (1)在修饰变量的时候,static 修饰的静态局部变量只执行初始化一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。

    (2)static 修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是 extern 外部声明也不可以。

    (3)static 修饰一个函数,则这个函数只能在本文件中调用,不能被其他文件调用。static 修饰的变量存放在全局数据区的静态变量区,包括全局静态变量和局部静态变量,都在全局数据区分配内存。初始化的时候自动初始化为 0。

    (4)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调用结束释放可以使用 static 修饰。

    (5)考虑到数据安全性(当程序想要使用全局变量的时候应该先考虑使用 static)。

    展开全文
  • java代码-日常练习32 静态修饰符 static 修饰:类 类的成员(变量及方法)
  • 类的修饰符分为 访问权限修饰符 和 非访问权限修饰符(1)访问权限修饰符:1 public 公共类修饰符,public修饰的类可以被同一个包中的类访问,也可以被其他包中的类访问。即在此工程下的所有类都可以访问被public修饰...

    一  类的修饰符

    java中的文件结构由大到小为:一个工程,一个工程下可以有许多包,每个包中可以有许多类。

    类的修饰符分为         访问权限修饰符          和             非访问权限修饰符

    (1)访问权限修饰符:

    1 public 公共类修饰符,public修饰的类可以被同一个包中的类访问,也可以被其他包中的类访问。即在此工程下的所有类都可以访问被public修饰的类。Java语言规定,程序的主类必须是公共类。

    例如  public class Animal {...}

    2 默认说明。某个类前面没有public修饰,则认为该类使用默认说明,这样的类称为友好类,这样的类只能被同一个包中的类使用,不能被其他包中的类使用。

    例如  class Animal {...}

    (2)非访问权限修饰符:

    1  abstract 抽象类修饰符。用abstract修饰的类是抽象类。其他的类会继承抽象类并实现抽象类中的抽象方法。抽象类不能用new运算符创建对象。

    2  final 终结类修饰符,用final修饰的类表示终结类,被final修饰的类不能被继承,而用abstract修饰的类是用来被其他类继承的,所以一个类不可能同时被abstract和final修饰。

    二 类中成员变量和成员方法的修饰符

    成员变量修饰符

    (1)访问权限修饰符:

    1  public 公有访问修饰符。该修饰符修饰的变量称为公有变量,如果公有变量又在一个公有类(被public修饰的类)中,那么这个变量可以被所有包中的所有类访问;

    如果共有变量在友好类(没有被public修饰的类)中,那么该变量可以被它   所在的类   所在的包中的所有类访问。

    2 protected 保护访问修饰符。 该修饰符修饰的成员变量若在一个公有类中,那么它可以被所在的类本身,同一个包中的所有类,其他包中该类的子类访问。

    3 默认访问修饰符。如果成员变量前没有访问修饰符,那么它为友好成员,他可以被同一个包中的所有类访问。

    4 private 私有访问修饰符。 该修饰符修饰的成员只能被他所在的类访问,任何其他的类都不能访问,包括它的子类。在实际项目中,最好把一个类的实例变量(不被static修饰的变量)设置为private,并在方法中设置setXXX() 和 getXXX()这样的方法进行访问。这样做有助于对客户隐蔽类的实现细节,减少错误,提高程序可修改性。

    (2)非访问权限修饰符

    1 static 修饰的变量称为静态变量,静态变量是属于类的。可以用类名或是该类的对象名引用静态变量

    2 final 修饰的变量称为最终变量,实际上就是java中的符号常量

    3 volatile 修饰的变量称为易失变量,这种变量可以被多个线程所控制和修改。

    三  成员方法的修饰符

    (1) 访问权限修饰符

    1 公有访问控制符 public 使用public修饰的方法可以作为该类对外的接口

    2 默认访问控制符。具有包访问属性,可以被同一个包内的其他类访问。

    3 保护访问控制符 protected 。使用该访问修饰符的方法可以被该类自身,同一个包内其他类,其他包中该类的子类访问。

    4 私有访问控制符 private。使用该访问控制符的方法是能被该类自身访问,任何其他类不能访问,包括该类的子类。

    (2)非访问权限修饰符

    1 abstract 用abstract修饰的方法为抽象方法,抽象方法只有类的声明,没有类的实现。

    2 static 用static修饰的方法为静态方法,静态方法属于整个类。

    3 final 用final修饰的方法为最终方法,最终方法不能被当前类的子类重新定义。

    4 native 用native修饰的方法为本地方法,本类方法通常用其他语言书写方法体,并实现方法功能。

    5 synchronized 用synchronized修饰的方法为同步方法,同步方法主要用于多线程共存的程序中的协调和同步。

    展开全文
  • static关键字(静态修饰符

    千次阅读 2019-03-19 22:52:19
    1、static是一个修饰符,用于修饰成员 2、static修饰的成员被所有的对象所共享 3、static优先于对象存在,因为static的成员随着类的加载就已经存在了 4、static修饰的成员多了一种调用方式,即可以直接被类名调用...

    static的特点

    1、static是一个修饰符,用于修饰成员

    2、static修饰的成员被所有的对象所共享

    3、static优先于对象存在,因为static的成员随着类的加载就已经存在了

    4、static修饰的成员多了一种调用方式,即可以直接被类名调用。类名.静态变量

    5、static修饰的数据是共享数据,对象中的存储的是特有数据

    6、如下示例代码

    class Person
    {
        static String country = "CN";
        String name;
        public void show()
        {
            System.out.println(country+""+name);
        }
    }
    
    class Demo
    {
        pubilc static void main(String[] args)
        {
            //通过先建对象调用
            Person p = new Person();
            System.out.println(p.country);
            //直接通过类名调用
            System.out.println(Person.country);
        }
    }

     运行结果

     

    成员变量和静态变量的区别

    1、两个变量的生命周期不同

    成员变量随着对象的创建而存在,随着对象的被回收而释放

    静态变量随着类的加载而存在,随着类的消失而消失

    2、调用方式不同

    成员变量只能被对象调用

    静态变量可以被对象调用,还可以被类名调用

    3、别名不同

    成员变量也叫实例变量

    静态变量称为类变量

    4、数据存储位置不同

    成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据

    静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据

     

    static静态使用的注意事项

    1、静态方法只能访问静态成员。(非静态就可以访问静态,也可以访问非静态)

    2、静态方法中不可以使用this或者super关键字

    3、主函数是静态的

    我们可以通过下面这两个示例来了解static的一些细节

    代码一:

    class Person1
    {
    	int x = 3;
        public static void main(String[] args)
        {
           show();
        }
    	public void show()
    	{
    		System.out.println("x="+x);
    	}
    }

    运行结果

    代码二:

    class Person1
    {
    	int x = 3;
        public static void main(String[] args)
        {
           show();
        }
    	public static void show()
    	{
    		System.out.println("x="+x);
    	}
    }

    运行结果

    我们可以看到,上面的两个代码,编译时都报错了,原因在于我们在静态方法 main() 中调用了,非静态方法show()或非静态变量x,出现上述问题时,我们可以为变量x和方法show()增加static关键字,也可以通过下面的修改方法来修改,下面修改方法的原理是,通过新建对象,来调用非静态的变量或方法。

    class Person1
    {
    	int x = 3;
        public static void main(String[] args)
        {
           new Person1().show();
        }
    	public void show()
    	{
    		System.out.println("x="+x);
    	}
    }

    运行结果

     

    展开全文
  • 本文主要给大家介绍了关于c++中static修饰符的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 下面一段是引用自effective c++ 中的一句话: 所谓的static对象,其寿命是从构造出来到...
  • PHP 类中修饰符 abstract 抽象类 abstract 抽象方法 抽象类继承抽象类 静态抽象方法
  • -静态成员函数和静态数据成员,定义时,不需要加static修饰符,否则会报错:"Cannotdeclarememberfunction...tohavestaticlinkage"; -public方法访问static成员;static方法只能访问static成员; -在pubic方法中...
  • PHP静态成员变量

    2021-01-20 00:58:47
    静态成员静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态成员..因为静态成员...
  • private(公共的 ) (受保护的) (默认的) (私有的)二、简单认识四种访问修饰符1、public权限修饰符public——可以修饰类,方法,构造方法,接口,方法成员。被public修饰的成员,可以在任何一个类中被调用,不管同包...
  • 前言:在最近做项目中,对权限修饰符又有了新的认知,对这块知识的脉络也越来越清晰,来博客mark一下。 这篇博客是对前两篇博客的一个总结提炼(https://blog.csdn.net/u013771764/article/details/81226908与...
  • C#的类修饰符成员修饰符

    千次阅读 2017-11-26 17:53:48
    一、类修饰符修饰符:public、internal、 partial、abstract、sealed、static、new、protected、private、protected internal 1、public:访问不受限制的,所有的本程序集以及其他的程序集里面的类都能够访问 ...
  • 修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。 ...abstract,将一个类声明为抽象类,没有实现的方法,...成员变量修饰符: public(公共访...
  • 类、方法、成员变量和局部变量的可用修饰符 修饰符成员访求 构造方法 成员变量 局部变量 abstract(抽象的) √ √ - - - static (静态的) - √ - √ - public(公共的) √ √ √ √ - ...
  • 接口和接口成员修饰符

    千次阅读 2022-01-04 17:07:51
    介绍了接口,接口的方法和变量的修饰符的使用
  • 静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。看看下面的例子:复制代码 代码如下:function test(){static $a=0;... 您可能感兴趣的文章:浅谈php中的访问修饰符private、protected、p
  • java默认修饰符

    2021-04-12 19:47:18
    类的修饰访问修饰符修饰符class类名extends父类名称implements接口名称(notes:访问修饰符符与修饰符的位置可以互换)访问修饰符名称说明备注pubic可以被所有类访问(使用)public类必须定义在和类名相同的同名文件中...
  • 在java中常见的修饰符有:abstract(抽象的)、static(静态的)、public(公共的)、protected(受保护的)、private(私有的)、synchronized(同步的)、native(本地的)、transient(暂时的)、volatile(易失的)、final(不可...
  • 定义一个静态类,类中定义静态方法,方法中参数类型前边加上this修饰符,即可实现对参数类型的方法扩展 示例如 namespace Demo{ // 这里的类必须为静态类 public static class Json {  // 方法为静态方法  // ...
  • (转)java中的类和方法的修饰符

    千次阅读 2021-03-22 16:11:51
    Java程序在定义类时,除了使用class关键字标识之外,还可以在class之前增加若干类的修饰符来修饰限定所定义的类的特性。类的修饰符分为访问控制符和非访问控制符两大类。修饰符之间的先后排列次序对类的性质没有任何...
  • 1、修饰方法的修饰符 public:被该修饰符修饰的方法可以被任何类通过对象.方法使用 protected:被该修饰符修饰的方法可以被该类自身、本包中的类、和子类(是子类而非父类)所使用 private:被该修饰符修饰的方法...
  • (3) 抽象类可以定义成员变量和成员方法 (4) 抽象类可以有构造,但不用于new对象,而是用于子类创建对象jvm默认创建父类对象应用 abstract修饰方法 (1) 被 abstract 修饰的方法称为抽象方法 (2) 抽象方法只有声明部分,...
  • java.lang.reflect.Modifier类提供了用于获取和转换修饰符(即public,private,static等等的关键字)的静态方法。 1.通过Modifier可以做什么 通过Modifier可以做以下事情: 可以获取每个Java修饰符对应的int值 ...
  • MMTTMM访问控制修饰符Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。默认的,也称为default,在同一包内可见,不使用任何修饰符。私有的,以private修饰符指定,...
  • 修饰符: public (访问控制符) ,将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。 protected (保护访问控制符) 同一个包中的其他任何类以及任何子类 (无论子类是在哪个包中声明的) 中...
  • java中的非访问修饰符的作用各不一样,据我所知常用的有六种: static final abstract synchronized volatile transient 今天我们只讲前三种,后面三种等我们讲到线程的时候再回过头来讲。 首先还是通过一张经典的表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 237,140
精华内容 94,856
热门标签
关键字:

修饰静态成员的修饰符