static(静态)关键字
class Person{
String name; //成员变量,实例变量(实例中的变量)
//共享数据出现在对象之前
static String country="cn"; //对象的共享数据,称为静态变量,也叫类变量
public void show(){ //如果show方法加上static修饰,那show方法里就无法使用this或super
System.out.println(Person.country+":"+this.name); //(Person.) 可以省略,因为是在本类中调用
}
}
/*
static的特点:
1、static是一个修饰符,用于修饰成员
2、static修饰的成员被所有的对象所共享
3、static优先于对象存在,因为static的成员随着类的加载就已经存在
4、static修饰的成员多了一种调用方式,可以直接被类名所调用(方法:类名.静态(static)成员)
5、static修饰的数据是共享数据,对象中存储的是特有数据
成员变量和静态变量的区别
1、两个变量的生命周期不同
成员变量随着对象的创建而存在,随着对象的被回收而释放
静态变量随着类的加载而存在,随着类的消失而消失,一般情况下虚拟机结束,类就消失
2、调用方式不同
成员变量只能被对象调用
静态变量可以被对象调用,也可以被类名调用(建议用类调用,方便阅读和区分)
3、别名不同
成员变量也叫实例变量
静态变量也叫类变量
4、数据的存储位置不同
成员变量数据存储在堆内存的对象的中,所以也叫对象的特有数据
静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据
静态使用的注意事项:
1、静态方法只能访问静态成员(成员变量和函数)。非静态既可以访问静态,也可以访问非静态
2、静态方法中不可以使用this或者super关键字,因为静态方法没有对象,所以this没办法使用。
3、主函数是静态的
*/
class StaticDemo{
int num=4;
public static void main(String[] args){
// Person p=new Person();
// p.name="小旺";
// p.show();
// System.out.println(p.country); //static共享数据,可以直接被类访问
// System.out.println(Person.country);
// Person.show();
new StaticDemo().show(); //new StaticDemo表示:类的对象
}
public void show()
{
System.out.println(num);
}
}
static(静态)关键字的更多相关文章
- Java中static静态关键字的使用
我们可以基于一个类创建多个对象,每个对象都拥有自己的成员,所有成员变量的值是根据对象而存在的,有些时候我们希望一个类的所有对象共享一个成员,这就用到了static静态关键字 被静态关键字修饰的成员属于 ...
- php笔记(二)PHP类和对象之Static静态关键字
PHP类和对象之Static静态关键字 静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用.静态属性不允许对象使用->操作符调用. class Car { pr ...
- php中static静态关键字的使用
php中除了常规类和方法的使用,访问控制之外,还有静态关键字static,静态变量可以是局部变量也可以是全局变量,当一个程序段执行完毕时,静态变量并没有消失,它依然存在于内存中,下次在定义时还是以前的 ...
- php中static静态关键字的使用方法和应用场景
php中除了常规类和方法的使用,访问控制之外,还有静态关键字static,静态变量可以是局部变量也可以是全局变量,当一个程序段执行完毕时,静态变量并没有消失,它依然存在于内存中,下次在定义时还是以前的 ...
- Java之static静态关键字详解|final关键字详解
前言 在Java语言中,static表示"静态"的意思,使用场景可以用来修饰成员变量和成员方法,当然也可以是静态代码块.static的主要作用在于创建独立于具体对象的域变量或者方法 ...
- php中static 静态关键字
一直依赖对于php中static关键字比较模糊,只是在单例模式中用过几次.上网查了查,没有找到很全的介绍,自己总结一下. 根据使用位置分为两部分 1.函数体中的静态变量 2.类中的静态属性和方法 1 ...
- static静态关键字
转载自大佬:https://www.cnblogs.com/xrq730/p/4820992.html 静态资源和静态方法 首先,静态的资源和方法等会随着类的加载而进入内存被初始化,而非静态的资源和方 ...
- Java static静态关键字 有啥用
#static有啥用 在Java语言中,static表示“静态”的意思,使用场景可以用来修饰成员变量和成员方法,当然也可以是静态代码块.static的主要作用在于创建独立于具体对象的域变量或者方法. ...
- php Static静态关键字
静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用.静态属性不允许对象使用->操作符调用. class Car { private static $speed = ...
随机推荐
- EvansClassification
EvansClassification In his excellent book Domain Driven Design, Eric Evans creates a classification ...
- bzoj2131 免费的馅饼——树状数组优化dp
中文题目,问你最后能最多够得到多少价值的馅饼.因为宽度10^8且个数为10^5.所以不可以用dp[x][y]表示某时间某地点的最大权值. 假设你在x点处接到饼后想去y点接饼.那么需要满足的条件是t[y ...
- MySQL中使用union all获得并集的排序
项目中有时候因为某些不可逆转的原因使得表中存储的数据难以满足在页面中的展示要求.之前的项目上有文章内容的展示功能,文章分为三个状态待发布.已发布.已下线.他们在数据表中判断状态的字段(PROMOTE_ ...
- 动态 DP 学习笔记
不得不承认,去年提高组 D2T3 对动态 DP 起到了良好的普及效果. 动态 DP 主要用于解决一类问题.这类问题一般原本都是较为简单的树上 DP 问题,但是被套上了丧心病狂的修改点权的操作.举个例子 ...
- 记一次VM虚拟机Ubuntu无法联网问题
突然ubuntu获取不到ipv4地址,手动设置静态ip也ping不通本机, 在网上试了一堆的方法也不行,就怀疑是vm设置问题了.因为 作业环境我的VM需要经常性的改变桥接的网卡,所以检查了一 下这里, ...
- 51nod 1405 树的距离之和 树形dp
1405 树的距离之和 基准时间限制:1 秒 空间限制:131072 KB 收藏 关注 给定一棵无根树,假设它有n个节点,节点编号从1到n, 求任意两点之间的距离(最短路径)之和. Input ...
- go日常问题记录
1.log.Fatalln()是会强制结束进程.不要用Fatal或Panic开头的 panic是go语言一种错误处理,类似于throw,如果没人catch它,程序就会挂掉,go语言的catch是rec ...
- sqlserver存储过程的使用
参考网址:https://www.cnblogs.com/chaoa/articles/3894311.html(存储过程) https://www.cnblogs.com/selene/p/4 ...
- [原][飞行仿真]helios与dcs world安装,详尽教程
可以参考的博客: http://www.insky.cn/bbs/forum.php?mod=viewthread&tid=58175 http://www.insky.cn/bbs/foru ...
- 20190411wdVBA_排版
Sub LayoutForExamPaper() Dim StartTime As Variant Dim UsedTime As Variant StartTime = VBA.Timer Appl ...