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

示例代码:

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 int_Java中static关键字概述相关推荐

  1. java static method_java 中static的几种用法

    1.static修饰变量和方法 在类的变量和方法上加上了static修饰符以后,在JVM加载该类的时候就会被分配到方法区(new 出来的对象分配到堆),因此不需要在创建该类的实例以后再进行引用. 有几 ...

  2. JAVA及数据库中的关键字(常用)

    JAVA中的关键字 public/private/protected/class public 权限修饰符,不同包下,也可以使用private 被private修饰的成员,只能在本类中进行访问,其他类 ...

  3. php self 和 static,PHP中static和self有哪些区别?

    PHP中static和self有哪些区别? 发布时间:2020-04-02 14:51:57 来源:亿速云 阅读:36 作者:小新 这篇文章主要为大家详细介绍了PHP中static和self有哪些区别 ...

  4. java static void_java中static关键字

    一.static关键字的介绍 关于static关键字,我们最是在一个类的主方法中见到的,如"public static void main(String[] args)",stat ...

  5. java assert int_java中的assert(转载)2

    转载自:http://lavasoft.blog.51cto.com/62575/43735/          第11楼的说法 assert 有很大的用处 首先可以用在单元测试代码中.junit侵入 ...

  6. java synchronized boolean_java中synchronized关键字

    代码示例: package com.test; /* * x,y值为什么不能保持相同: * */ public class Pair implements Runnable{ boolean b = ...

  7. java integer == int_Java中int和Integer的区别详解

    1.Java 中的数据类型分为基本数据类型和复杂数据类型 int是前者>>integer 是后者(也就是一个类) 2.初始化时>> int i =1; Integer i= n ...

  8. 从 Java 档案(JAR) 中读取文件

    Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR ...

  9. java读取系统中指定的文件_java读取jar中指定的文件

    Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR ...

最新文章

  1. Maven中jar版本冲突问题的解决
  2. 友盟统计--注意事项
  3. SparkWeb 编译
  4. memcached使用详解
  5. drawboard pdf拆分文件_掌握在线PDF拆分技巧,从此打开文件不再处于“加载中”...
  6. php apc缓存以及与redis的对比
  7. 游戏产业链:游戏分发/渠道商
  8. 编程中的快速数学公式 python
  9. Python之OpenGL笔记(30):飘扬的旗帜
  10. 【STM32】几款常用产品(F1、F4、F7)的区别
  11. 视频播放器 layui-ckplayer
  12. 关于销售订单高级定价的一点疑惑
  13. EAS7.5服务器文件夹备份,ORACLE+EAS数据备份与恢复参考
  14. android输入法服务,Android调用系统输入法
  15. rk3399 typec鼠标及滑鼠问题
  16. 第一章 基本数据类型-API的理解和使用
  17. FleaPHP 开发指南 - 4. 命名规范和目录结构
  18. 卡苹果6plus在线_坐公交“神器”来了!在线充值、在线年检、信息查询...太方便了!...
  19. zipkin ui界面详解
  20. ChatGPT版必应疑似「发疯」?微软紧急限制回答数目

热门文章

  1. object转为Long类型
  2. 华为鸿蒙系统是指芯片吗_麒麟芯片+鸿蒙系统+国产屏幕,这样的华为手机你会买吗?...
  3. till和until的区别
  4. $.get()调用php_jquery get ($.get) 事件用法与分析
  5. 2D动画——CSS制作摩天轮
  6. java8List.sort()排序常用方法
  7. 新浪微博错误代码大全
  8. nginx反向代理配置去除前缀问题
  9. 如何删除idea里面创建的工程项目
  10. java oss 批量传输_如何批量安装软件