美文网首页Java学习笔记
this关键字、static、静态函数、final

this关键字、static、静态函数、final

作者: ForeverYoung20 | 来源:发表于2015-09-21 20:11 被阅读128次

this关键字


this关键字代表了所属函数的调用者对象。

this关键字的作用:

  • 一个类中存在同名的成员变量与局部变量时,在方法的内部默认是访问局部变量的,可以通过this关键字指定访问成员变量的数据。
  • this关键字还可以在构造函数中调用另外一个构造函数初始化对象。

this关键字调用构造函数注意事项:

  • this关键字调用其他的构造函数时,必须要在第一个语句。
  • this关键字调用构造函数时不能出现相互调用,会造成死循环。

static(静态、修饰符)


static修饰成员变量时,该成员变量的数据就是一个共享的数据。

静态成员变量的访问方式:

  • 方式一:使用对象进行访问。对象.属性名
  • 方式二:使用类名进行访问。类名.属性名

注意:

  • 非静态成员变量不能类名直接访问,只能使用对象进行访问。
  • 千万不能为了方便访问成员变量而随意使用static修饰,一定要是该数据是共享数据时才使用static修饰。

静态成员变量与非静态成员变量的区别:

  • 作用上的区别:
  • 静态成员变量的作用是共享一个数据给所有对象使用。
  • 非静态成员变量的作用是描述一类事物的公共属性。
  • 数量与存储位置上的区别:
  • 静态成员变量是存储方法区内存中,而且只会存在一份数据。
  • 非静态成员变量是存储在堆内存中,有n个对象就有n份数据。
  • 生命周期的区别:
  • 静态的成员变量数据是随着类的加载而存在,随着类文件的消失而消失。
  • 非静态的成员数据是随着对象的创建而存在,随着对象被垃圾回收器回收而消失。

静态函数


静态函数要注意的事项:

  1. 静态函数是可以使用类名或者对象进行调用的,而非静态函数只能通过对象调用。
  2. 静态的函数可以直接访问静态的成员,但是不能直接访问非静态成员。若静态函数中有对象,那么可以访问非静态数据。
  • 原因:静态函数是可以使用类名直接调用的,此时可能还没有存在对象,而非静态的数据成员是随着对象的存在而存在的。
  1. 非静态函数可以访问静态与非静态成员。
  • 原因:非静态函数只能由对象调用,当对象存在的时候,静态数据已于之前就存在,而非静态数据也随着对象的创建而存在。
  1. 静态函数不能出现this或者super关键字。
  • 原因:因为静态函数可以使用类名调用,一旦使用类名调用,此时不存在对象,而this关键字代表了一个函数的调用者对象,这时产生冲突。

静态数据的生命周期:

  • 静态的成员变量数据是优先于对象存在的。(可以解释以上全部原因)

static什么时候用来修饰函数?

如果一个函数没有直接访问到非静态的成员,那么可以使用static修饰。一般用于工具类型的方法。

final(最终、修饰符)


final关键字的用法:

  • final关键字修饰一个基本类型的变量时,该变量不能重新赋值,第一次的值为最终的。
  • final关键字修饰一个引用类型变量时,该变量不能重新指向新的对象。
  • final关键字修饰一个函数的时候,该函数不能被重写。
  • final关键字修饰一个类的时候,该类不能被继承。

常量的修饰符一般为: public static final

相关文章

  • 继承

    .继承的特性 .继承关键字 构造器 static final关键字 static修饰方法(静态方法) final

  • c++静态成员变量以及静态成员函数(static)

    基本概念 静态成员:在说明前加上static关键字的成员为静态成员。 静态函数:在函数声明前加上static关键字...

  • 7.20

    final 关键字,static修饰符,构造方法在继承中的使用,怎么定义一个静态常量。 首先说final关键字,被...

  • this关键字、static、静态函数、final

    this关键字 this关键字代表了所属函数的调用者对象。 this关键字的作用: 一个类中存在同名的成员变量与局...

  • C语言中的static关键字

    @TOC C语言中的static关键字 static 关键字,意为静态。 static 变量 特性:全局变量在函数...

  • Day06--面向对象

    static(静态)关键字 static关键字用法:用于修饰成员(成员变量和成员函数)当成员被静态修饰后,就多了一...

  • Java 常见关键字总结:final、static、this、s

    final,static,this,super 关键字总结 final 关键字 final关键字,意思是最终的、不...

  • Swift如何显示指定派发方式

    Swift如何显示指定派发方式: 1、添加final关键字的函数使用直接派发 2、添加static关键字函数使用直...

  • Java常见关键字总结

    final, static, this, super 关键字总结 final 关键字 final关键字主要用在三个...

  • N5.静态变量、常量和方法

    由static关键字修饰的变量和方法被称做静态变量和方法,用final static修饰一个成员变量,这个成员...

网友评论

    本文标题:this关键字、static、静态函数、final

    本文链接:https://www.haomeiwen.com/subject/fyricttx.html