Spring 框架中用到了哪些設計模式?請舉例說明?
阿新 • • 發佈:2022-04-14
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() {
}
}