专栏首页程序生活Java学习(二)Static关键字的理解

Java学习(二)Static关键字的理解

在讲Static之前,引入一个小题

答案为“c”

运行结果

Cannot make a static reference to the non-static field x:意思是无法再静态方法中引用一个非静态变量x

下面是对关键字Static的理解

1、关键字static(类方法,实例方法)

    ①:静态方法和静态变量是属于某一个类,而不属于类的对象

    ②:静态方法和静态变量的引用直接通过类名引用。

    ③:在静态方法中不能调用非静态的方法和引用非静态的成员变量。非静态方法中可以调用                静态方法和变量,即(反之,则可以)。(静态方法)

2、我们可以从运行抛出的异常可以看出:静态方法不能调用非静态变量

3、“主方法是static方法,只能使用static的成员。想使用x,需要开辟对象的空间,new 一个对         象,分配一个空间。”

    如果开辟一个对象空间,程序正常运行:

运行正常

4、被static修饰后的成员具有的特点:

     A:随着类的加载而加载。

     B:优先于对象存在(即在创建对象之前,就已经随着类的加载而存在)。

     C:可被所以对象共享。

     D:可以直接被类名调用(就是说没有创建对象,也可以调用)

5、下面是在网上查到的理解:

       关于静态修饰符static的几点特别注意点。

       A:静态方法只能访问静态成员。//非静态方法既可以访问静态成员,也可以访问非静态             成员。(静态成员包括:静态变量与静态方法)

      B:静态方法中不能使用关键字this或者super。(也就是静态方法中不能出现非静态的成员       变量)

      C:主函数的 修饰 必须为 static。

      D:静态方法中要,要调用非静态方法是可以可以使用对象来调用。(即调用前先创建个           对象,再使用 (对象.方法)来调用

6、最后一点,static静态代码块。

     该代码块随着类的加载而执行,并且只执行一次。有的class不用创建对象,那么这一类            class不用构造函数来初始化,可以直接使用静态代码块来达到该class的目的(即为完成            程序员想要完成的动作)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CentOS6 Upgrade Python

    CentOS6 升级Python2.7.X和Python3.X ---- 简述 由于产品需要从裸机开始开发所以所有的配置和开发也是从零开始,这个导航是基于cen...

    BrianLv
  • Python GIL

    ---- 概述 GIL(Global Interpreter Lock)是什么东东?为什么当一些Pythoners在开发一些多线程操作的时候,都会有些很...

    BrianLv
  • Python With-As

    深入理解Python的With-as语句 ---- 学习Python有一段时间了,最近做一个项目会涉及到文件的读取和关闭。比如:我想把一些对象序列化到文件里面,...

    BrianLv
  • Python Data Model

    概述 最近在看《Fluent Python》一书,书中解释了Python很多重要的设计理念和实践,下面是我在看此书的读书笔记。Python的设计思想主要体现在它...

    BrianLv
  • Python 深浅拷贝

    Python浅拷贝和深度拷贝 今天面试了一个计算机专业研究生且大学出身也很好,但是面试的结果来看并没有达到我的预期。很多基础计算机的知识貌似都不是很懂,更别说...

    BrianLv
  • 你知道 Python 这五个有趣的彩蛋吗?

    当一门编程语言是开源的时候,往往会有产生一些搞笑和有趣的东西。通常,这意味着社区的贡献者会为该语言添加一些有趣和特别的彩蛋以及隐藏的特性(当然前提是不会增加在生...

    前朝楚水
  • 数据分析利器-NumPy

    ---- 概述 NumPy类库是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list s...

    BrianLv
  • Install Django Nginx uWSGI

    概述 最近项目需要安装和配置多站点环境,所以把多站点开发环境配置和安装记录下来,帮助其他人少走坑。 安装Python 2.7.x 首先安装一些开发环境基本的包和...

    BrianLv
  • Python 多线程的同步方法

    ---- 概述 这篇博客是我翻译Python threads synchronization: Locks, RLocks, Semaphores, Condi...

    BrianLv
  • 技术 | Python从零开始系列连载(八)

    导读 上一期学习了Python特色数据类型(列表)上半节,相信大家都已经熟悉啦,我们这一期就来学习Python特色数据类型(列表)下半节吧! 列表切片 列表切片...

    灯塔大数据

扫码关注云+社区

领取腾讯云代金券