java关键字,修饰符

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37636695/article/details/84334208

this关键字:

代表当前对象的引用,this所在函数所属对象的引用。

可以用于在构造函数中调用其他构造函数。(注意:只能定义在构造函数的第一行,因为初始化动作要先执行。)

super关键字:

  • 代表父类存储空间的标识。(可以理解为父类的引用,通过这个东西可以访问父类的成员。)
  • 子类的构造过程中必须调用其父类的构造方法。
  • 如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父亲类的无参构造方法。
  • 如果子类构造方法中既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则会编译错误。
  • 当然也可以自己使用super关键字调用父类的构造方法(只能写在第一行,和this一样)。

static关键字:

  • static是一个修饰符,用于修饰成员,修饰的变是为静态变量,或者类变量,
  • static修饰的成员被所有的的对象所共享。
  • static优先于对象存在,因为static修饰的成员随着类的加载就已经存在了。
  • static修饰的成员多了一种调用方式,可以直接被类名所调用。
  • static修饰的数据是共享数据,对象中的存储的是特有数据。
  • 1.静态:被static修饰的类的属性或者方法,内存空间不会被实例化影响(不适用于局部变量),一旦被改变,其他地方读到的值,都是改变后的值,不建议使用实例名来访问静态的属性和方法,直接使用类名访问。
  • 2.尽量减少使用静态属性和方法,特别是在多线程运行环境,坚决不允许。
  • 3.初始化块,无任何修饰{};每次实例化的时候就会产生。

final

  • 1.       final修饰的方法不可重载,重载。
  • 2.       final修的变量的值不可改变,也就是常量。
  • 3.       final修饰的类不可以被继承。
  • 4. final修饰局部变量问题
    • 修饰基本类型:基本类型的值不能发生改变。
    • 修饰引用类型:引用类型的地址不能发生改变,但是,该对象的堆内存的成员变量值是可以改变的。
  • final修饰的变量的初始化时:
    •  被final修饰的变量只能赋值一次。
    • 在构造方法完毕前。(非静态的常量)

成员变量和静态变量的区别?

1.两个变量的生命周期不同。

    • 成员变量随着对象的创建而存在,随着对象的被回收而释放。
    • 静态变量随着类的加载而存在,随着类的消失而消失。(生命周期长)

2.调用方式不同。

    • 成员变量只能被对象调用。
    • 静态变量可以被对象调用,还可以被类名调用。

3。别名不同:

    • 成员变量也称为实例变量。
    • 静态变量称为类变量,

4.数据位置不同:

    • 成员变量数据存储在堆内存对象中,所以也叫做对象的特有数据。
    • 静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象共享数据。

静态使用注意事项:

    • 静态方法只能访问静态成员。
    • 静态方法中不可以使用this或者super关键字。
    • 主函数是静态的。

Java 修饰符

修饰符:

    权限修饰符:public ,private,default,protected。

    状态修饰符:static , final。

    抽象修饰符:abstract。

Java语言提供了很多修饰符,主要分为以下两类:

访问控制修饰符

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。

·         默认的,也称为 default,在同一包内可见,不使用任何修饰符。

·         私有的,以 private 修饰符指定,在同一类内可见。

·         共有的,以 public 修饰符指定,对所有类可见。(谁都可以访问)

·         受保护的,以 protected 修饰符指定,对同一包内的类和所有子类可见。(受包保护)

被Static修饰的代码块里面的变量,是共用的,可以通过外界改变他们。

非访问修饰符

为了实现一些其他的功能,Java 也提供了许多非访问修饰符。

·         static 修饰符,用来创建类方法和类变量。

·         Final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

·         Abstract 修饰符,用来创建抽象类和抽象方法。

·         Synchronized 和 volatile 修饰符,主要用于线程的编程。

类及其组成可以用的修饰符 

类: 默认,public,final,abstract 我们自己定义:public居多 

成员变量: 四种权限修饰符均可,final,static 我们自己定义:private居多 

构造方法: 四种权限修饰符均可,其他不可 我们自己定义:public 居多 

成员方法: 四种权限修饰符均可,fianl,static,abstract 我们自己定义:public居多 

猜你喜欢

转载自blog.csdn.net/qq_37636695/article/details/84334208