关键字:static final 抽象类与抽象方法

本文详细介绍了Java中`static`关键字的使用,包括类属性、类方法的概念及其设计思想。强调了类属性作为共享变量的特点,类方法的调用方式及限制,以及在单例模式中的应用。同时阐述了`main`方法的语法要求,代码块的执行顺序,以及`final`关键字在抽象类和抽象方法中的作用。内容涵盖了类设计、方法修饰、代码执行流程等多个方面。
摘要由CSDN通过智能技术生成

关键字:static

类属性、类方法的设计思想

  • 类属性作为该类各个对象之间共享的变量。在设计类时,分析哪 些属性不因对象的不同而改变,将这些属性设置为类属性。相应 的方法设置为类方法。

  • 如果方法与调用者无关,则这样的方法通常被声明为类方法,由 于不需要创建对象就可以调用类方法,从而简化了方法的调用。

使用范围:

  • 在Java类中,可用static修饰属性、方法、代码块、内部类
  • 被修饰后的成员具备以下特点:
  • 随着类的加载而加载
  • 优先于对象存在
  • 修饰的成员,被所有对象所共享
  • 访问权限允许时,可不创建对象,直接被类调用

类变量(class Variable)

  • 类变量(类属性)由该类的所有实例共享

类方法(class method)

  • 没有对象的实例时,可以用类名.方法名()的形式访问由static修饰的类方法。

  • 在static方法内部只能访问类的static修饰的属性或方法,不能访问类的非static的结构。

  • 因为不需要实例就可以访问static方法,因此static方法内部不能有this。(也 不能有super ? YES!)

  • static修饰的方法不能被重写

单例(Singleton)设计模式-饿汉式


单例模式的优点:

  • 由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的 产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可
    以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方 式来解决。

理解main方法的语法

  • 由于Java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是
    public,又因为Java虚拟机在执行main()方法时不必创建对象,所以该方法必须
    是static的,该方法接收一个String类型的数组参数,该数组中保存执行Java命令 时传递给所运行的类的参数。

  • 又因为main() 方法是静态的,我们不能直接访问该类中的非静态成员,必须创
    建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员,这种情 况,我们在之前的例子中多次碰到

代码块

静态代码块:用static 修饰的代码块

  1. 可以有输出语句。
  2. 可以对类的属性、类的声明进行初始化操作。
  3. 不可以对非静态的属性初始化。即:不可以调用非静态的属性和方法。
  4. 若有多个静态的代码块,那么按照从上到下的顺序依次执行。
  5. 静态代码块的执行要先于非静态代码块。
  6. 静态代码块随着类的加载而加载,且只执行一次。

非静态代码块:没有static修饰的代码块

  1. 可以有输出语句。
  2. 可以对类的属性、类的声明进行初始化操作。
  3. 除了调用非静态的结构外,还可以调用静态的变量或方法。
  4. 若有多个非静态的代码块,那么按照从上到下的顺序依次执行。
  5. 每次创建对象的时候,都会执行一次。且先于构造器执行

关键字:final

抽象类与抽象方法

随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一
般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父
类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类
用abstract关键字来修饰一个类,这个类叫做抽象类。 
  • 用abstract来修饰一个方法,该方法叫做抽象方法。

  • 抽象方法:只有方法的声明,没有方法的实现。以分号结束: 比如:public abstract void talk();

  • 含有抽象方法的类必须被声明为抽象类。

  • 抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重 写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,仍 为抽象类。

  • 不能用abstract修饰变量、代码块、构造器;

  • 不能用abstract修饰私有方法、静态方法、final的方法、final的类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值