static关键字的作用
static可以用来定义静态成员变量、静态函数、静态代码块。
静态成员变量的语法特点
定义方法:在成员变量前面加上static
class Person{
static int i; //静态成员变量
}

在普通的成员变量中,成员变量的值是属于单个对象的,修改某个成员变量的值对其他成员变量来说是没有影响的。

在静态的成员变量中,所有的对象使用的成员变量是同一个,值也一样。当静态成员变量的值被修改了,对象的成员变量值也跟着变化。
静态成员变量可以直接用类名来调用,也可以用对象来调用静态成员变量。
class Test{
public static void main(String args[]){
Person p1 = new Person();
Person p2 = new Person();
Person.i = 10;
System.out.println("p1的i的值为"+p1.i);
System.out.println("p2的i的值为"+p2.i);
p1.i = 20;
System.out.println("p1的i的值为"+p1.i);
System.out.println("p2的i的值为"+p2.i);
}
}

静态成员变量是类层次的变量,属于这一个类,这个类所生成的所有对象使用的都是同一个静态变量,任何一个成员变量的值如果修改,其他所有成员变量的值都会修改。
静态成员函数的语法特点
定义方法:在成员函数前面加上static,静态成员函数可以直接用类名来调用
class Person{
static void fun(){
System.out.println("我是静态函数");
}
}
class Test{
public static void main(String args[]){
Person.fun(); //使用类调用静态函数
}
}
在静态函数中不能调用非静态的成员变量
class Person{
String name;
static void talk(){
System.out.println("我叫"+name);
}
}

个人理解:当在成员函数前不加static时,可用this调用成员变量name(默认情况下省略this),this对象表示调用了这个成员函数的对象。加上static后,使用类名来调用静态函数(没有对象),成员变量必须要用对象来调用,所以在静态函数中不能调用非静态的成员变量(不能使用this),但可调用静态成员变量。
静态代码块的语法特点
class Test{
static{
System.out.println("我是静态代码块");
}
public static void main(String args[]){
}
}
静态代码块没有名字,在装载类的时候执行静态代码块。静态代码块用于给静态变量赋初值。
static关键字的作用的更多相关文章
- C#: static关键字的作用(转)
C#: static关键字的作用 static意思是静态,可以修饰类.字段.属性.方法 标记为static的就不用创建实例对象调用了,可以通过类名直接点出来 static三种用法: 1.用于变量前 ...
- java中static关键字的作用
java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 简单来说,在Java语言中,s ...
- 【转载】Static 关键字的作用
原始日期:2016-07-16 17:53 一 普通的static关键字 1. 静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量.我们先举一个静态全局变 ...
- static 关键字的作用
在C语言中,关键字static有三个明显的作用: 1)在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(该变量存放在静态变量区). 2) 在模块内(但在函数体外),一个被声明为静态 ...
- static关键字的作用是什么?
static的作用:常用来修饰变量. 全局变量被static修饰后,就称之为静态全局变量:局部变量被static修饰后,就称之为静态局部变量.统称为静态变量. 如果需要进一步解释下面的现象,可以了解i ...
- 转:C#: static关键字的作用
tatic意思是静态,可以修饰类.字段.属性.方法 标记为static的就不用创建实例对象调用了,可以通过类名直接点出来 static三种用法: 1.用于变量前,表示每次重新使用该变量所在方法.类或自 ...
- Static关键字的作用及使用
1.使用static声明属性 如果希望一个属性被所有对象共同拥有,可以将其声明为static类型. 声明为static类型的属性或方法,此属性或方法也被称为类方法,可以由类名直接调用. class P ...
- C#学习笔记随笔(1)----C#中static关键字的作用
静态分配的,有两种情况: 1. 用在类里的属性.方法前面,这样的静态属性与方法不需要创建实例就能访问, 通过类名或对象名都能访问它,静态属性.方法只有“一份”:即如果一个类新建有N个 对象,这N 个对 ...
- static关键字的作用(修饰类、方法、变量、静态块)
1. static修饰的类只能为内部类,普通类无法用static关键字修饰.static修饰的内部类相当于一个普通的类,访问方式为(new 外部类名.内部类的方法() ).如下所示: public c ...
- C语言中static关键字的作用
static的作用(精辟分析) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加sta ...
随机推荐
- 使用Kinect2.0获取点云以在GLUT中显示
这篇文章用来记录Kinect2.0如何生成点云. 以下示例源自Kinect提供的example修改完成,其名称会在小标题下方注解. 首先,要获取点云需要获取图像的深度数据和颜色数据.最后再将深度数据与 ...
- GLib基础
实用功能 GLib中包含了近二十种实用功能,从简单的字符处理到初学者很难理解的XML解析功能,这里介绍两种较简单的:随机数和计时. 下面代码演示如何产生1-100之间的随机整数和演示如何计算30000 ...
- JavaScript 变量克隆和判断变量类型
一.变量克隆 在js中经常会遇到将一个变量赋值给一个新的变量这种情况,这对于基本类型很容易去实现,直接通过等号赋值就可以了,对于引用类型就不能这样了.(注:像函数,正则也可以直接通过等号赋值) 这里我 ...
- Xcode清缓存
前往-->按住option键进入资源库-->Developer-->Xcode-->DerivedData 删除里面的文件就行了
- linux查看内存和回收内存
清理前内存使用情况 free -m free -g echo 1 > /proc/sys/vm/drop_caches 清理后内存使用情况 free -m
- Software: MPEG-7 Feature Extraction Library
Software MPEG-7 Feature Extraction Library : This library is adapted from MPEG-7 XM Reference Softwa ...
- IOS异步和多线程操作&&在sqlite3中的应用
1,数据库I/O操作(异步) 数据库本身是存储在磁盘上.访问和修改数据库,即对磁盘进行读写,即I/O操作. 磁盘属于计算机硬件,具有DMA能力,不需要CPU干预,可以实现异步操作. I/O操作一般是消 ...
- 前端神器 Firebug 2.0 新特性一览
如果你从事Web前端方面的开发工作,那么对Firebug一定不会陌生,这是Firefox浏览器的一款插件,集HTML查看和编辑.Javascript控制台.网络状况监视器于一体,给Web开发者带来了极 ...
- 新安装的ubuntu系统如何设置中文输入法的方案
本文是本人写的第一篇的linux博客,因为很菜,所以就把刚才自己安装中文输入法的过程给大家介绍一下,希望有所帮助. 1.首先,打开命令终端,两种方式,在Dash里面输入terminal然后enter, ...
- ASP.NET的SEO: 服务器控件背后——SEO友好的Html和JavaScript
本系列目录 假设你需要从一个页面转向其他页面,下面有很多种方式,你是如何选择的呢?你能清晰的说明理由么? <%--链接的表现形式--%> <asp:Hy ...