Java中static、this、super、final用法简谈[转]

普中科技ESP8266-01s模块CWJAP:3 FAIL报错?手把手教你用AT+CWSAP指令搞定WiFi配置 本文详细解析了普中科技ESP8266-01s模块常见的CWJAP:3 FAIL报错问题,并提供了通过AT+CWSAP指令正确配置WiFi的实战解决方案。文章涵盖错误根源分析、硬件连接指南、AT指令详解及高级调试技巧,帮助开发者快速解决ESP8266-01s模块的WiFi配置难题。 阅读详情

Java中static、this、super、final用法简谈(一)

原作者:www.javaresearch.org  kevin
本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深,我也是一位正在学习和使用Java的爱好者,文中难免有不妥之处,欢迎指正。

一、static
    
请先看下面这段程序:

  1.   
  2.    public class Hello{
  3.      public static void main(String[] args){ //(1)
  4.        System.out.println("Hello,world!");   //(2)
  5.      }
  6.    }


看过这段程序,对于大多数学过Java 的从来说,都不陌生。即使没有学过Java,而学过其它的高 级语言,例如C,那你也应该能看懂这段代码的意思。它只是简单的输出“Hello,world”,一点别的用处都没有,然而,它却展示了static关键 字的主要用法。 
在1处,我们定义了一个静态的方法名为main,这就意味着告诉Java编译器,我这个方法不需要创建一个此类的对象即可使用。你还得你是怎么运行这个程序吗?一般,我们都是在命令行下,打入如下的命令(加下划线为手动输入):

javac Hello.java
java Hello

Hello,world!
这 就是你运行的过程,第一行用来编译Hello.java这个文件,执行完后,如果你查看当前,会发现多了一个Hello.class文件,那就是第一行产 生的Java二进制字节码。第二行就是执行一个Java程序的最普遍做法。执行结果如你所料。在2中,你可能会想,为什么要这样才能输出。好,我们来分解 一下这条语句。(如果没有安装Java文档,请到Sun的官方网站浏览J2SE API)首先,System是位于java.lang包中的一 个核心类,如果你查看它的定义,你会发现有这样一行:public static final  PrintStream out;接着在进一步,点击PrintStream这个超链接,在METHOD页面,你会看到大量定义的方法,查找 println,会有这样一行:
public void println(String x)
。好了,现在你应该明白为什么我们要那样调用了,out是System的一个静态变量,所以可以直接使用,而out所属的类有一个println方法。

