java static关键字_好程序员Java教程分享static关键字的理解
好程序员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关键字的理解相关推荐
- java喷泉编码_好程序员Java教程分享使用JS实现简单喷泉效果
原标题:好程序员Java教程分享使用JS实现简单喷泉效果 好程序员Java教程分享使用JS实现简单喷泉效果,最近,在教学生使用JS的基本操作,为了练习JS的基本作用,特地写了一个喷泉效果,代码如下: ...
- java 中文乱码_好程序员Java学习路线分享如何处理中文参数
好程序员Java学习路线分享如何处理中文参数,为什么表单中会产生中文乱码. 好程序员Java培训 产生乱码,就是因为服务器和客户端沟通的编码不一致造成的,因此解决的办法是:在客户端和服务器之间设置一个 ...
- bytes数组转string指定编码_好程序员Java学习路线分享Java基础之string
好程序员Java学习路线分享Java基础之string 好程序员Java培训 先来讲一下字符串 字串符分类: 不可变字符串:----String.字符串本身不能发生改变,与指向字符串的引用无关. St ...
- 好程序员技术教程分享JavaScript运动框架
好程序员技术教程分享JavaScript运动框架,有需要的朋友可以参考下. JavaScript的运动,即让某元素的某些属性由一个值变到另一个值的过程.如让div的width属性由200px变到400 ...
- 好程序员云计算教程分享入门云计算要精通学习什么?
好程序员云计算教程分享入门云计算要精通学习什么?入门学习云计算,必须得会Linux基础和网络基础,包括基本命令的使用,Linux系统的基本结构原理,系统管理,磁盘管理,raid阵列,常见的故障拍错,系 ...
- java获取mysql执行计划_好程序员Java学习路线之MySQL的执行计划
好程序员 Java 学习路线之 MySQL 的执行计划.什么是执行计划? 执行计划通常是开发者优化 SQL 语句的第一步. MySQL 在解析 SQL 语句时,会生成多套执行方案,然后内部会进行一个成 ...
- 按照姓名升序排序的代码_好程序员Java培训分享Java集合的两种排序方法
好程序员Java培训分享Java集合的两种排序方法,Java集合的工具类Collections中提供了两种排序的方法,分别是: 1.Collections.sort(List list) 2.Coll ...
- hibernate savealiasentity 保存后id为空_好程序员Java教程分享Java面试题之Hibernate
好程序员Java教程分享Java面试题之Hibernate 1.简书一下Hibernated的开发流程 第一步:加载Hibernate的配置文件,读取配置文件的参数, 第二步:创建SessionFac ...
- ajax不执行_好程序员Java学习路线分享原生Ajax的使用
好程序员Java学习路线分享原生Ajax的使用,首先我们先来看一下什么是 AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX 就是 异步.JavaScript ...
最新文章
- Visual Studio 2010构建Web浏“.NET研究”览器应用程序
- vivado调用modelsim
- 点击率预估模型汇总_CIKM20MiNet:阿里|跨域点击率预估混合兴趣模型
- css中display设置为table、table-row、table-cell后的作用及其注意点
- ubuntu12.04手动安装virtualbox增强功能
- js控制鼠标移动_原生JS封装可拖拽效果
- 软件工程第一周开课博客
- python getattr函数_[转]Python中的getattr()函数详解
- apache php显示成列表,centos中设置apache显示目录列表
- minio 单机安装、部署 centos7环境
- flask standrad class 使用
- oracle 后台进程管理,Oracle background processes后台进程
- 梅创社c语言课本答案解析,c语言程序设计第2版) 教学课件 作者 梅创社答案 第一章答案.docx...
- 虚拟机修改ip地址的操作步骤
- mongoose报错Cast to ObjectId failed for value
- Spark核心开发者:性能超Hadoop百倍,算法实现仅有其1/10或1/100
- 计算机网络——基础篇
- 怎么将图片kb压缩变小?
- 一些实用高效的装机软件汇总
- mount时发生错误:wrong fs type, bad option, bad superblock on