Đây là đề thi lần 1 của trường ĐH BKHN, em sắp thi lại rồi nhưng loay hoay cả tháng nay vẫn chưa làm được bài này. Không biết làm thế nào nên post lên đây nhờ các anh giúp 1 tay với. Em cảm ơn các anh trước ạ: Q1: Lớp State0 có phương thức khởi dựng mặc định, in ra “Lop 0”. Lớp State1 kế thừa State0 có phương thức khởi dựng mặc định in ra “Lop 2”. Lớp State2 kế thừa State1 có phương thức khởi dựng mặc định in ra “Lop 1. Lớp State3 kế thừa State0 có phương thức khởi dựng mặc định in ra “Lop 3”. Lớp State4 kế thừa State0 có phương thức khởi dựng mặc định không in ra gì cả. Lớp State0 có phuơng thức show() in ra: “Lop 0”. Lớp State1 có phương thức show() in ra: ”Lop 3”. Lớp State2 có phuơng thức show() in ra: “Lop 2”. Lớp State3 có phương thức show() in ra: ”Lop 1”. Lớp State4 có phuơng thức show() in ra: “Lop 4”. Lớp A có phương thức khởi dựng sau: public void inRa(State0 s) { System.out.print(“Lop 3”); s = new State0( ); System.out.print(“Lop 2”); } Lớp B kế thừa lớp A có phương thức khởi dựng như sau: public void inRa(State0 s) { System.out.print(“Lop 1”); s = new State2( ); System.out.print(“Lop 0”); } Xây dựng lớp F1 và F2 như sau: class F1 { public static A getA (int t) { if(t%2 == 1) return new A ( ); return new B( ); } } class F2 { public static State0 getS (int t) { if((t <= (575%27))&&(t>(25%27)) return new State1( ); if((t <= (529%27))&&(t<(113%27)) return new State2( ); if(t%3 == 2) return new State3 ( ); if(t%3 == 1) return new State4 ( ); } } Xây dựng lớp Program có phương thức Main như sau: public static void main (string [] args) { State0 s; A objA; for (int j = 23; j<100; j++) { s = F2.getS(j); s.show( ); objA = F1.getA(j); objA.inRa(s); } Gọi A, B, C, D, E là số lần in ra câu: “Lop 0”, “Lop 1”, “Lop 2”, “Lop 3”, “Lop 4”. Hãy xác định các giá trị của A, B, C, D, E. Q2 : Làm lại bài trên với sự thay đổi dưới đây : Lớp A có phương thức như sau : public void inRa (State0 s) { System.out.print(“Lop 3”); s.show( ); s = new State0( ); System.out.print(“Lop 2”) Lớp B kế thừa lớp A có phương thức như sau: public void inRa (State0 s) { System.out.print(“Lop 0”); s.show( ); s = new State2( ); System.out.print(“Lop 1”); } Q3: Liệu có thể chỉ bỏ 1 câu lệnh trong Q1 thì kết quả ở A, B, C, D trong câu Q1 sẽ giống với các kết quả trong câu Q2 được không? Nếu được thì bỏ câu lệnh nào?
mục đích test bài này là gì vậy, nhìn hoa cả mắc O.o, thằng nào cho ác thế, có ai coding mà rườm rà thế này không ?