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

示例代码:

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. java配置环境变量与常用技巧

    一.java入门 --->java平台 •Java SE Java Platform,Standard Edition-Java平台标准版. •Java EE Java Platform,Ent ...

  2. OneZero第四周——预完成功能点统计

    本周OneZero将完成“统计”功能. 功能点统计如下: 1.主页单击记录,进入修改界面,修改记录. 2.主页长按记录,出现删除按钮,删除记录. 3.全部记录按分类进行饼图显示. 4.全部记录按分类进 ...

  3. 【bzoj5118】Fib数列2 费马小定理+矩阵乘法

    题目描述 Fib定义为Fib(0)=0,Fib(1)=1,对于n≥2,Fib(n)=Fib(n-1)+Fib(n-2) 现给出N,求Fib(2^n). 输入 本题有多组数据.第一行一个整数T,表示数据 ...

  4. Java学习之String

    一.String介绍(引用类型)1.java.lang.String字符串.用""括住的时字符串,都可以看做是实现此类的实例类String中也有许多简单方法 2.特点1).字符串不 ...

  5. 在VMware Workstation上安装Ubuntu 16.04 Server操作系统

    Ubuntu 16.04 Server的下载 http://www.ubuntu.org.cn/download/server 按空格键(Space)选中第一个ssh服务 成功!

  6. MT【199】映射的个数

    (2018中科大自招)设$S=\{1,2,3,4,5\}$则满足$f(f(x))=x$的映射:$S \longrightarrow S$的个数____解答:由于$a\ne b$时必须满足$f(a)=b ...

  7. CRM 常用SQL 脚本

    1. 查询角色.用户 SELECT DISTINCT DomainName,        u.FullName ,         u.FirstName,         u.InternalEM ...

  8. SP8093 JZPGYZ - Sevenk Love Oimaster 解题报告

    SP8093 JZPGYZ - Sevenk Love Oimaster 题目大意 给定\(n(n\le 10000)\)个模板串,以及\(m(m\le 60000)\)个查询串(模板串总长\(\le ...

  9. 9:@RequestMapping 用法详解之地址映射

    引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加任何注解),查看了提交方式为applicatio ...

  10. maven的三种工程pom、jar、war的区别

    转: maven的三种工程pom.jar.war的区别 2018年09月03日 10:02:53 houjx3 阅读数:2918更多 个人分类: maven   1.pom工程:用在父级工程或聚合工程 ...