static的用法及作用

static可以用来修饰属性、方法和代码块。static修饰的变量属于这个类所有,既由这个类创建的所有对象共用一个static变量。通常把static修饰的属性和方法称为类属性(类变量)、类方法。不使用static修饰的属性和方法属于单个对象,通常称为实例属性(实例变量)、实例方法。使用static修饰方法的最常见的例子是我们熟悉的main()方法。下面通过一个示例学习是static的用法及使用static修饰属性和代码块,是如何分配内存空间的。代码示例如下:

运行结果如图所示:

从结果中可以得出以下结论:

在加载类的过程中,完成静态变量的内存分配,再执行静态代码块,两者是在创建对象之前执行的。

类属性、类方法可以通过类名和对象名访问,实例属性、实例方法只能通过对象名访问。

类方法只能访问类属性和其他类方法。

注意:

静态方法中不能使用this和super关键字(super与继承有关)。

我们可以通过设置断点调试的方式观察执行顺序,以此加深对static的了解。另外,在使用常量时,为了方便调用,推荐使用static来修饰。例如:

static final String SEX_MAN="man";

在使用时可以直接通过类名。SEX_MAN方式使用。这时称这个常量为静态变量。

静态方法
静态方法可以直接通过类名调用,任何的实例也都可以调用,
因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。
因为实例成员与特定的对象关联!这个需要去理解,想明白其中的道理,不是记忆!!!
因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。
例如为了方便方法的调用,Java API中的Math类中所有的方法都是静态的,而一般类内部的static方法也是方便其它类对该方法的调用。
静态方法是类内部的一类特殊方法,只有在需要时才将对应的方法声明成静态的,一个类内部的方法一般都是非静态的

原文地址:https://www.cnblogs.com/huanghexiang/p/11615003.html

时间: 2024-10-09 10:56:57

static的用法及作用的相关文章

Java下static关键字用法详解

Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static 可以修饰: 1. 语句块 2. 成员变量(但是不能修饰局部变量) 3. 方法 4. 接口(内部接口) 5. 类(只能修饰在类中的类, 即静态内部类) 6. jdk 1.5 中新增的静态导入 那么static 修饰的表示什么呢? 当创建一个类时,就是在创建一个新类型,描述这个类的对象的外观和行为,除

static inline volatile的作用

1.static (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.为理解这句话,我举例来说明.我们要同时编译两个源文件,一个是a.c,另一个是main.c. 下面是a.c的内容 [cpp] view plaincopy char a = 'A'; // global variable void msg() { printf("Hello/n"); } 下面是main.c的内容 [cpp] view p

ava下static关键字用法详解

Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static 可以修饰: 1. 语句块 2. 成员变量(但是不能修饰局部变量) 3. 方法 4. 接口(内部接口) 5. 类(只能修饰在类中的类, 即静态内部类) 6. jdk 1.5 中新增的静态导入 那么static 修饰的表示什么呢? 当创建一个类时,就是在创建一个新类型,描述这个类的对象的外观和行为,除

C++static关键字用法

一.static的作用有三种:限制变量或函数作用域.保持变量内容的持久.默认初始化为0 1.被static关键字修饰的全局函数或者变量具有文件作用域,即只在当前文件中可见. 2.被static修饰的变量会被存储在静态存储区,生命周期也为从定义直至程序结束.对于局部变量,即使在函数退出后该静态变量依然存在,然而却也无法访问.此外,static修饰的变量一生只会被初始化一次(这点经常被用作面试的小题,需注意). 3.正是因为被static修饰的变量会被存储在静态存储区,所以才有了这个一条.因为静态存

关键字static和const的作用

一.在C语言中,关键字static的作用: (1)设置变量的存储域,函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值: (2)限制变量的作用域,在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问: (3)限制函数的作用域,在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内:(4)在类中的static成员变量意味着它为该类的所有实例所共享,也

Java中static的用法

static静态,作为修饰符,最初是由c引入,一开始static表示退出一个块后依然存在的局部变量.随后,static表示不能被其他文件访问的全局变量和函数.到了C++和java,static表示属于类且不属于类对象的变量和函数. 从具体用法来看,主要用到5个方面. 一.静态域. static修饰类的域(字段,成员变量),被static修饰的域在类中只有一个,它属于类,也称为类域.它只能被类操作,不能由对象操作.比如 pubic class Employee { private static i

malloc、ralloc、calloc的用法,作用,区别,及实现原理

先来看一下三个函数的声明: void * malloc(usigned size); void * realloc(void *ptr, unsigned newsize); void * calloc(size_t numElements, size_t sizeofElement); 它们都包含在#include <stdlib.h>头文件中,他们的返回值都是请求分配的地址,如果请求失败就返回NULL 解释一下这三个函数的用法.作用.区别. malloc() malloc()在内存的动态存

static 的用法

static 英文意思是 “静态的”. 在C 语言中,它用在 函数或变量前面. 1. 用在变量前面,它表示该变量是静态变量,意思是说,这个变量放在内存的静态区域,即使作用域结束,值也会一直保存着, 不会像变量那样,随作用域结束而释放所占的内存. static修饰的变量作用域有两种:1)修饰全局的变量,作用域在声明的文件中,其他文件不可调用. 2)修饰局部的变量,作用域在局部变量所在的函数中,其他函数不可见该变量. 2. 用在函数前,表示静态函数,不能被当前文件之外的其他文件调用. static

C#类中static变量用法分析

本文实例讲述了C#类中static变量用法.分享给大家供大家参考.具体分析如下: 先来看一段代码: 代码如下: using System; namespace Param { class Class1 { static int i = getNum(); int j = getNum(); static int num = 1; static int getNum() { return num; } [STAThread] static void Main(string[] args) { Co