201671010145 2016-2017《Java程序设计》静态域与静态方法

1.静态域

如果将域定义为static,那么每个类中只有一个这样的域。而每一个对象对于所有的实例域却都有自己的一份拷贝。例如,假定需要给每一个雇员赋予唯一的表示码。这里给Employee类添加一个实例域id和一个静态域nextld:

class Employee

{

private int id;

private static int nextId=1;

}

现在,每一个雇员对象都有一个自己的id域,但这个类的所有实例将共享一个nextid域,换句话说,如果有1000个Employee类的对象,则有1000个实例域id,但是只有一个静态域nextid,即使没有一个雇员对象,静态域nextil也存在,他属于类,而不属于任何独立的对象。

下面来实现一个简单的方法:

public  void  setId()

id= nextId;

nextId++;

假设为harry设定雇员标识码:

harry.setId();

那么harry的id域被设置,并且静态域nextId的值加1:

hurry.id= . . .;

Employee.nextId++;

2.静态常量

静态变量使用的比较少,但是静态常量却使用的比较多,例如,在Math类中定义了一个静态常量:

public class Math

{

public  static final double PI=3.14159265358979323846;

}

在程序中通过Math.PI来访问这个常量

如果关键字static被省略,PI就成了Math类的一个实例域,即需要用Math类的对向来访问PI,并且每一个Math对象都有他自己的一份PI拷贝。

已经使用多次的另一个静态常量是System.out,他在System类中声明:

public  class  System

public  static  final  PrintStream  out= ...;

3.静态方法:

静态方法是不能想对象实施操作的方法。例如,Math类的pow方法就是一个静态方法。表达式计算幂,他在运行的时候,不使用任何Math对象,换句话,没有隐式的参数。

可以认为静态方法不能操作对象,所以不能在静态方法中访问实例域。但是,静态方法可以访问自身类中的静态域。下面例子:

public  static int getNextId()

return nextId;

可以通过类名调用这个方法:

int n=Employee.getNextId();

这个方法可以省略static,但是需要通过Employee类对象的引用调用这个方法。

时间: 2024-10-25 05:01:55

201671010145 2016-2017《Java程序设计》静态域与静态方法的相关文章

201671010145 2016-2017《Java程序设计》JAVA图形程序设计基本框架

在Java 1.0 刚刚出现的时候,包含了一个用于基本GUI程序设计的类库,Sun将它称为抽象窗口工具箱(Abstract Window Toolkit, AWT). 1996年,Netscape创建了一种称为IFC(Internet Foundation Class)的GUI库.Sun与Netscape合作完善了这种方式,创建了一个名为Swing的用户界面库. Swing没有完全替代AWT,而是基于AWT架构之上.Swing仅仅提供了能力更加强大的用户界面组件.尤其在采用Swing编写的程序中

201671010145 2016-2017 《Java程序设计》java的继承中什么叫方法覆盖,是如何实现的?

方法覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用.最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而在实现时,就需要实现接口声明的所有方法.除了这个典型的用法以外,在继承中也可能会在子类覆盖父类中的方法.在覆盖要注意以下的几点:1.覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果:2.覆盖的方法的返回值必须和被覆盖的方法的返回一致:3.覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类:4.被覆盖的方法不

201671010145 2016-2017-3《Java程序设计》Java中类与对象的区别

1.什么是类呢? 书面语句:类是一种事物,或者一类相同物体的抽象.类是对一个或者几个相似对象的描述,它把不同对象具有的共性抽象出来.也可以说类是同一类对象的原型. 例如:人就是一个类,因为它是所有现实中的人的一个统称 2.什么是对象呢? 对象就是一个类的具体的实例.通俗的将就是.能够具体到某一个事物或者个体的那就可以成为对象.比如说:人是一个类,那么"蝙蝠侠"就是一个对象了.因为它有自身的一系列行为跟动作. 3.类与对象的区别跟联系. 书面语就是:类是一类物体的共同特性的抽象.对象是类

