例如一个学生类中,我们需要统计下学生类中学生对象的数量,此时数量要定义为静态变量;

示例代码:

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关键字概述的更多相关文章

  1. java中static关键字的作用

    java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 简单来说,在Java语言中,s ...

  2. [java基础]java中static关键字

    1.static概念 static是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序 ...

  3. java中static关键字解析

    static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列 ...

  4. Java中static关键字的详解

    static关键字可以修饰方法和成员变量(不可以修饰局部变量,但是可以修饰内部类). static关键字方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者 ...

  5. 【转】Java中static关键字用法总结

    1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...

  6. 【java_需阅读】Java中static关键字用法总结

    1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...

  7. 关于java中Static关键字的加强理解

    static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列 ...

  8. java中static关键字的使用

    知识点:java中,static关键字修饰类的变量.方法.代码块.内部类 场景:我们在创建类的方法和变量时,如果这个类在创建多个对象时,共用同一个属性或者方法,就可以使用static关键字修饰,因为s ...

  9. Java中static关键字用法总结

      1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · ...

随机推荐

  1. 【转帖】 redis 命令 From https://www.cnblogs.com/zhouweidong/p/7550717.html

    redis命令详解   redis中添加key value元素:set key value;       获取元素:get key ;   redis中添加集合:lpush key value1 va ...

  2. vagrant 入门

    0.说明 本门所有的操作都是基于mac.windows可做相应调整,大体流程是一样的. 1.什么是vagrant 通俗来讲vagrant是一个通过命令行,来管理虚拟机的工具,vagrant本身并没有提 ...

  3. poj2082 Terrible Sets(单调栈)

    Description Let N be the set of all natural numbers {0 , 1 , 2 , . . . }, and R be the set of all re ...

  4. HGOI20180823 三校联考

    首测:220qwq(算差的好吧) 后来改了一个地方:300qwq(算慢的好吧) std被踩qwq 注意:输入数据第一行忘记输入n,亲脑补 题解: 多项式除法(若最后除出的答案为1那么就是成功),对于f ...

  5. 【洛谷P3916】图的遍历

    题目大意:给定一个 N 个点,M 条边的有向图,求每个点能够到达的节点的最大编号是多少. 题解:因为题中所给图不一定是一个 DAG,因此无法进行按照拓扑序来动态规划,需要另辟蹊径.由于求的是每个节点能 ...

  6. 口琴练习部分 - 多孔单音奏法 & 简单伴奏

     多孔单音奏法(口含5个孔) 加入伴奏 理论知识 - 盖住 理论知识 - 松开 舌头一抬一合形成一个伴奏 高级一点的伴奏练习 正拍伴奏: 当要吹吸某一个音时,舌头先离开琴格,然后迅速盖上.

  7. 命令行 设置redis 时间

    > set name jack OK > expire jack (integer) > ttl jack (integer) - > expire name (integer ...

  8. linux BASH shell下设置字体及背景颜色

    BASH shell下设置字体及背景颜色 echo -e "\e[31mtest\e[41m" \e[30m 将字符的显示颜色改为黑色 \e[31m 将字符的显示颜色改为红色 \e ...

  9. python 基础数据类型之list

    python 基础数据类型之list: 1.列表的创建 list1 = ['hello', 'world', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ...

  10. Zabbix应用五:Zabbix监控多Tomcat

    利用Zabbix Trapper方式监控多Tomcat实例 Zabbix自带的模版(JMX Tomcat.JMX Generic)默认只能在一台机器上监控一个tomcat实例(因为监控项中的key不能 ...