静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法。如下所示:

  1.  class Simple{
  2.     static void go(){
  3.       System.out.println("Go...");
  4.     }
  5.  }
  6.  public class Cal{
  7.    public static void main(String[] args){
  8.      Simple.go();
  9.    }
  10. }
  11. 调用一个静态方法就是“类名.方法名”,静态方法的使用很简单如上所示。一般来说,静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中大量的静态方法正是出于此目的而定义的。
    静态变量
    静态变量与静态方法类似。所有此类实例共享此静态变量,也就是说在类装载时,只分配一块存储空间,所有此类的对象都可以操控此块存储空间,当然对于final则另当别论了。看下面这段代码:

      • class Value{
      •   static int c=0;
      •   static void inc(){
      •     c++;
      •   }
      • }
      • class Count{
      •   public static void prt(String s){
      •     System.out.println(s);
      •   }
      •   public static void main(String[] args){
      •     Value v1,v2;
      •     v1=new Value();
      •     v2=new Value();
      •     prt("v1.c="+v1.c+"  v2.c="+v2.c);
      •     v1.inc();
      •     prt("v1.c="+v1.c+"  v2.c="+v2.c);  
      •   }
      • }

    结果如下:
    v1.c=0  v2.c=0
    v1.c=1  v2.c=1
    由此可以证明它们共享一块存储区。static变量有点类似于C中的全局变量的概念。值得探讨的是静态变量的初始化问题。我们修改上面的程序:

      • class Value{
      •   static int c=0;
      •   Value(){
      •     c=15;
      •   }
      •   Value(int i){
      •     c=i;
      •   }
      •   static void inc(){
      •     c++;
      •   }
      • }
      • class Count{
      •   public static void prt(String s){
      •     System.out.println(s);
      •   }
      •     Value v=new Value(10);
      •     static Value v1,v2;
      •     static{
      •       prt("v1.c="+v1.c+"  v2.c="+v2.c);
      •       v1=new Value(27);
      •       prt("v1.c="+v1.c+"  v2.c="+v2.c);
      •       v2=new Value(15);
      •       prt("v1.c="+v1.c+"  v2.c="+v2.c);
      •     }
      •  
      •   public static void main(String[] args){
      •     Count ct=new Count();
      •     prt("ct.c="+ct.v.c);
      •     prt("v1.c="+v1.c+"  v2.c="+v2.c);
      •     v1.inc();
      •     prt("v1.c="+v1.c+"  v2.c="+v2.c);
      •     prt("ct.c="+ct.v.c);
      •   }
      • }


    运行结果如下:
    v1.c=0  v2.c=0
    v1.c=27  v2.c=27
    v1.c=15  v2.c=15
    ct.c=10
    v1.c=10  v2.c=10
    v1.c=11  v2.c=11
    ct.c=11
    这 个程序展示了静态初始化的各种特性。如果你初次接触Java,结果可能令你吃惊。可能会对static后加大括号感到困惑。首先要告诉你的是, static定义的变量会优先于任何其它非static变量,不论其出现的顺序如何。正如在程序中所表现的,虽然v出现在v1和v2的前面,但是结果却是 v1和v2的初始化在v的前面。在static{后面跟着一段代码,这是用来进行显式的静态变量初始化,这段代码只会初始化一次,且在类被 第一次装载时。如果你能读懂并理解这段代码,会帮助你对static关键字的认识。在涉及到继承的时候,会先初始化父类的static变量,然后是子类 的,依次类推。非静态变量不是本文的主题,在此不做详细讨论,请参考Think in Java中的讲解。
    静态类
    通常一个普通类不允许声明为静态的,只有一个内部类才可以。这时这个声明为静态的内部类可以直接作为一个普通类来使用,而不需实例一个外部类。如下代码所示:

      • public class StaticCls{
      •   public static void main(String[] args){
      •     OuterCls.InnerCls oi=new OuterCls.InnerCls();
      •   }
      • }
    class OuterCls{
    1.   public static class InnerCls{
    2.     InnerCls(){
    3.       System.out.println("InnerCls");
    4.     }
    5.    }
    6. }

    输出结果会如你所料:
    InnerCls
    和普通类一样。内部类的其它用法请参阅Think in Java中的相关章节,此处不作详解。
    ****************************************************************************

                                                                  二、this & super
    ****************************************************************************
        在面 中 讨论了static的种种用法,通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全 局变量。但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象 的。好了,现在开始讨论this&super这两个关键字的意义和用法。
    在Java中,this通常指当前对象,super则指父类的。 当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调 用当前对象的另一个构造函数,这些马上就要讨论。如果你想引用父类的某种东西,则非super莫属。由于this与super有如此相似的一些特性和与生 俱来的某种关系,所以我们在这一块儿来讨论,希望能帮助你区分和掌握它们两个。
    在一般方法中
    最普遍的情况就是,在你的方法 中的某个形参名与当前对象的某个成员有相同的名字,这时为了不至于混淆,你便需要明确使用this关键字来指明你要使用某个成员,使用方法是“this. 成员名”,而不带this的那个便是形参。另外,还可以用“this.方法名”来引用当前对象的某个方法,但这时this就不是必须的了,你可以直接用方 法名来访问那个方法,编译器会知道你要调用的是那一个。下面的代码演示了上面的用法:
    1. public class DemoThis{
    2.   private String name;
    3.   private int age;
    4.   DemoThis(String name,int age){
    5.     setName(name); //你可以加上this来调用方法,像这样:this.setName(name);但这并不是必须的
    6.     setAge(age);
    7.     this.print();
    8.   }   
    9.   public void setName(String name){
    10.     this.name=name;//此处必须指明你要引用成员变量
    11.   }
    12.   public void setAge(int age){
    13.     this.age=age;
    14.   }
    15.   public void print(){
    16.     System.out.println("Name="+name+" Age="+age);//在此行中并不需要用this,因为没有会导致混淆的东西
    17.   }
    18.   public static void main(String[] args){
    19.     DemoThis dt=new DemoThis("Kevin","22");
    20.   }
    21. }

    这段代码很简单,不用解释你也应该能看明白。在构造函数中你看到用this.print(),你完全可以用print()来代替它,两者效果一样。下面我们修改这个程序,来演示super的用法。
    1. class Person{
    2.   public int c;
    3.   private String name;
    4.   private int age;
    5.   protected void setName(String name){
    6.     this.name=name;
    7.   }
    8.   protected void setAge(int age){
    9.     this.age=age;
    10.   }
    11.   protected void print(){
    12.     System.out.println("Name="+name+" Age="+age);
    13.   }
    14. }
    15. public class DemoSuper extends Person{
    16.   public void print(){
    17.     System.out.println("DemoSuper:");
    18.     super.print();
    19.   }
    20.   public static void main(String[] args){
    21.     DemoSuper ds=new DemoSuper();
    22.     ds.setName("kevin");
    23.     ds.setAge(22);
    24.     ds.print();
    25.   }
    26. }

    在DemoSuper中,重新定义的print方法覆写了父类的print方法,它首先做一些自己的事情,然后调用父类的那个被覆写了的方法。输出结果说明了这一点:
    DemoSuper:
    Name=kevin Age=22
    这样的使用方法是比较常用的。另外如果父类的成员可以被子类访问,那你可以像使用this一样使用它,用“super.父类中的成员名”的方式,但常常你并不是这样来访问父类中的成员名的。
    在构造函数中
    构造函数是一种特殊的方法,在对象初始化的时候自动调用。在构造函数中,this和super也有上面说的种种使用方式,并且它还有特殊的地方,请看下面的例子:
    1. class Person{
    2.   public static void prt(String s){
    3.     System.out.println(s);
    4.   }
    5.   Person(){
    6.     prt("A Person.");
    7.   }
    8.   Person(String name){
    9.     prt("A person name is:"+name);
    10.   }
    11. }
    12. public class Chinese extends Person{
    13.   Chinese(){
    14.     super();  //调用父类构造函数(1)
    15.     prt("A chinese.");//(4)
    16.   }
    17.   Chinese(String name){
    18.     super(name);//调用父类具有相同形参的构造函数(2)
    19.     prt("his name is:"+name);
    20.   }
    21.   Chinese(String name,int age){
    22.     this(name);//调用当前具有相同形参的构造函数(3)
    23.     prt("his age is:"+age);
    24.   }
    25.   public static void main(String[] args){
    26.     Chinese cn=new Chinese();
    27.     cn=new Chinese("kevin");
    28.     cn=new Chinese("kevin",22);
    29.   }
    30. }

    在 这段程序中,this和super不再是像以前那样用“.”连接一个方法或成员,而是直接在其后跟上适当的参数,因此它的意义也就有了变化。super后 加参数的是用来调用父类中具有相同形式的构造函数,如1和2处。this后加参数则调用的是当前具有相同参数的构造函数,如3处。当然,在Chinese 的各个重载构造函数中,this和super在一般方法中的各种用法也仍可使用,比如4处,你可以将它替换为“this.prt”(因为它继承了父类中的 那个方法)或者是“super.prt”(因为它是父类中的方法且可被子类访问),它照样可以正确运行。但这样似乎就有点画蛇添足的味道了。
    最后,写了这么多,如果你能对“this通常指代当前对象,super通常指代父类”这句话牢记在心,那么本篇便达到了目的,其它的你自会在以后的编程实践当中慢慢体会、掌握。另外关于本篇中提到的继承,请参阅相关Java教程。
    关于最后一个final的意义和用法,也会很快贴出,敬请阅读指正。
    **********************************************************************************************
                                                                  
    三  final
    **********************************************************************************************
    final在Java中并不常用,然而它却为我们提供了诸如在C语言中定义常量的功能,不仅如 此,final还可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学 习Java时必须要知道和掌握的关键字之一。
    final成员
    当你在类中定义变量时,在其前面加上final关键字,那便是 说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是 其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既 在定义时给了值,又在构造函数中给另外的值。下面这段代码演示了这一点:
    1. import java.util.List;
    2. import java.util.ArrayList;
    3. import java.util.LinkedList;
    4. public class Bat{
    5.     final PI=3.14;          //在定义时便给址值
    6.     final int i;            //因为要在构造函数中进行初始化,所以此处便不可再给值
    7.     final List list;        //此变量也与上面的一样
    8.     Bat(){
    9.         i=100;
    10.         list=new LinkedList();
    11.     }
    12.     Bat(int ii,List l){
    13.         i=ii;
    14.         list=l;
    15.     }
    16.     public static void main(String[] args){
    17.         Bat b=new Bat();
    18.         b.list.add(new Bat());
    19.         //b.i=25;
    20.         //b.list=new ArrayList();
    21.         System.out.println("I="+b.i+" List Type:"+b.list.getClass());
    22.         b=new Bat(23,new ArrayList());
    23.         b.list.add(new Bat());
    24.         System.out.println("I="+b.i+" List Type:"+b.list.getClass());
    25.     }
    26. }

    此 程序很简单的演示了final的常规用法。在这里使用在构造函数中进行初始化的方法,这使你有了一点灵活性。如Bat的两个重载构造函数所示,第一个缺省 构造函数会为你提供默认的值,重载的那个构造函数会根据你所提供的值或类型为final变量初始化。然而有时你并不需要这种灵活性,你只需要在定义时便给 定其值并永不变化,这时就不要再用这种方法。在main方法中有两行语句注释掉了,如果你去掉注释,程序便无法通过编译,这便是说,不论是i的值或是 list的类型,一旦初始化,确实无法再更改。然而b可以通过重新初始化来指定i的值或list的类型,输出结果中显示了这一点:
    I=100 List Type:class java.util.LinkedList
    I=23 List Type:class java.util.ArrayList
    还 有一种用法是定义方法中的参数为final,对于基本类型的变量,这样做并没有什么实际意义,因为基本类型的变量在调用方法时是传值的,也就是说你可以在 方法中更改这个参数变量而不会影响到调用语句,然而对于对象变量,却显得很实用,因为对象变量在传递时是传递其引用,这样你在方法中对对象变量的修改也会 影响到调用语句中的对象变量,当你在方法中不需要改变作为参数的对象变量时,明确使用final进行声明,会防止你无意的修改而影响到调用方法。
    另外方法中的内部类在用到方法中的参变量时,此参变也必须声明为final才可使用,如下代码所示:
    1. public class INClass{
    2.    void innerClass(final String str){
    3.         class IClass{
    4.             IClass(){
    5.                 System.out.println(str);
    6.             }
    7.         }
    8.         IClass ic=new IClass();
    9.     }
    10.   public static void main(String[] args){
    11.       INClass inc=new INClass();
    12.       inc.innerClass("Hello");
    13.   }
    14. }

    final方法
    将 方法声明为final,那就说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承 仍然可以继承这个方法,也就是说可以直接使用。另外有一种被称为inline的机制,它会使你在调用final方法时,直接将方法主体插入到调用处,而不 是进行例行的方法调用,例如保存断点,压栈等,这样可能会使你的程序效率有所提高,然而当你的方法主体非常庞大时,或你在多处调用此方法,那么你的调用主 体代码便会迅速膨胀,可能反而会影响效率,所以你要慎用final进行方法定义。

    final类
    当你将final用 于类身上时,你就需要仔细考虑,因为一个final类是无法被任何人继承的,那也就意味着此类在一个继承树中是一个叶子类,并且此类的设计已被认为很完美 而不需要进行修改或扩展。对于final类中的成员,你可以定义其为final,也可以不是final。而对于方法,由于所属类为final的关系,自然 也就成了final型的。你也可以明确的给final类中的方法加上一个final,但这显然没有意义。
    下面的程序演示了final方法和final类的用法:
    1. final class final{
    2.     final String str="final Data";
    3.     public String str1="non final data";
    4.     final public void print(){
    5.         System.out.println("final method.");
    6.     }
    7.     public void what(){
    8.         System.out.println(str+"/n"+str1);
    9.     }
    10. }
    11. public class FinalDemo {   //extends final 无法继承 
    12.     public static void main(String[] args){
    13.         final f=new final();
    14.         f.what();
    15.         f.print();
    16.     }
    17. }

    从程序中可以看出,final类与普通类的使用几乎没有差别,只是它失去了被继承的特性。final方法与非final方法的区别也很难从程序行看出,只是记住慎用。
    final在设计模式中的应用
    在设计模式中有一种模式叫做不变模式,在Java中通过final关键字可以很容易的实现这个模式,在讲解final成员时用到的程序Bat.java就是一个不变模式的例子。如果你对此感兴趣,可以参考阎宏博士编写的《Java与模式》一书中的讲解。

    到 此为止,this,static,supert和final的使用已经说完了,如果你对这四个关键字已经能够大致说出它们的区别与用法,那便说明你基本已 经掌握。然而,世界上的任何东西都不是完美无缺的,Java提供这四个关键字,给程序员的编程带来了很大的便利,但并不是说要让你到处使用,一旦达到滥用 的程序,便适得其反,所以在使用时请一定要认真考虑。

     

     

基于Simulink进行步进电机的重复控制仿真建模 重复控制概述目的:通过引入一个周期延迟环节来补偿系统的周期性误差,从而提高系统对周期性参考信号或扰动的跟踪性能。方法内部模型原理:在控制器中嵌入一个与周期性信号相关的模型(例如周期延迟环节),以实现对周期性误差的零稳态误差控制。滤波器设计:为了避免高频噪声放大,通常会在重复控制器中加入低通滤波器。优势对周期性信号具有良好的跟踪性能。不需要精确的数学模型即可实现高性能控制。挑战:需要合理设计重复控制器的参数以避免系统不稳定。 阅读详情

相关推荐

海康VisionMaster表面缺陷滤波实战:从参数调优到工业检测避坑指南

本文深入探讨海康VisionMaster表面缺陷滤波技术在工业检测中的应用,从参数调优到ROI绘制与Blob分析的协同策略,提供金属外壳、锂电池铝壳等复杂表面的缺陷检测实战指南。通过多级滤波架构和动态ROI生成法,显著提升检出率至98.7%,误检率低于0.5%,为工业质检提供智能化解决方案。

ujm5678901的博客 329

天天写 static、this、super、final,你真敢说自己没用错过一次吗?

本文是Java技术博客《final、static、this、super四大关键字解析》的开篇部分。作者以幽默风趣的语言分享了Java中四个关键字的实用解析: final:强调其"不可被重新绑定"而非完全不可变的特性,详细说明了修饰变量、方法和类的不同场景,并给出实际代码示例。 static:澄清static的本质是"归类"而非单纯为了方便,分析了修饰变量、方法、代码块和内部类的正确用法,并列举了推荐使用和避免使用的场景。 this与super:简要介绍这两个关键字的指

欢迎来到菜鸟不学编程的博客 2068

智能音箱开发者必看:CEVA-BX vs Cadence HiFi音频DSP实战选型指南(附功耗对比表)

本文深入对比了CEVA-BX和Cadence HiFi两大音频DSP架构在智能音箱开发中的性能差异,涵盖语音唤醒、多麦克风阵列处理等核心场景。通过实测数据和功耗对比表,为开发者提供选型参考,帮助优化产品性能和能效表现。

weixin_29309213的博客 227

JAVA常见的关键字 final、this、super、static、abstract

1.Final关键字 2.This关键字 3.Super关键字 3.1 基本用法 3.1.1访问父类的成员变量 3.1.2调用父类的方法 3.1.3 调用父类的构造函数 3.2super关键字的深层理解 3.3 注意事项 4.Static关键字 4.1 作用范围 4.2 使用 4.2.1 修饰类的成员变量 4.2.2修饰类的成员方法 4.2.3 修饰代码块 4.2.4 修饰内部类 4.2.5 注意事项 5.abstract关键字 5.1 为什么要用? 5.2

2301_77358195的博客 983

解锁Cherry Studio高阶玩法:用MCP实现自动化测试与数据爬取

本文深入探讨了如何利用MCP协议与Cherry Studio结合,实现自动化测试与数据爬取的高阶应用。通过Playwright等工具的MCP集成方案,详细解析了自动化测试流水线构建和智能爬虫系统开发的关键技术,显著提升工程效率和系统适应性。

defi6farmer的博客 275

Numpy快速入门(np)!看这一篇就够了

Numpy快速入门(np)!看这一篇就够了

weixin_74009895的博客 2679

Thinking:Java中static、this、super、final用法

本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深,我也是一位正在学习和使用Java的爱好者,文中难免有不妥之处,欢迎指正。一、static请先看下面这段程序:public class Hello{     public static void main(String[] args){//(1)

2131

在 SAP S/4HANA 里把 OData Client Proxy 用顺手,借助 Service Consumption Model 2.0 提前打通远程 OData 调用

摘要:本文探讨了在SAP S/4HANA集成开发中调用外部OData服务的解决方案。传统ABAP代码直接调用方式存在诸多不便,而OData Client Proxy提供了更稳定的途径。文章详细介绍了如何通过Service Consumption Model 2.0在SAP BTP生成模型类,并将其移植到SAP S/4HANA进行适配改造,最终注册为可用的OData Proxy Client。该方法适用于较新版本的SAP S/4HANA系统,通过源码替换实现模型转换,为系统集成提供了高效的类型安全调用方案。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1092

Java中static this super final用法简谈

Java中static this super final用法简谈

hfdhjjj的博客 243

Centos 7 Linux 安装单机 Hadoop(HDFS):下载、安装、配置、测试

本文详细介绍了在 CentOS 7 系统上安装与配置单机 Hadoop(HDFS)的完整流程,涵盖 JDK 环境准备、Hadoop 安装包下载与部署、核心配置文件(core-site.xml、hdfs-site.xml 等)修改、SSH 免密登录设置、HDFS 格式化及服务启动,并通过命令行与 Web 界面验证 HDFS 和 YARN 功能,适合 Hadoop 初学者快速搭建本地测试环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 3237

基于 ESP32 的智能环境监测与远程报警系统

本系统基于 ESP32 实现了环境数据的采集、远程传输、报警通知功能,硬件成本低、接线简单、代码可直接运行。用户可根据实际需求调整传感器类型(如替换为 PM2.5 传感器、土壤湿度传感器)和功能扩展,适合嵌入式 IoT 入门学习和实际场景应用。通过多轮迭代(如优化低功耗、增加 APP 控制),可进一步提升系统的实用性和稳定性。

weixin_42300449的博客 1025

Java中static、this、super、final用法

( FROM csdn  njchenyi 的 Blog )一、static   请先看下面这段程序:  public class Hello{    public static void main(String[] args){ //(1)      System.out.println("Hello,world!");   //(2)    }  }  看过这段程序,对于大多数学过Java 的

站在JAVA岛上看海 933

数据中台:大数据平台,数据仓库(DM),数据中台之间的联系以及异同分析

大数据平台是一个技术平台。这个技术平台提供了对于大数据的分布式采集,存储,流处理和计算,实时分析等能力。在没有大数据平台前也有数据集成和管理的平台,这种平台可以实现对结构化数据本身的采集,集成和管理。 管理平台,是在原生的大数据生态的基础之上,为了更好的管理集群服务,管理集群的资源,提供灵活SRE能力和资源核算审计能力的一系列工具和合称整体架构数据中台包括数据仓库的全部内容,数据仓库为数据中台提供了数据对外提供服务的基础资源,数据中台将数据仓库建设的投入价值进行最大化,以加快数据赋能业务的速度大家都知道数据

GIS摆渡人 2132

Java功底之static、final、this、super

看完本文后,请看转自键行天下的博客:http://blog.youkuaiyun.com/chensheng913/archive/2004/07/05/34564.aspx一.static静态方法:        我们在写System.in的时候并没有用new去创建它,这是因为它是一个静态的方法,这个意味着告诉Java编译器,我这个方法不需要创建一个此类的对象即可使用。一般说来,静态方法常常为应用程

it_man的专栏 2024

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java中static、this、super、final用途、用法及实例

原文链接:https://www.cnblogs.com/zjfjava/p/6337932.html 一、static 请先看下面这段程序: 复制代码 public class Hello { public static void main(String[] args){ //(1) System.out.println("Hello,world!"); //(2) } } 复制代码 看过...

东方 227

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

常见关键字总结:static,final,this,super

http://c.biancheng.net/view/970.html

qq_32534441的博客 1431

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java 常见关键字总结:final、static、this、super!

文章目录final,static,this,super 关键字总结final 关键字static 关键字this 关键字super 关键字参考static 关键字详解static 关键字主要有以下四种使用场景修饰成员变量和成员方法(常用)静态代码块静态内部类静态导包补充内容静态方法与非静态方法static{}静态代码块与{}非静态代码块(构造代码块)参考 final,static,this,super 关键字总结 final 关键字 final关键字,意思是最终的、不可修改的,最见不得变化 ,用来修饰类、方

Aladdin_Lamp的博客 1043

Java中static、this、super、final用法简谈(一)

本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深,我也是一位正在学习和使用Java的爱好者,文中难免有不妥之处,欢迎指正。 一、static     请先看下面这段程序: 1.          2.          public class Hello{ 3.            pu...

白驹过隙 271

Java关键字——this、super、static、final

文章目录一、this关键字1.this概述2.this使用在构造方法中二、static关键字1.static概述2.静态变量3.静态代码块4.静态方法 一、this关键字 1.this概述 this是java语言中的一个关键字,下图为this的内存图。 this可以看做一个变量,它是一个引用,存储在Java虚拟机堆内存的对象内部,this这个引用保存了当前对象的内存地址指向自身,任何一个堆内存的java对象都有一个this,也就是说创建100个java对象则分别对应100this。 this指当前对象,

悬悬小的博客 472

Java常用关键字final,static,this,super总结

final,static,this,super 关键字总结 final 关键字 static 关键字 this 关键字 super 关键字 参考 static 关键字详解 static 关键字主要有以下四种使用场景 修饰成员变量和成员方法(常用) 静态代码块 静态内部类 静态导包 补充内容 静态方法与非静态方法 static{}静态代码块与{}非静态代码块(构造代码块)...

LJJZJ的博客 572

static, super, final, this关键字

1.static 是"静态","全局"的意思,用来修饰成员变量,成员方法,或者也可以形成静态代码块。被public修饰的static变量和方法就是全局变量和全局方法 a.在类中,用static声明过的成员变量为静态成员变量,为该类的公用变量,独立于该类的任何对象。静态变量为所有对象共享,存放在数据区data segment。在类初次被加载的时候被初始化,所以,在任何对象创建之前,就可以对静

superhill的学习笔记 2497

Java中static、this、super、final用法简谈

http://blog.youkuaiyun.com/chensheng913/archive/2004/07/05/34564.aspx   本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深,我也是一位正在学习和使用Java的爱好者,文中难免有不妥之处,欢迎指正。一、static    请先看下面这段程序:

DengBo的Blog 934

abstract,interface,static ,final,this,super等关键字

一、.abstract 用abstract修饰的类称为抽象类,修饰的方法称为抽象方法 1.抽象类的特点 a、不能实例化,即new一个对象(因为它是一个抽象的,不是具体的东西,比如动物这个抽象类,我们可以说猫是动物,也可以说狗是) b、抽象方法必须存在于抽象类中,且抽象方法只有函数申明,没有函数体,要在它的子类中实现 2.抽象类的成员特点 构造方法:用于子类访问父类时数据的初始化 成员方法:既可以是...

小白学编程 4165

Java中的关键字static、this、super、final详解

一、static 请先看下面这段程序: public class Hello{     public static void main(String[] args){//(1)       System.out.println(\"Hello,world!\");//(2

kbest的专栏 1503

final,static,this,super

final,static,this,super 关键字总结 final 关键字 static 关键字 this 关键字 super 关键字 参考 static 关键字详解 static 关键字主要有以下四种使用场景 修饰成员变量和成员方法(常用) 静态代码块 静态内部类 静态导包 补充内容 静态方法与非静态方法 static{}静态代码块与{}非静态代码块(构造代码块) 参考 final,static,this,super 关键字总结 final 关键字 final关键字主要..

craywen的博客 463

09、关键字 this、static、super、final 等

【abstract 不能与 final 方法同时出现】。Abstract 与 final 永远互斥。对于 abstract 方法来说,该方法应该有子类重写,final 方法不能被重写。对于 abstract 类来说,该类主要用于派生子类。final 类不能被派生。【abstract 与 static 不能同时修饰方法】static 修饰方法的时候用类来调用方法。用类调用 abstract 方法没有意义,所以会出错。【abstract 与 private 不能同时修饰方法】

butingdejiaobu的专栏 1111
上一篇: 研究Tomcat结构,解决数据源连接数据库
下一篇: J2EE的13种核心技术[转]
fuweibo
博客等级 码龄23年 36粉丝 68原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值