201671010126 2016-2017-2《JAVA程序设计》学习心得

通过这两周对JAVA程序设计的学习,我对这门课程有了新的认识,每门学科都有其精髓,想要对JAVA有更深的了解,对于初学者的我来说还需付出很多努力. 两周以来尽管伴随着许多疑惑,还是完成了对前三章的学习,通过这短短半个月的时间,发现JAVA的基础知识太过繁多,知识点相对较为零碎,许多东西理解起来有一定难度.所幸JAVA程序设计与上学期所学的C语言有着许多的相似之处,所以就可以借鉴对C语言的学习经验来学习JAVA,尽管能学好C语言不意味着就能学好JAVA,不过相信以前C语言的学习对JAVA这门新课程

20145225《Java程序设计》 2015—2016年学期课程总结

20145225<Java程序设计> 2015—2016年学期课程总结 读书笔记链接汇总 1.2016年2月25日 <Java程序设计>课程准备之问卷调查 摘要: 一.你对自己的未来有什么规划?做了哪些准备? 答:未来就是找个好工作,在保证自己与父母生活条件良好的基础上,进一步的提高精神上的需求...... 2.2016年3月6日 <Java程序设计>第1周学习总结——小试牛刀 摘要: 教材学习内容总结 1.java语言概述:一门高级编程语言. 2.java语言的三种技

HeyWeGo小组《Java程序设计》 2015—2016年学期团队项目总结

HeyWeGo小组<Java程序设计> 2015—2016年学期团队项目总结 题目简介 一个简单的扫雷小游戏,在12*12的方格盘上,首先可以设定雷的个数,然后点击开始程序就会随机布雷,开始游戏后如果点到雷就会显示游戏结束,如果没有,会出现数字表示周围一圈雷的个数,以此推理当扫出所有雷将显示游戏胜利. 游戏项目规划: 确定游戏中方块格子的个数 确定游戏中地雷的个数(初始10个),完成布雷 计算每个方块周围的雷数,在方块周围本身没有地雷的情况下,统计周围地雷的个数 若周围没有地雷则翻开周围的空白

2017面向对象程序设计(Java)第二周学习总结

2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为第一周学长正在家里吃西瓜吹空调.好了,闲言少叙.我先为你们介绍一下助教的职责,而后再对你们的学习情况进行总结! 身为你们本学期Java课程的助教...之一,我的任务是:指导你们学习,批改我所负责学习小组的实验作业.阅读博文并回复.其他学习小组会有另外三位助教负责.由于我们每周五都会汇总你们的情况,其

2017面向对象程序设计(Java) 第1周学习指导及要求(2017.8.24-2017.8.27)

2017面向对象程序设计(Java) 第1周学习指导及要求(2017.8.24-2017.8.27)   学习目标 了解课程上课方式及老师教学要求,掌握课程学习必要的软件工具: 简单了解Java特点及历史: 理解JVM.JRE与JDK等概念,学会下载.安装.测试JDK: 掌握PATH.CLASSPATH的系统变量作用并会设置: 掌握命令行编译并运行Java程序的步骤: 掌握Java Application 程序结构特点: 了解Java Applet程序结构及运行要求: 初步使用Elipse,学会

20145317彭垚 《Java程序设计》第7周学习总结

20145317彭垚 <Java程序设计>第7周学习总结 教材学习内容总结 第十三章 时间与日期 13.1.1 时间的度量·即使标注为GMT(格林威治时间),实际上谈到的的是UTC(Unix时间)时间.·秒的单位定义时基于TAI.也就是铯原子辐射的振动次数.·UTC考虑了地球自转越来越慢而有闰秒修正,确保UTC与UT相差不会超过0.9秒.最近一次的闰秒修正为2012年6月30日.·Unix时间是1970年1月1日00:00:00为起点二经过的描述,不考虑闰秒,很多Unix系统.平台.软件等,都