单利模式:
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
注意:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
具体可查看菜鸟
static
Static修饰符用来创建类方法和类变量。
1、Static关键字的特点:
(1)Static是一个修饰符,用于修饰成员。
(2)Static修饰的成员被所有的对象所共享。
(3)Static优先于对象存在,因为static的成员随着类的加载就已经存在了。
(4)Static修饰的成员多了一种调用方式,就可以直接被类名所调用。类名,静态成员。
(5)Static修饰的数据是共享数据,对象中的存储的是特有数据。
final
1.关键字final表示最终的,不可变的。
2.关键字final可以修饰变量、方法,还有类
3.final修饰的类无法被继承
4.final修饰的方法无法被覆盖,无法被重写
5.final控制不了能不能调用的问题,表示的是最后的,不能变的,不能改的。
6.final修饰的变量只能赋一次值
7.final修饰的引用:
该引用只能指向1个对象,并且它只能永远指向该对象,并且无法指向其他对象。
并且在该方法执行过程中,该引用指向对象之后,该对象不会被垃圾回收期回收
直到当前方法结束,才会释放空间。
8.虽然final的引用指向对象A后,不能再重新指向对象B,
但是对象A内部的数据可以被修改。
9.final修饰的实例变量,只能赋值一次。结论:因为实例变量没有手动赋值,系统会赋默认值。
因而要求final修饰的实例变量必须手动赋值。这个手动赋值,在变量后面赋值可以,在构造器
中赋值也可以。(显示赋值、构造器赋值、代码块赋值)
10.final修饰的实例变量一般添加 static修饰
终极结论:static final联合修饰的变量称为“常量”,常量名建议大写,每个单词间用下划线衔接。
常量和静态变量一样,区别在于:常量的值不能变。相同点在于:都是储存在方法区,并且都是
在类的加载时初始化。常量一般都是公共的,public修饰。
重写父类方法
描述
父类Base中定义了若干get方法,以及一个sum方法,sum方法是对一组数字的求和。请在子类 Sub 中重写 getX() 方法,使得 sum 方法返回结果为 x*10+y
输入描述:
整数
输出描述:
整数的和
具体做法:
Sub是Base的子类,因此继承了父类的成员变量和成员方法,成员方法中,getY()和sum()因为加了final关键字,无法被修改,子类中是直接使用,而getX()函数可以在子类中出些,我们重写为获取x的值扩大10倍。
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextInt()) { int x = scanner.nextInt(); int y = scanner.nextInt(); Sub sub = new Sub(x, y); System.out.println(sub.sum()); } } } class Base { private int x; private int y; public Base(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public final int getY() { return y; } public final int sum() { return getX() + getY(); } } class Sub extends Base { public Sub(int x, int y) { super(x, y); } //先赋值到sub的 @Override public int getX() { return super.getX() * 10; }