1. 程式人生 > 其它 >Spring 框架中用到了哪些設計模式?請舉例說明?

Spring 框架中用到了哪些設計模式?請舉例說明?

Static關鍵字詳解

package com.oop.demo07;

//static
public class Student {

    private static int age; //靜態的變數
    private double score;   //非靜態變數


    public void run(){

        go();  //非靜態方法可以呼叫靜態方法裡所有的東西
    }

    public static void go(){

    }

    public static void main(String[] args) {
        Student s1 = new Student();

        //呼叫變數
        System.out.println(Student.age);     //靜態變數可以直接通過類名訪問
        //System.out.println(Student.score); //會報錯,非靜態不能直接類名訪問物件
        System.out.println(s1.age);
        System.out.println(s1.score);

        //呼叫方法
        new Student().run();
        Student.go();
        go();

    }
}
package com.oop.demo07;

public class Person {
/*
    {
        //程式碼塊(匿名程式碼塊)
    }
    
    static{
        //靜態程式碼塊
    }
*/
    {
        System.out.println("匿名程式碼塊");
    }
    static {
        System.out.println("靜態程式碼塊");
    }

    public Person() {
        System.out.println("構造方法");
    }

    public static void main(String[] args) {
        Person person1 = new Person();
        //輸出內容:
        //靜態程式碼塊
        //匿名程式碼塊
        //構造方法
        System.out.println("=========================");
        Person person2 = new Person();
        //輸出內容:
        //匿名程式碼塊
        //構造方法


        //得出結論:靜態程式碼塊只執行一次
        //匿名程式碼塊可以賦初始值
    }
}
package com.oop.demo07;

//靜態匯入包
import static java.lang.Math.random;
import static java.lang.Math.PI;

public class Test {
    public static void main(String[] args) {
        System.out.println(random());
        System.out.println(PI);
    }
}

抽象類

特點:

  • 不能new這個抽象類,只能靠子類去實現它:約束!
  • 抽象類可以寫普通的方法
  • 抽象方法必須在抽象類中
package com.oop.demo08;

//abstract 抽象類
//類 extends :單繼承   (介面可以多繼承)
public abstract class Action {

    //abstract 抽象方法,只有方法名字,沒有方法的實現!
    public abstract void doSomething();

    
}
package com.oop.demo08;

//抽象類的所以方法,繼承了它的子類,都必須要實現它的方法
public class A extends Action{
    @Override
    public void doSomething() {

    }
}