好程序员Java教程分享static关键字的理解,static关键字含义可以理解为静态的。

1. 当其修饰属性时,该属性为整个类公有,所有的对象操作的都是同一个静态属性。所以调用时应该使用类名去调用,而不需要使用对象调用。

用类名去调用static有两层含义:

1. 可以理解为其为整个类公有的内容。

2. 可以理解为不需要创建对象就可以直接使用。

class Student {

private String name;

private String no;

// 此处省略掉getter和setter

public static String school;

public static void main(String[] args) {

Student stu1 = new Student();

stu1.setName("某某某");

stu1.setNo("1001");

Student.school = "千锋";

Student stu2 = new Student();

Student.school = "千锋教育";

System.out.println(Student.school);

}

}

2. 当其修饰方法时,该方法不需要对象调用,直接使用类名即可调用。

// 只显示代码片段

public static String getSchool() {

return school;

}

// 其他位置调用

System.out.println(Student.getSchool());

注意:在static方法中不能调用普通属性。也不能使用this关键字。因为static方法是使用类名调用的,而使用时不能判断是否创建对象,所以根本不能调用对象所对应的方法或属性,只能调用static的属性或方法。

代码块,是指在类中,直接使用{}中间写一段代码,此代码不需要手动调用,在每次创建对象时会自动调用,甚至会在构造方法之前调用。

public class Student {

private String name;

private String no;

public static String school;

public Student(){

System.out.println("无参构造函数");

}

{

System.out.println("此处是代码块");

}

}

3. 当static修饰代码块时,该代码块为静态代码块,在类加载时调用,仅在第一次加载时调用一次。不需要创建对象。如果创建了对象,调用次序为:先调用static代码块,再调用代码块,最后调用构造方法。

public class Student {

private String name;

private String no;

public static String school;

public Student(){

System.out.println("无参构造函数");

}

{

System.out.println("此处是代码块");

}

static{

System.out.println("此处是静态代码块");

}

}

当有一个父类Person,有一个子类Student,分别都有构造方法,代码块和静态代码块时,创建一个子类对象,调用次序为:

此处是Person静态代码块

此处是Student静态代码块

此处是Person代码块

Person无参构造函数

此处是Student代码块

Student无参构造函数

代码如下:

public class Person {

public Person(){

System.out.println("Person无参构造函数");

}

{

System.out.println("此处是Person代码块");

}

static{

System.out.println("此处是Person静态代码块");

}

}

public class Student extends Person{

public Student(){

System.out.println("Student无参构造函数");

}

{

System.out.println("此处是Student代码块");

}

static{

System.out.println("此处是Student静态代码块");

}

}

总结一句:static其实翻译类的,更容易理解,比如static修饰属性,称为类属性,static修饰方法,称为类方法。

java static关键字_好程序员Java教程分享static关键字的理解相关推荐

  1. java喷泉编码_好程序员Java教程分享使用JS实现简单喷泉效果

    原标题:好程序员Java教程分享使用JS实现简单喷泉效果 好程序员Java教程分享使用JS实现简单喷泉效果,最近,在教学生使用JS的基本操作,为了练习JS的基本作用,特地写了一个喷泉效果,代码如下: ...

  2. java 中文乱码_好程序员Java学习路线分享如何处理中文参数

    好程序员Java学习路线分享如何处理中文参数,为什么表单中会产生中文乱码. 好程序员Java培训 产生乱码,就是因为服务器和客户端沟通的编码不一致造成的,因此解决的办法是:在客户端和服务器之间设置一个 ...

  3. bytes数组转string指定编码_好程序员Java学习路线分享Java基础之string

    好程序员Java学习路线分享Java基础之string 好程序员Java培训 先来讲一下字符串 字串符分类: 不可变字符串:----String.字符串本身不能发生改变,与指向字符串的引用无关. St ...

  4. 好程序员技术教程分享JavaScript运动框架

    好程序员技术教程分享JavaScript运动框架,有需要的朋友可以参考下. JavaScript的运动,即让某元素的某些属性由一个值变到另一个值的过程.如让div的width属性由200px变到400 ...

  5. 好程序员云计算教程分享入门云计算要精通学习什么?

    好程序员云计算教程分享入门云计算要精通学习什么?入门学习云计算,必须得会Linux基础和网络基础,包括基本命令的使用,Linux系统的基本结构原理,系统管理,磁盘管理,raid阵列,常见的故障拍错,系 ...

  6. java获取mysql执行计划_好程序员Java学习路线之MySQL的执行计划

    好程序员 Java 学习路线之 MySQL 的执行计划.什么是执行计划? 执行计划通常是开发者优化 SQL 语句的第一步. MySQL 在解析 SQL 语句时,会生成多套执行方案,然后内部会进行一个成 ...

  7. 按照姓名升序排序的代码_好程序员Java培训分享Java集合的两种排序方法

    好程序员Java培训分享Java集合的两种排序方法,Java集合的工具类Collections中提供了两种排序的方法,分别是: 1.Collections.sort(List list) 2.Coll ...

  8. hibernate savealiasentity 保存后id为空_好程序员Java教程分享Java面试题之Hibernate

    好程序员Java教程分享Java面试题之Hibernate 1.简书一下Hibernated的开发流程 第一步:加载Hibernate的配置文件,读取配置文件的参数, 第二步:创建SessionFac ...

  9. ajax不执行_好程序员Java学习路线分享原生Ajax的使用

    好程序员Java学习路线分享原生Ajax的使用,首先我们先来看一下什么是 AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX 就是 异步.JavaScript ...

最新文章

  1. Visual Studio 2010构建Web浏“.NET研究”览器应用程序
  2. vivado调用modelsim
  3. 点击率预估模型汇总_CIKM20MiNet:阿里|跨域点击率预估混合兴趣模型
  4. css中display设置为table、table-row、table-cell后的作用及其注意点
  5. ubuntu12.04手动安装virtualbox增强功能
  6. js控制鼠标移动_原生JS封装可拖拽效果
  7. 软件工程第一周开课博客
  8. python getattr函数_[转]Python中的getattr()函数详解
  9. apache php显示成列表,centos中设置apache显示目录列表
  10. minio 单机安装、部署 centos7环境
  11. flask standrad class 使用
  12. oracle 后台进程管理,Oracle background processes后台进程
  13. 梅创社c语言课本答案解析,c语言程序设计第2版) 教学课件 作者 梅创社答案 第一章答案.docx...
  14. 虚拟机修改ip地址的操作步骤
  15. mongoose报错Cast to ObjectId failed for value
  16. Spark核心开发者:性能超Hadoop百倍,算法实现仅有其1/10或1/100
  17. 计算机网络——基础篇
  18. 怎么将图片kb压缩变小?
  19. 一些实用高效的装机软件汇总
  20. mount时发生错误:wrong fs type, bad option, bad superblock on

热门文章

  1. pytorch 检索数组
  2. python与caffe改变通道顺序
  3. TensorFlow入门教程
  4. valgrind安装使用
  5. arm编译安装openCV整理
  6. 青龙羊毛——去趟转(搬运,非原创)
  7. 通过xml 生成html页面,使用xmldom在服务器端生成静态html页面
  8. jde多目标_华科开源多目标跟踪(MOT)实时新SOTA:FairMOT
  9. maven修改运行环境配置
  10. Linux(Centos7)下redis5安装、部署、开机自启