Java中static关键字概述
例如一个学生类中,我们需要统计下学生类中学生对象的数量,此时数量要定义为静态变量;
示例代码:
package com.java1995;
public class Student {
int id=0;
static int num=0;
Student(int id){
this.id=id;
num++;
}
public static void main(String[] args){
Student s1=new Student(1);
Student s2=new Student(2);
Student s3=new Student(3);
Student s4=new Student(4);
Student s5=new Student(5);
Student s6=new Student(6);
System.out.println("Num:"+Student.num);
}
}
输出结果:6
1.静态 变量
静态变量属于类的,和对象没有关系;
费静态变量属于某个对象的,每个对象都有 该数据的副本,
而静态变量只有一个
访问静态变量是通过(类名.变量名)来访问的
示例代码:
package com.java1995;
public class Test {
int commonint=0;
static int staticint=0;
Test(int x){
this.commonint=x;
}
public static void main(String[] args){
Test t1=new Test(1);
Test t2=new Test(2);
System.out.println("t1.commoint:"+t1.commonint);
System.out.println("t2.commoint:"+t2.commonint);
t1.staticint=1;
//静态变量在整个类中是唯一的,对象t1改变静态变量,该类中的静态变量同时进行改变,对其他的对象也有影响
System.out.println("t1.staticint:"+t1.staticint);
System.out.println("t2.staticint:"+t2.staticint);
}
}
2.静态方法
用static 修饰的方法称为静态方法
访问静态方法是通过(类名.方法名)来访问
示例代码:
package com.java1995;
public class StaticMethod {
public static void main(String[] args){
//类名.方法名进行访问
MyMethod.printInt(111111);
MyMethod.printString("Hello world");
}
}
class MyMethod{
static void printString(String args){
System.out.println(args);
}
static void printInt(int i){
System.out.println(i);
}
}
(1)静态方法不能访问非静态变量
(2)费静态方法可以访问静态变量
PS:静态属性或者方法在类加载的时候产生的
非静态属性或者方法是在new的时候产生的
测试代码:
package com.java1995;
public class Domo {
static int x=0;//定义一个静态变量x,赋初值为0
static{
x=100;//创建一个静态语句块,对x进行赋值
}
//创建一个构造器,输出x
Domo(){
System.out.println(x);
}
public static void main(String[] args){
new Domo();
}
}
运行结果:100,
说明程序先调用的语句块,static{x=100},而不是直接调用的构造器
即,先有静态属性,再有非静态属性
3.静态常量
public static final int x=1;
Java中static关键字概述的更多相关文章
- java中static关键字的作用
java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 简单来说,在Java语言中,s ...
- [java基础]java中static关键字
1.static概念 static是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序 ...
- java中static关键字解析
static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列 ...
- Java中static关键字的详解
static关键字可以修饰方法和成员变量(不可以修饰局部变量,但是可以修饰内部类). static关键字方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者 ...
- 【转】Java中static关键字用法总结
1. 静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...
- 【java_需阅读】Java中static关键字用法总结
1. 静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...
- 关于java中Static关键字的加强理解
static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列 ...
- java中static关键字的使用
知识点:java中,static关键字修饰类的变量.方法.代码块.内部类 场景:我们在创建类的方法和变量时,如果这个类在创建多个对象时,共用同一个属性或者方法,就可以使用static关键字修饰,因为s ...
- Java中static关键字用法总结
1. 静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · ...
随机推荐
- CentOS下部署Jupyter
目录 安装 配置 准备密码密文 生成配置文件 修改配置 启动 参考:在服务器搭建Jupyter notebook 安装 为了环境比较轻,使用pip安装,非Anaconda: # 创建Python虚拟环 ...
- Angular中ui-grid的使用详解
Angular中ui-grid的使用 在项目开发的过程中,产品经理往往会提出各种需求,以提高用户体验.最近,项目中用到的表格特别多,而且表格的列数和行数也超多.为了让用户浏览更爽,产品经理提出,当表格 ...
- 【题解】 Luogu P1402 酒店之王 (二分图匹配)
懒得复制,原题目戳我 Solution: 这题没想到这么水,就是两个二分图而已 如果房间的二分图没匹配成功就直接进入下一个人 如果房间的二分图匹配成功,食物二分图匹配不成功就把房间的\(be[ ]\) ...
- 【题解】Luogu P2047 社交网络总结 (Floyd算法,最短路计数)
题目描述 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系.我 们将这个关系网络对 ...
- Oracle数据库--PL/SQL存储过程和函数的建立和调用
1.存储过程建立的格式: create or replace procedure My_Procedure is begin --执行部分(函数内容); end; / 例子:(以hr表为例) crea ...
- codeblocks调试
1.Next instruction 逐指令 (有可能一行内有多条指令) (Alt+F7) Next line 逐行(有可能一条指令分成多行) (F7) Next instruction: -> ...
- SQL提高查询效率【in、not in、between、like】等条件讲述
在使用SQL语句查询数据库记录时,如果要查询相同的内容,有着不同的多种方法. 仍然,尽管使用多种方法可以得到相同的结果,但是,如果您使用不同的方法,在执行效益上是截然不同的.因此,我们得仔细考虑,如果 ...
- 笔记 freemark list标签迭代Map<Map<String,Object>集合排序问题
本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处. 工作中出现一个比较特殊的问题,在模板ftl文件中,一般用list迭代map 举例: 后台: // 传入的参数 ...
- Java 存储和读取 oracle CLOB 类型字段的实用方法
import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; import java.io.Str ...
- springMvc + Maven 项目提示 hessian 依赖包 无法下载;
首先 从 https://github.com/alibaba/dubbo/archive/master.zip 下载最新的 dubbo 源码包到本地某个目录, 解压出来: cmd 进入该目录: 执行 ...