罗列一下今天学习的知识点
1.静态代码块
2.单例模式的两种形式,饿汉式和懒汉式
3.对象特性之一:继承
4.java中关键字final的介绍
先从静态代码块说起,首先是格式
格式
{
静态代码块中执行的语句;
}
它的特点是随着类的加载而执行,而且只执行一次,作为初始化用的。//下次记得带点案例,感觉说的内容好空洞
然后是二十三中设计模式中其一的单例设计模式。
它的存在是为解决一个类在内存中只存在一个对象,就算被重复调用,也只产生一个对象。
描述一下它的思想
1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象。
2.为了让其他程序可以访问该类对象,只好在本类中,自定义一个对象。
3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式
实现的步骤如下
1.将构造函数私有化
2.在类中创建一个本类对象
3.提供一个方法可以获取该对象
而单例模式有两种形式,一种是饿汉式,一种是懒汉式,一般情况下,使用饿汉式,因为懒汉式需要上锁,影响效率,下面简单描述一下。
1.饿汉式
class Single
{
private static Single s = new Single();
private Single(){}
public static Single getInstance()
{
return s;
}
}
2.懒汉式(延时加载)
class Single
{
private static Single s = null;
private Single(){}
其中synchronized是上锁,避免两个类同时调用
public static synchronized Single getInstance()
{
if (s==null)
s = new Single();
return s;
}
}
用个人的话来讲,就是:类是对象共性的抽象描述,若类之间有共性存在,则继续抽取,作为父类存在(super)
它的优点:
1.提高了代码的复用性
2.让类与类之间产生了关系,有了这个关系,才有了多台的特性
注意,千万不要为了获取其他类的功能,简化代码而继承,必须是类与类之间有所属关系才可以继承所属关系(PS:java只支持单继承,不支持多继承,但支持多层继承)
如何使用一个继承体系中的功能呢?——想要使用体系,先查阅体系父类的描述,因为父类中定义的是该体系中共性功能,而了解了共性功能,就可以知道该体系的基本功能,那么这个体系可以基本使用了。
具体调用时,创建最子类的对象——一是因为父类可能不能创建对象,二是创建子类对象可以使用更多的功能,包括基本的,也包括特有的。
关于super对父类的调用,使用方法借鉴this
子父类函数特点-重写(覆盖)-提升程序和软件的复写性
当子类继承父类,沿袭了父类的功能,到子类中,但子类虽具备该功能,但是功能的内容和父类不一致,这是,没有必要定义新功能,而是使用覆盖特殊,保留父类的功能定义,并重写功能内容。(也就是使用的还是子类的功能)注意:子类覆盖父类,必须保证子类权限大于等于父类。去呗(重载。重写)重载只看函数的参数列表,而重写必须要子父类方法一模一样。
前面是子父类的函数特点,这里再介绍子父类中的构造函数(注意函数和构造函数区别)
子类中有一条隐式语句,super(); 而且子类中每一个构造函数,都会访问一遍父类中的构造函数。
贴上一个最简单的子父类构造函数的应用
class Person
{
private String name;
Person(String name)
{
this.name=name;
}
void show(){}
}
class Student extends Person
{
Student(String name)
{
super(name);//直接拿父类,完成赋值
}
void method()
{
super.show();//直接拿父类,完成赋值
}
}
结论:子类中的所有构造函数,默认都会访问父类中空参数构造函数,因为子类中隐式super();
当父类中没有空参数构造函数,子类必须手动通过super语句来访问。
在子类中构造函数也可以用this();但必有一个访问父类。(例子略)
final
1.可以修饰类,函数,变量
2.被final修饰的类不可以被继承//为了避免被继承,被子类复写功能
3.被final修饰的类不可被复写
4.final修饰的变量是一个常量,只能赋值一次,既可以修饰成员变量,也可以修饰局部变量。ps:常量的书写规范所有字母都答谢,如果由多个单词组成,单词间通过"_"来连接
5.内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量(好像突然有点不是很懂)
对今天进行简单的总结。整体进度上拖得比较慢,今天大体上也只是完成了一天的视频教程的量。
关于项目的制作,不仅需要基础知识,还需要自己对JDBC和Spring的运用和理解,所以在明天的学习中,应该对它有一些简答的了解,同时,寻找合适的模板来学习,用来制作 后天管理系统 或者 图书馆管理系统 ,不然到时候什么不会,转岗还是比较难实现的。