static——直属单位

          在师哥师姐给我们传授考试系统的经验过程中,提到了Staic,而我对于static也是从未注意,但是从那天学姐给我们讲了static后,我发现这个单词真的很需要深刻的了解一下,下面我来说说我知道的Static。

         使用特点

             1、static意思是静态,可以修饰类、字段、属性、方法,标记为static的就不用创建实例对象调用了,可以通过类名直接点出来。例如: 
  

public class myClass
{
   public static void HelloWorld() { .... }

}

                          另一个类可以直接调用:

myClass.HelloWorld();

              2、static与非static最大的区别就是static类型的变量及方法在调用的时候就在内存中分配了地址,且这个地址只有一份,故static可以直接访问。而非static必需手工去实例化该类,以对象的方式去访问变量和方法。例如:

class City()
{
    //4个直辖市static 静态全局类型
    public static void Beijing(){}
    public static  void ShangHai(){}
    public static  void Tianjin(){}
    public static  void Chongqing(){}
    //其他城市 非静态
    public void Guangzhou(){}
    public void Nanjing(){}
}
void Main()
{
    //调用static类型的方法
    City.Beijing();//调用北京
    City.Shanghai();//调用上海 

    //调用非static类型的方法
    //没有直接调用权利,必须先实例化
    City chengShi=new City();
    chengShi.Guangzhou();//调用广州
} 

                   3、不能包含实例构造函数,可以声明静态构造函数分配初始值或设置某个静态状态。应为所谓构造函数是与new放在一起用的,而静态类是不需要new的,也就是不需要实例化就可以直接被调用的。

                   4、static方法可以继承,但static类不可以被继承,因为如果static类要继承的话,则该类中需要有实例构造函数,但上面已经说了不能包含实例构造函数。

用法:

1、用于变量前,表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值,这个方法称为静态函数 
                  

private void Add()
{
static int number=1;
number++;
}

                       方法第一次调用后number=2;第二次调用后为3;

        
  
 2、在方法(函数)前用static修饰,表示此方法为所在类或所在自定义类所有,而不是这个类的实例所有,这个方法称为静态方法:例子如上面提到的调用城市。

             3、用于class前,说明此类型无法新建实例,简单点说这个类型的方法全是静态方法,这个类里的非静态方法是不能使用的,这个类型称为静态类

static class dog
{
~~~~
}
~~~~
class d
{
~~~~
void f(....)
{
~~~~
dog ww= new dog();//此时程序会出现错误
}
}

             这是我对static的一些理解,希望和大家交流。

时间: 2014-03-11

static——直属单位的相关文章

static变量与方法

 这篇文章主要介绍了static变量与方法,有需要的朋友可以参考一下 static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为"类属性"或"类方法".   如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号"::"调用.   static关键字可以用来修饰变量.方法.   不经过实例化,就可以直接访问类中static的属性和static的方法.   static 的属性和方法,只能

php中$this、static、final、const、self的用法

  本篇文章主要分项了一下关于php类中的$this,static,final,const,self这几个关键字使用方法. $this $this表示当前实例,在类的内部方法访问未声明为const及static的属性时,使用$this->value='phpernote';的形式.常见用法如: $this->属性 $this->方法 举例如下:  代码如下   <?php class MyClass{  private $name;  public  function __cons

Dynamic , Static or Seperate Schema Design (Convert No-SQL to ORDBMS)

昨天和我们单位的一位开发人员聊天,关于一个项目,原来程序后端用的数据库是mongoDB sharding,准备迁到PostgreSQL.迁移过来的话涉及到从非结构化转结构化的过程. 首先说说原来mongoDB里面存储的内容 :  document1: {用户标识(带字符串数字),用户的消费情况(如业务a,消费多少,业务b消费多少,业务z消费多少)}  document2: {用户标识(带字符串数字),用户的消费情况(如业务d,消费多少,业务f消费多少)}  documentn: {....} 

关于import static net.mindview.util.Print.*;怎么设置环境变量

问题描述 关于import static net.mindview.util.Print.*;怎么设置环境变量 看下面这段代码: import java.util.*; import static net.mindview.util.Print.*; public class HelloDate { public static void main(String args[]) { print("Hello, it's: "); pritn(new Date()); } } 我是在htt

Java编程那些事儿65——static修饰符

修饰符的作用是让被修饰的内容具备特定的功能,在程序中合理使用修饰符可以在语法和功能上实现很多需要的效果.Java语言中的修饰符主要有5个:static.final.native.abstract和synchronized.这里首先讲解static.final和native的作用. 8.7.1 static修饰符 static关键字的中文意思是静态的,该修饰符可以修饰成员变量,成员常量和成员方法.使用该关键字修饰的内容,在面向对象中static修饰的内容是隶属于类,而不是直接隶属于对象的,所以st

c#中static的用法详解

C# static的全部用法收集整理 static的全部用法 要理解static,就必须要先理解另一个与之相对的关键字,很多人可能都还不知道有这个关键字,那就是auto,其实我们通常声明的不用static修饰的变量,都是auto的,因为它是默认的,就象short和long总是默认为int一样:我们通常声明一个变量: int a; string s; 其实就是: auto int a; auto string s; 而static变量的声明是: static int a; static strin

iOS开发:正确使用const,static,extern

  前言 本篇主要介绍在开发中怎么使用const,static,extern3个关键字,如果喜欢我的文章,可以关注我微博:吖了个峥,也可以来小码哥,了解下我们的iOS培训课程.后续还会更新更多内容... 一.const与宏的区别(面试题): const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 编译时刻:宏是预编译(编译之前处理),const是编译阶段. 编译检查:宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误. 宏

Java基础:如何使用Static的变量和方法

有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象.通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例.在成员的声明前面加上关键字static(静态的)就能创建这样的成员.如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象.你可以将方法和变量都声明为static.static 成员的最常见的例子是main( ) .因为在程序开始执行时必须调用main() ,所以它被声明为static

在Java类中灵活使用Static关键字

用专业术语来说,只有利用了new关键字创建对象后,才会在系统中为其创建存储空间.不过在有些特殊的情况下,程序员可能希望在没有创建对象的时候就能够为某个特定的成员分配存储空间或者可以调用某个方法等等.在Java中能否实现这个需求呢? 一.不建立对象即想使用的两种实际情况. 笔者提到的这个问题是否是无中生有呢?其实不然.在实际应用程序开发中,就经常会遇到这种情况.如现在需要三个对象,分别用来计算圆的面积.圆球的体积.圆柱的体积.在这三个对象的方法中,都需要用到一个叫做圆周率的常量,而且这个圆周率是固