场景一:静态变量

  1. package oop.demo07;
  2.  
  3. public class Student {
  4.  
  5. private static int age;//静态的变量 一般多线程用的比较多
  6. private double score;//非静态变量
  7.  
  8. public static void main(String[] args) {
  9. Student s1 = new Student();
  10.  
  11. System.out.println(Student.age); //static静态变量,可以通过类直接调用
  12. System.out.println(s1.age);
  13. System.out.println(s1.score);
  14. }
  15. }

场景二:静态方法

  1. package oop.demo07;
  2.  
  3. public class Student {
  4.  
  5. public void run(){
  6. System.out.println("Run");
  7. go(); //可以直接调用静态方法
  8. }
  9.  
  10. public static void go(){
  11. System.out.println("go");
  12. }
  13.  
  14. public static void main(String[] args) {
  15. Student.go(); //静态方法可以通过类直接调用
  16. go(); //同时静态方法还支持直接调用
  17. new Student().run();//非静态方法,需要先new进行实例,才能调用
  18. }
  19. }

Static修饰的含义隶属于类,而不是对象,是一个公共的存储内存的空间

场景三:代码块

  1. package oop.demo07;
  2.  
  3. public class Student {
  4. /*
  5. {
  6. //代码块(匿名代码块)
  7. 创建对象的时候就创建了匿名代码块,而且在构造器之前
  8.  
  9. }
  10.  
  11. static {
  12. //静态代码块
  13. 常用于加载一些初始化的数据
  14. 类一加载就执行,永久只执行一次
  15. }
  16. */
  17.  
  18. //第二个执行
  19. {
  20. System.out.println("匿名代码块");
  21. }
  22.  
  23. //第一个执行
  24. static {
  25. System.out.println("静态代码块");
  26. }
  27.  
  28. //第三个执行
  29. public Student() {
  30. System.out.println("构造器(构造方法)");
  31. }
  32.  
  33. public static void main(String[] args) {
  34. Student student = new Student();
  35. }
  36. }

Static代码块只执行一次,匿名代码块和构造器new一次,执行一次

场景四:静态导入包

常规

  1. package oop.demo07;
  2.  
  3. public class Student {
  4. public static void main(String[] args) {
  5. System.out.println(Math.random());
  6. System.out.println(Math.PI);
  7. }
  8. }

静态导入包,调用方法更简洁

  1. package oop.demo07;
  2.  
  3. //静态导入包
  4. import static java.lang.Math.random;
  5. import static java.lang.Math.PI;
  6. public class Student {
  7. public static void main(String[] args) {
  8. System.out.println(random());
  9. System.out.println(PI);
  10. }
  11. }

Java面向对象系列(12)- Static关键字讲解的更多相关文章

  1. Java 集合系列 12 TreeMap

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  2. java io系列12之 BufferedInputStream(缓冲输入流)的认知、源码和示例

    本章内容包括3个部分:BufferedInputStream介绍,BufferedInputStream源码,以及BufferedInputStream使用示例. 转载请注明出处:http://www ...

  3. 面向对象编程(七)——Static关键字

    Static变量

  4. “全栈2019”Java第四十一章:static关键字

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. 2017.10.23 Java 面向对象深入学习---final 关键字、static关键字、匿名对象等

    今日内容介绍 1.final 关键字 2.static 关键字 3.匿名对象 4.内部类 5.包的声明与访问 6.访问修饰符 7.代码块 第一节课 01(面向对象)final关键字概念.avi 02: ...

  6. Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例

    概要 这一章,我们对TreeMap进行学习.我们先对TreeMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeMap.内容包括:第1部分 TreeMap介绍第2部分 TreeMa ...

  7. Java:final、static关键字 详解+两者结合使用

    一  final关键字 1) 关于final的重要知识点 final关键字可以用于成员变量.本地变量.方法以及类. final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误. ...

  8. 【转】Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例

    概要 这一章,我们对TreeMap进行学习.我们先对TreeMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeMap.内容包括:第1部分 TreeMap介绍第2部分 TreeMa ...

  9. Java继承和多态-Static关键字

    1. 什么是Static 关键字? Static 能够与变量,方法和类一起使用,称为静态变量,静态方法.如果在一个类中使用static修饰变量或者方法的话,它们可以直接通过类访问,不需要创建一个类的对 ...

  10. 菜鸡的Java笔记 第十七 static 关键字

    static 是java中定义的一个关键字,主要是描述全局的概念,所以利用static关键字可以定义属性,定义方法        但是在90%的情况下,我们的开发代码很少会去直接编写static*// ...

随机推荐

  1. Shellshock 破壳漏洞 Writeup

    破壳漏洞 CVE编号:CVE-2014-6271 题目URL:http://www.whalwl.site:8029/ 提示:flag在服务器根目录 ShellShock (CVE-2014-6271 ...

  2. 流动的观察者模式 | Flutter 设计模式

    观察者模式,又称发布订阅模式,是一种行为设计模式--你可以定义一种订阅机制,可在对象事件发生时通知多个 观察 该对象的其他对象. 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主 ...

  3. Pikachu-File Inclusion模块

    一.概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 在PHP中,提供了:include(),inclu ...

  4. 题解 P4111 [HEOI2015]小 Z 的房间

    题解 题目大意:给定一个无向图,求它的生成树个数. 一道裸的矩阵树定理,外加一些建图的技巧. 矩阵树定理 对于一个 \(Laplace\) 矩阵,其去掉任意一行后的行列式即为答案. 行列式不会的看这里 ...

  5. 从自旋锁、睡眠锁、读写锁到 Linux RCU 机制讲解

    ​    同步自我的 csdn 博客 6.S081 从自旋锁.睡眠锁.读写锁到 Linux RCU 机制讲解_我说我谁呢 --CSDN博客 总结一下 O/S 课程里面和锁相关的内容. 本文是 6.S0 ...

  6. mysql 数据库 分表后 怎么进行分页查询?Mysql分库分表方案?

    Mysql分库分表方案 1.为什么要分表: 当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了.分表的目的就在于此,减小数据库的负担,缩短查询时间. m ...

  7. spring boot 2.0.0 + shiro + redis实现前后端分离的项目

    简介 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码学和会话管理.使用Shiro的易于理解的API,您可以快速.轻松地获得任何应用程序,从最小的移动应用程序到最大 ...

  8. mzy git学习,禁用Fast forward的普通合并(六)

    git merge --no-ff -m "msg" x-branch:禁用Fast forward的普通合并 通常,合并分支时,如果可能,Git会用Fast forward模式, ...

  9. 使用元数据设计的update、query封装

    package util; import java.lang.reflect.InvocationTargetException; import java.sql.Connection; import ...

  10. ES6扩展——箭头函数

    1.箭头函数 在es6中,单一参数的单行箭头函数语法结构可以总结如下: const 函数名 = 传入的参数 => 函数返回的内容,因此针对于 const pop = arr => arr. ...