10.1.数字与静态
来源:互联网 发布:java.util jar包 编辑:程序博客网 时间:2024/06/06 03:06
每日一句:努力的理由:怕委曲求全卑躬屈膝,活的没有尊严。
前言:数字的用途很广:取整,计算绝对值,更改显示格式,字符串转化为数字
Math方法
最接近全局的方法,因为Java中没有东西是全局的,存在一类方法不依赖实例变量的
值,如Math类的round()方法,1000个Math实例执行round(42.2)都是42,所以不会
为了执行round而在宝贵堆上建立Math的实例,即不存在空间被Math实例占用,更不存在
Math的实例变量。总之,你不需要创建math的实例,也无法创建(私有类型)。
如int x=Math.round(42.2)
说明:Math类的所有方法是静态的,不需要实例变量值,所以不需要特定对象判别行为,即无需Math实例,只会使用类本身。
静态方法与非静态方法
静态方法
static关键词,标记出不需要类实例的方法,所以也不依赖实例变量,没有对象,调用
时直接用类名称,如Math.round(42.2)
非静态方法
依赖对象的实例变量,需要创建实例才能操作方法
带有静态方法的含义
回顾:抽象类不能被创建出实例,不能被初始化,但可通过标记为private(只能被同类
的程序调用)来限制非抽象类的初始化
带有静态方法的类通常不打算被初始化,带有main()的类都算有静态方法
静态方法特点
1.静态方法不能调用非静态的变量,因为静态方法不依赖于实例变量,不知道实例变量值,自然无法使用实例变量值
2.静态方法不能调用非静态方法
3.静态变量:它的值对所有的实例来说都相同,即被同类的所有实例共享的变量
public class Duck{ private int size; public static void main(String[] args){ //静态方法 System.out.printIn("Size is"+size) //不知道哪个实例,更不知道实例变量 }}public class Duck{ private int size; public static void main(String[] args){ //静态方法 System.out.printIn("Size is"+getSize()) //不知道哪个实例,要谁的size? } public void getSize(){ return size; } }class Duck{ int duckCount=0; public Duck(){ duckCount++;}}
上述程序并不能统计创建了多少实例,因为每个Duck实例初始化时duckCount的值都是0
需要用上只有一份拷贝的变量,即静态变量。
辨析:实例变量每个实例只有一个,静态变量每个类一个。
静态变量的起始动作
静态变量是在类被加载时初始化的,加载类即有人要创建类的新实例或使用类的静态方
法和变量,换言之:静态项目的初始化有两项保证
1.静态变量会在该类的任何对象创建之前就完成初始化
2.静态变量会在该类的任何静态方法执行之前就初始化
若未赋初值,则均各自设定为默认值.
静态变量也是通过类的名称来存取的。
思考:创建只能创建一个实例的类且所有人运用这一份实例?
书海拾荒:
1.取得新对象的方法:1.通过new 2.序列化 3.JAVA Reflection API
2.可以用引用变量代替类的名称调用静态方法,但不规范,实质执行时还是用类的调用,并不知道是哪个实例调用。
- 10.1.数字与静态
- 10.2 数字与静态
- HeadFirstJava 10数字与静态
- HEAD FIRST JAVA 数字与静态 要点
- HeadFirstJava——10_数字与静态
- Head First Java#10_数字与静态
- 数字与静态(HeadfirstJava随笔)(转)
- Head First Java(2)——数字与静态及异常处理
- 静态与非静态
- 静态与伪静态
- 伪静态与静态
- 静态与非静态
- 伪静态与静态
- 静态变量与静态方法
- java,静态与伪静态
- 静态与非静态区别
- C#:静态与非静态
- 静态变量与静态函数
- 如果看到这里说明你对 TextView 已经有了一定的了解,至少已经使用过该控件显示文字过。现在来实现一些复杂一点的效果。 1. 实现可点击的超链接 我们在APP开发过程中会遇到这样的需求,例如
- sql 拆分字段分隔符
- Android Profiler in Android Studio 2.4 preview学习
- 大数据处理神器map-reduce实现(仅python和shell版本)
- 微信小程序400错误
- 10.1.数字与静态
- kmp算法的优化
- SQL 优化经验总结34条
- POI中设置Excel单元格格式样式(居中,字体,边框等)
- glide设置
- C#无需第三方插件实现json和table互转
- 使用Bootstrap+metisMenu完成简单的后台管理界面
- 大龄程序员如何保持自己的职场竞争力
- 使用 PHPStorm 与 Xdebug 调试 Laravel (一)