zoukankan      html  css  js  c++  java
  • JAVA-初步认识-第七章-this关键字注意事项

    一. 

    静态变量在使用过程中注意的一些细节。

    静态static是一种修饰符,既可以修饰成员变量,也可以修饰方法。因为,成员中既包含着变量,也包含着函数。

    对上面截图中的程序进行运行,DOS结果显示如下,结果中多了一个概念,非静态。非静态就是没有被static修饰。例子中的类由三部分组成,name,country,show(),除了name,其他的都是static修饰的。

    为什么会出错?方法是静态,它会先存在。先存在完以后,那个时候还没有对象,而name要放在对象当中,name要随着对象的创建而存在,没对象就没name。这样一来调用show()方法的时候,自然也不能访问name。show方法变成静态后,就多了一种调用方式,类名调用。在Person.show()之前,没有创建对象,自然不会有name存在。

    静态在使用的时候,应该注意的事项,后面讲述到静态的时候使用的都是下面的原理。

    1体现了静态的另一个弊端,访问有局限性。这里访问的静态成员,既包含静态变量,也包含静态方法。非静态能不能访问静态呢?是可以的,非静态能不能访问非静态呢?也可以。

    不能使用this的原理和之前谈论的一样,使用this时,对象还没有创建呢。其实,刚才访问name的时候,省略了this.,类名调用事物方法的时候,还没有对象,因此没法访问。

    接着对着第3句进行分析,主函数调用的是静态方法。主函数是static修饰的,show()不是静态的,主函数只能调用静态方法,(可以说,静态的是先存在的,当静态的主函数出现时,show()还没有,自然无法调用)。这也是当时学习调用函数时,要加static修饰符的原因。

     

    在show()前面加上static修饰符后,DOS结果如下,show方法使用了num,num没有static修饰符,自然也会出错。

    最终修改的结果如下:

    num没加static,意味着本身是特有,是对象中的特有数据,要是加了静态,它的性质就变了,成了共享数据。杯子本来就是每人一个,为什么要共享。所以num不能加静态,是不是说show方法也不能加静态。show加了静态就出现了访问局限性。

    这样一来,程序还是无法运行。想一下,主函数访问其他东西,难不成都要静态么?要想在主函数中调用show方法,要么用类名调用,要么用对象调用。

    为什么说主函数静态,是有原因的,是为了对以往知识点的融会贯通。

    还有一个小细节。public void show()里面的输出语句,name前面是省略了this. 是对象来调用一般方法,调用成员变量。那么country前面省略了什么?也是this么?对象既可以调用成员,也可以调用静态,this.country能够调用是没有错,但是前面省略的不是this,省略的是Person,country是所属与类的,但是在本类中调用本类成员(静态变量)的时候,不用书写本类名。一定要记得,静态前面省略的是类名,非静态前面省略的是this。

    主函数里创建其他类对象,调用其他类功能。在主函数中,指挥其他对象做事情,因为它是入口,但是不要把所有代码都定义在主函数里面。把代码都单独封装到函数当中,把函数都封装到每个类当中,主函数只需要做创建这些类的对象,调用这些类的方法。

  • 相关阅读:
    SQL查看数据库中每张表的数据量和总数据量
    Asp.Net Mvc Area二级域名
    Asp.Net Mvc 整站Https
    Task 开始 停止
    最全省份城市生成代码
    代理
    反射和工厂模式
    枚举
    IO
    集合类(二)
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7665911.html
Copyright © 2011-2022 走看看