zoukankan      html  css  js  c++  java
  • java中的this、super、static、final、abstract关键字的作用

    this关键字的作用

    1、this是对象内部指代自身的引用,同时也是解决成员变量和局部变量同名问题;

    2、this可以调用成员变量,不能调用局部变量;

    3、this也可以调用成员方法,但在普通方法中可以省略this,在构造方法中不允许省略,必须是构造方法的第一条语句。而且在静态方法中不允许出现this关键字。

    super关键字的作用

    1、super代表对当前对象的直接父类对象的引用;

    2、super可以调用直接父类的成员变量(注意权限修饰符的影响,比如不能访问private成员);

    3、super可以调用直接父类的构造方法,只限构造方法中欧使用,且必须是第一条语句。

    static关键字的作用

    staic是java中的一个关键字,单词本身是静态的意思

    使用static修饰的成员成为静态成员,是属于某个类的;而不使用static修饰的成员称为实例成员,是属于类的每个对象的。

    一个类的成员包括变量、方法、构造方法、代码块、和内部类,static可以修饰除了构造方法以外的所有成员

    1、static修饰变量

      static属性属于这个类所有,即由该类创建的所有对象共享一个satic属性。static变量和非static变量都是成员变量,这是共同点,区别主要有:

      1)在内存中份数不同

        不管有多少个对象,static变量只有一份。对于每个对象,实例变量都会有单独一份

        非static变量好比水杯,一个人一个;static变量好比饮水机,大家共享

      2)在内存中存放的位置不同

        静态变量存在方法区中,实例变量存在堆内存中

      3)访问的方式不同

        实例变量:对象名.变量名

        静态变量:对象名.变量名,不推荐如此使用;类名.变量名,推荐使用

      4)在内存中分配空间的时间不同

        实例变量:创建对象的时候才分配了空间

        静态变量:第一次加载类的时候

    2.static修饰方法

      可以通过对象名.方法名和类名.方法名两种方式来访问

    3.satic修饰代码块

      当类被第一次加载时(可能是调用static属性和方法,或者创建其对象)执行静态代码块,且只被执行一次,主要作用是实现static属性的初始化

    4.static修饰内部类

      属于整个外部类,而不是属于外部类的每个对象。不能访问外部类的非静态成员(变量或者方法),可以访问外部类的静态成员

    5.静态导入

      import static java.lang.Math.*;非导入类和接口,而是导入类和接口的静态成员

    abstract关键字的作用

    1、abstract可以用来修饰类和方法,不能用来修饰属性和构造方法;

    2、使用abstract可以用来修饰的类是抽象类,需要被继承;

    3、使用abstract修饰的方法是抽象方法,需要被子类重写

    final关键字的作用

    1、final可以用来修饰类、方法和属性,不能修饰构造方法。

    2、使用final修饰的类不能被继承,使用final修饰的方法不能被重写,

    3、使用final修饰的变量的值不能被修改,所以就成了常量。

    特别注意:final修饰基本类型变量,其值不能改变,由原来的变量变为常量;但是final修饰引用类型变量,栈内存中的引用不能改变,但是所指向的堆内存中的对象的属性值仍旧可以改变

    class Test {
    public static void main(String[] args) {
    final Dog dog = new Dog("小黄");
    dog.name = "大黄";//正确
    dog = new Dog("黄黄");//错误
    }
    }
  • 相关阅读:
    MySQL事务处理2
    servlet过滤器配置白名单、黑名单
    Freemarker生成静态代码实例
    FreeMarker---数据类型
    创建第一个freemarker
    JDBC编程之优化
    关于ComponentName的使用
    launchMode使用详解
    android开发之使用上下文菜单
    android开发之shape详解
  • 原文地址:https://www.cnblogs.com/huxiaoyang/p/12003465.html
Copyright © 2011-2022 走看看