Anh em giúp bài Java này với, nghĩ suốt cả tháng nay mà không làm thế nào giải được

Asiteru

Youtube Master Race
Tham gia ngày
11/11/07
Bài viết
19
Reaction score
0
Đâ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?
 
Q 1:
A = 77
B = 102
C = 39
D = 65
E = 0

Q 2:
Bỏ line s.show() ở Main đi
 
Em giải được bài này rùi, cám ơn các anh nhìu nhá :))
 
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 ?
 
:)) Đề ra thì chắc là ông thầy code đấy bạn ạ :))
 
mới đầu đọc code tưởng newbie viết bài giải thực hành chứ, thì ra là đề thi lý thuyết =))
 
Back
Top