株所实习第六天(模板设计方式与数组的基本概念)

记录11.20的学习内容

1.方法的回调rollback,模板方法设计模式

在实际的开发之中,我们时常会去调用其他人写的方法。

模板方法设计模式(二十三种之一)

定义一个操作中的算法骨架,而将一些步骤延迟到子类中,模板方式使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤

上面的这一段话,按简单的来说,调用一个方法,只写父类(或者是接口),该方法的形参为父类(表面上看上去像是父类),实参为子类(实则为子类),这样根据子类对象的不同,调用的方法实现不同。就像是在对应的地方挖了一个洞一样,掉进来什么程序,就实现什么程序。

新建一个OneFrame类。(按照顺序来创建的话,这里的MyFrame会报错,因为接口还没有被创建。)
public class OneFrame {
    public static void oneFrame(MyFrame frame) {
        System.out.println("Start One Frame");
        frame.oneFrame();
        System.out.println("Finish!!");
    }
}
创建接口MyFrame
public interface MyFrame {
    void oneFrame();
}
创建BigFrame类,接上MyFrame接口。
public class BigFrame implements MyFrame{
    @Override //重写
    public void oneFrame(){
        System.out.println("Big Frame");
    }
}
class GameFrame implements MyFrame{
    @Override
    public void oneFrame(){
        System.out.println("Game Frame");
    }
}
最后创建一个Test类,用于测试。
public class Test {
    public static void main(String[] args){
        OneFrame.oneFrame(new BigFrame());
        OneFrame.oneFrame(new GameFrame());
    }
}
输出的结果
Start One Frame
Big Frame
Done!!
Start One Frame
Game Frame
Done!!

2.数组基本概念及内存分析

概述:

  • 数组是引用类型;
  • 数组是相同类型数据(可以是任意相同的类型)的有序集合;
  • 数组是对象,数组元素相当于对象的成员变量;
  • 数组的长度是确定的,是不可变的。

数组元素有三种初始化的方式:

  • 默认初始化,数组元素相当于对象的成员变量,默认值跟成员变量规则一致;
  • 动态初始化,动态的为数组的每个元素赋值;
  • 静态初始化,声明时就传入元素。
创建一个Array类
public class Array {
    public static void main(String[] args){
        int[] a = new int[3];
        a[0] = 1;
        a[1] = 2;
        a[2] = 3;
        for (int i = 0; i < a.length; i++){
            System.out.println(i + ":" + a[i]);
        }
    }
}
输出的结果
0:1
1:2
2:3

很容易理解,for循环中给赋值 i = 0,这个时候的a [i] = a [0] = 1,所以第一个输出的结果是0 : 1。后几个结果同理 i 由于 i++ ,每经过一次循环便+1,i = 1, a [i] = a [1] = 2…


2019.11.21 晴…

你可能感兴趣的:(实习记录)