-
06-09-2013, 04:01 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
giải thích liên kết giữa các class
em có một class 1 ntn:
Mã:import com.burdbrain.drawings.Drawing; import com.burdbrain.frames.ArtFrame; class ShowFrame { public static void main(String args[]) { ArtFrame artFrame = new ArtFrame(new Drawing()); artFrame.setSize(200, 100); artFrame.setVisible(true); } }
Mã:package com.burdbrain.drawings; import java.awt.Graphics; publicclass Drawing { publicint x = 40, y = 40, width = 40, height = 40; public void paint(Graphics g) { g.drawOval(x, y, width, height); } }
Mã:Drawing drawing = new Drawing(); drawing.paint();
View more random threads:
- Cách học Java Swing
- Thắc mắc về toán tử this trong java
- So sánh thứ tự ký tự alphabet
- Load Data không được , các bro chỉ dùm
- hiện thị project trong netbean
- Bảng băm trong java
- Cấp phát vùng nhớ trong C++/Java?
- Bạn nào biết làm ơn giải thích mình đoạn code nhỏ này với ạ :D
- Giúp sửa lỗi Web
- Tạo trang tìm kiếm như Google Oflie
-
07-09-2013, 04:35 PM #2Banned
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Ý mình là tại sao ko gọi tới method draw() luôn mà ct lại biết thực thi method đó? Trong khi cách thông thường thì ít nhất mình cũng phải new Drawing().draw(), ý là ít nhất cũng phải nêu ra "àh t muốn thực thi draw()" .... trong ct trên thì draw() hoàn toàn ko bị kêu réo gì tới.
-
07-09-2013, 06:18 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Đang ở
- 24 Rạch Bùng Binh , P10,Q3 , HCM
- Bài viết
- 0
Chưa hiểu ý bạn lắm. Theo mình hiểu ý của bạn là muốn khai báo và gọi method paint trong cùng câu lệnh luôn đúng không. Nếu muốn làm thế thì bạn thử cách sau:
Bình thường thì chỉ việc:
Mã:new Drawing().paint();
Mã:Drawing drawing = new Drawing(){{paint();}} drawing.xyz();
-
08-09-2013, 08:39 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Nếu như vậy thì bạn phải cho biết class com.burdbrain.frames.ArtFrame bên trong đó nó có gì.
-
09-09-2013, 09:57 AM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi friendly_smile
Nếu câu hỏi là như vậy thì 2 cái class bạn đưa ra chưa đầy đủ và chính xác. Giả sử có:
Mã:class ArtFrame extends JFrame{ public ArtFrame(Drawing drawing){ this.add(drawing); } } class Drawing extends JComponent{ public int x = 40, y = 40, width = 40, height = 40; public void paint(Graphics g) { g.drawOval(x, y, width, height); } } class ShowFrame { public static void main(String args[]) { ArtFrame artFrame = new ArtFrame(new Drawing()); artFrame.setSize(200, 100); artFrame.setVisible(true); } }
Đấy là lý do trong constructor của class Drawing không đề cập tới hàm paint() mà nó vẫn được gọi [IMG]images/smilies/2.gif[/IMG].
-
10-09-2013, 12:43 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
2 class đó chính xác là vậy đó bạn
-
11-09-2013, 06:02 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Class 2 bạn viết trong package com.burdbrain.drawings.
Vì vậy bạn có thể import và sử dụng package đó trong class 1.
Trong class 1, package com.burdbrain.drawings kèm với class ArtFrame này ở đâu ra ? [IMG]images/smilies/waiting.gif[/IMG]
Trong package đó không thấy class nào mang tên ArtFrame. Không có thì sao bạn có thể sử dụng được class ArtFrame.
1. Project đó bạn viết thì share code class ArtFrame trong package com.burdbrain.drawings lên, thì mọi người mới có thể giúp được chứ.
2. Nếu bạn tham khảo thì người ta share thiếu rồi đó. Hoặc là bạn tham khảo hay copy thiếu. Bạn có thể sử dụng netbean hay eclipse để test.
Giảm giá khi mua pallet nhựa Trà Vinh Tại Trà Vinh, một trong những địa điểm nổi tiếng với ngành nông nghiệp và sản xuất, pallet nhựa Trà Vinh đóng vai trò không thể phủ nhận trong quá trình vận...
Giảm giá khi mua pallet nhựa Trà...