博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础知识整理之static应用与总结
阅读量:6878 次
发布时间:2019-06-26

本文共 2051 字,大约阅读时间需要 6 分钟。

前面两篇分别介绍了static的属性以及方法。本篇就做一个收尾,介绍下剩下的。

在之前的总结:

  • 不管多少个对象,都使用同一个 static 属性
  • 使用 static 方法可以避免掉用实例化方法之后才能调用的限制。

导入 static 类的包

静态导入包

静态导包用法,将类的方法直接导入到当前类中,从而直接使用“方法名”即可调用类方法,更加方便。但是看上面的就不是特别直观,不便于阅读代码。

Utils.java

package statics.utils;public class Utils {    public static int int2Str(String str) {        return Integer.valueOf(str);    }    public static int add(int x, int y) {        return x+y;    }}

Test.java

// 导入包 注意使用了 static 关键字import static statics.utils.Utils.*;public class Test {    public static void main(String[] args) {        // 上面使用了 static 关键字之后,可以直接使用 Utils 中的方法。        add(1, 2);    }}

通过 类名.方法名

Test.java

// 导入包 注意没有使用 static 关键字了import statics.utils.Utils;public class Test {    public static void main(String[] args) {        // 上面使用了 static 关键字之后,可以直接使用 Utils 中的方法。        Utils.add(1, 2);    }}

static 的实例用法

对于了解了static 方法之后,在来看几个实际的例子回顾与加深下对 static的理解。

示例一:实现类实例化的统计

需求

希望在每次实例化对象的时候,都打印一个信息,输出产生第 x 个实例化对象。

Test.java

class Book {        static int Index = 0;        Book(){        Index++;        System.out.println("实例化对象第"+ Index + "个");    }}public class Test {    public static void main(String[] args) {        new Book();     new Book();     new Book();        new Book();     new Book();     new Book();    }}

控制台输出

实例化对象第1个实例化对象第2个实例化对象第3个实例化对象第4个实例化对象第5个实例化对象第6个

示例二:实现属性的自动设置

需求

例如:现在某一个类有一个无参构造方法,一个有参构造方法,有参构造主要的目的是传递一个 title 属性,但是希望调用的不管是 有参构造方法还是无参构造方法,都可以为 title 设置内容,希望内容不要重复。

Test.java

class Book {    private String title;    static int Index = 0;    Book() {        // 通过 this 关键字调用有参构造方法        this("NOTITLE" + Index++);    }    Book(String title) {        this.title = title;    }        public String getTitle() {        return this.title;    }}public class Test {    public static void main(String[] args) {        System.out.println(new Book("java").getTitle());        System.out.println(new Book().getTitle());        System.out.println(new Book().getTitle());    }}

控制台输出

javaNOTITLE0NOTITLE1

总结

  • static 属性和方法可以再没有实例化对象的时候直接由类名称进行调用。
  • static 属性保存在全局数据区。内存区一共有四个:栈内存、堆内存、全局数据区(存放所有的数据)、全局代码区(存放所有的方法)

转载地址:http://rdgfl.baihongyu.com/

你可能感兴趣的文章
tengine 的优化
查看>>
C++编译器与链接器工作原理
查看>>
软件缺陷分析-软件测试之犯罪心理学
查看>>
Python实战之自己主动化评论
查看>>
spring boot下使用logback或log4j生成符合Logstash标准的JSON格式
查看>>
iOS面试题合集(77道)
查看>>
hadoop安装及配置入门篇
查看>>
[原] KVM 虚拟化原理探究(2)— QEMU启动过程
查看>>
使用Java程序调用MatLab
查看>>
什么是C++虚函数、虚函数的作用和使用方法
查看>>
Atitit.cto 与技术总监的区别
查看>>
关于【自证清白】
查看>>
手把手教你crontab排障
查看>>
订单编号
查看>>
纪念我曾经的 JAVA 姿势--转
查看>>
js 如何清除setinterval
查看>>
我为NET狂官方面试题-数据库篇答案
查看>>
玩转iOS开发:iOS开发中的装逼技术 - RunTime(一)
查看>>
CSS实现水平垂直居中的1010种方式(史上最全)
查看>>
BCH曼谷矿工会议的积极方面:社区彼此更加了解
查看>>