關於Java的小知識-類的載入-引數傳遞-多型
阿新 • • 發佈:2018-12-01
/** * 測試類的載入順序 */ public class Father { public Father() { System.out.println("This is Father contr"); } { System.out.println("this is Father blouk"); } static { System.out.println("this is Father static blouk"); } } class Son extends Father { public Son() { System.out.println("this is son cont"); } /* 普通程式碼塊 構造方法呼叫之前 會呼叫無參的標準的普通程式碼塊 */ { System.out.println("this is Son common method"); } /* 靜態方法首先進行載入 有且只加載一次 */ static { System.out.println("this is son static method"); } } class TestMethod { public static void main(String[] args) { new Son(); System.out.println("+++++++++++++++++++++++++++"); new Son(); System.out.println("Second++++++++++++++++++++++"); new Father(); System.out.println("print Father==========================="); /* this is Father static blouk this is son static method this is Father blouk This is Father contr this is Son common method this is son cont +++++++++++++++++++++++++++ this is Father blouk This is Father contr this is Son common method this is son cont Second++++++++++++++++++++++ this is Father blouk This is Father contr print Father=========================== */ } }
引數傳遞:
/** * 傳值 */ public class SendVallue { public void changeValue1(int age) { age = 30; } public void changeValue2(Person person) { person.setName("XXXX"); } public void changeValue3(String string) { string = "XXXX"; } public static void main(String[] args) { SendVallue sendVallue = new SendVallue(); int age =10; sendVallue.changeValue1(age); System.out.println(age); Person person = new Person("asdf"); sendVallue.changeValue2(person); System.out.println("person"+person.getName()); String string = "123"; sendVallue.changeValue3(string); System.out.println(string); } }
多型:
/** * 多型是執行期發生的事情 */ public class Polymorphic { public static Anmail getInstance(int key) { Anmail result = null; switch (key) { case 0: result = new Dog(); break; case 2: result = new Cat(); break; case 1: result = new Sheeps(); break; } return result; } public static void main(String[] args) { Anmail instance = Polymorphic.getInstance(new Random().nextInt(3)); instance.eat(); System.out.println(instance); } } interface Anmail { void eat(); } class Dog implements Anmail { @Override public void eat() { System.out.println("dog eat boon" + 123123); } } class Cat implements Anmail { @Override public void eat() { System.out.println("cat eat fish" + 3232); } } class Sheeps implements Anmail { @Override public void eat() { System.out.println("sheep eat gress" + 12312312); } }