• 面向对象第四天---三大特性之多态


    一、static关键字

    1、static可以修饰属性、方法、类(只能修饰内部类)

    (1)修饰静态属性、静态初始化、静态方法、单子模式。修饰的属性会被放到方法区,只会被加载一次。

    (2)static修饰的属性或者方法被所有的实例共享,如访问权限控制允许。可以不必创建该类的实例对象,可以通过类名.属性名或者方法名调用。

    (3)static修饰的成员叫做类成员或者静态成员。

    (4)当一个类对象作为一个类中的成员变量的时候,才可以用static去修饰

    (5)static修饰的方法在方法体中不能使用this和super关键字。

    (6)静态方法要访问非静态成员时,必须先将其实例化。

    2、静态方法:静态成员变量的设计思想

    (1)静态成员变量:不因为对象的不同而改变属性的值。

    (2)静态方法:方法和调用者无关,静态方法不参与继承(实质上是继承后隐藏了),所以static修饰的方法没有覆写。

    3、被所有类对象共享那个的属性(方法)与调用者无关的时候,需要用static关键字去修饰成员变量或者方法。


    二、静态初始化

    1、在一个类中可以使用不包含在任何方法体中的静态代码块(static block),当类被载入时,静态代码块被执行,且只会被执行一次,静态代码块通常是用来给属性初始化的。

    static{
    java 代码···
    }

    这是给程序员提供的一种时机,我们要在类加载时做某些事情的时候,我们用静态代码块
    如:连接池,xml解析···

    2、是在构造方法执行之前调用的,如果你想在构造方法执行前需要做某件事情,可以使用构造代码块

    {
    }


    三、单子模式(单例模式)

    1、属于Java中的设计模式:

    (1)在整个软件系统中,对某个类只能存在一个实例对象,该类只提供一个取得对象实例的方法,但是在本类中依然可以创建这个对象。我们可以用private对构造方法进行私有化。

    (2)构造方法私有化之后不能在外部创建这个类的对象。

    2、如数据库连接池。


    四、理解main方法

    修饰符:public/static 其中有一个String类型的数组作为参数

    五、final关键字

    1、fianl关键字可以修饰类、属性、方法。

    (1)修饰属性:final修饰的属性必须可视化赋值;修饰的属性是一个常量(不可变的值),可以被继承;修饰属性的只能被赋值一次;不能通过创建类对象后使用引用名.属性名的方式赋值、不能通过set和get方法赋值,只能够通过构造方法赋值,声明变量的同时在构造方法中赋值。

    (2)修饰类:final修饰的类不能被继承。final修饰类提高了安全性,还提高了程序的可读性。

    (3)修饰方法:final修饰方法可以调用静态方法;final修饰的方法参与继承,可以被重载,但不能被子类复写(提高了安全性)。

    2、因为final修饰的属性是一个只会加载一次的常量,所以我们经常会和static一起使用(相当于一个全局常量)。


    六、抽象类

    1、随着继承层次中子类的定义,子类变得越来越具体,父类更简单、更通用。如果一个父类非常抽象,抽象到没有实例,我们就叫这个类为抽象类。即用abstract修饰的类我们叫它抽象类(只做继承,没有实例)。

    2、抽象类是用来模型化那些父类无法确定的全部实现,而是由其子类提供具体实现对象的类。

    3、用abstract修饰的方法我们称为抽象方法,抽象方法只能声明,没有实现,并且是以分号结尾的(可以有参数,无方法体{})。

    public abstract void testAbstract(String);

    4、有抽象方法的类必须是抽象类,抽象类中可以没有抽象方法。

    5、抽象类的子类必须用复写(@Override)实现父类中的所有抽象方法,必须提供方法体。

    6、不能用abstract修饰私有方法、静态方法、构造方法。

    7、抽象类中可以有构造方法

    8、static不能修饰抽象方法

  • 相关阅读:
    国外大学公开课
    普瑞马法则
    在一个整数区间里产生一组不重复的随机数
    arm架构下树莓派 运行javafx流程
    Windows 如何在cmd命令行中查看、修改、删除与添加环境变量
    我来了!
    IIS替代方案:Visual Studio自带的WebServer
    网络收藏夹DEMO
    Web收藏夹
    LazyGuy的BLOG搬迁至CNBLOGS
  • 原文地址:https://www.cnblogs.com/JQbiu/p/10801896.html
Copyright © 2020-2023  润新知