Thứ Hai, 1 tháng 4, 2013

Ý nghĩa các từ khoá(key words) trong Java

- FileReader : Luồng nhập ký tự đọc dữ liệu từ file.
- BufferedReader : Luồng nhập ký tự đọc dữ liệu vào một vùng đệm.
- Method : là phương thức, là hàm.
- final : Phương thức có tiền tố này không được khai báo chồng ở các lớp dẫn xuất.
- instanceof : Dùng để xác định chính xác một biến hay Data member có phải đã được cấp phát bộ nhớ theo 1 class cụ thể nào chưa?
- Dùng instanceof để so sánh 2 Object có phải là cùng một loại (Type) hay không?

- public : phương thức có thể truy cập được từ bên ngoài lớp khai báo.
- protected : có thể truy cập được từ lớp khai báo và những lớp dẫn xuất từ nó.
- private : chỉ được truy cập bên trong bản thân lớp khai báo.
- extends : là khi một lớp con thừa kế từ lớp cha và bổ sung các năng lực mà lớp cha không có.
- implements : nghĩa sự thi hành, sự thực hiện, đồ dùng, dụng cụ, phương tiện, bổ sung.
- implements được sử dụng khi bạn làm việc với interface trong java.
- sau implement là một interface. implement là khi thực hiện các hành động của một interface.
- ý nghĩa của interface là cung cấp những hành động mà lớp implements nó phải làm, còn làm như thế nào thì tùy lớp đó.
-Modal Dialog : Sẽ khóa tất cả các cửa sổ khác của ứng dụng khi dialog dạng này còn hiển thị.
-None-Modal Dialog : Vẫn có thể đến cửa sổ khác của ứng dụng khi dialog dạng này hiển thị.
- từ khoá new : để cấp phát bộ nhớ trong java ta dùng từ khoá new để khởi tạo đối tượng. đối với class thì sẽ thực hiện trong hàm constructor nếu có.

- định nghĩa constructor: là một hàm được thực hiện khi đối tượng(object) được khởi tạo thông qua từ khoá(key word) new. constructor là sự xây dựng, khởi tạo đối tượng lớp.
- constructor chỉ là một method của một class. Nó có nhiệm vụ khởi tạo các biến trong class(nếu muốn), tên của constructor trùng với tên của class và không có trị trả về.
ví dụ: class Name objectName = new className();
ví dụ: class Người objectNguyễn_Văn_A = new classNgười();

- Static : phương thức lớp dùng chung cho tất cả các thể hiện của lớp, có nghĩa là phương thức đó có thể được thực hiện kể cả khi không có đối tượng của lớp chứa phương thức đó.
- void: không trả về gì hết nhưng thực hiện khối lệnh.
- nextToken() : phân tích chuỗi thành nhiều phần, lấy từ phần đầu tiên. vẫn đếm từ 0. Các phần của chuỗi được hiểu cách nhau bởi 1 ký tự trắng.
ví dụ: String quote1 = "VIZY 3 - 1/16";
st1 = new StringTokenizer(quote1);
System.out.println("Token0: " + st1.nextToken()); cho ra kết quả là VIZY.

- Biến this : là một biến ẩn tồn tại trong tất cả các lớp trong ngôn ngữ java. Một class trong java luôn tồn tại một biến this, biến this được sử dụng trong khi chạy và tham khảo đến bản thân lớp chứa nó.
-super: dùng khi lớp kế thừa của bạn, muốn nhờ lớp cơ sở (lớp cha ) làm giúp một việc gì đó.
-tomcat: là webserver hỗ trợ java.
- webserver : là máy phục vụ để chạy web. máy tính mà trên đó cài đặt phần mềm phục vụ web. đôi khi người ta cũng gọi chính phần mềm đó là webserver.
ví dụ : ISS của Microsoft chạy *.asp, *.aspx, ...
Apache chạy *.php, ...
Sun java System chạy *.jsp, ...
- gridx, gridy : Vị trí ô của khung lưới vô hình mà ta sẽ đưa đối tượng con vào.
- gridwidth, gridheight : kích thước hay vùng trình bày cho các đối tượng con.
- Insets: là một biến đối tượng thuộc lớp Insets dùng để qui địnhkhoảng cách biên phân cách theo 4 chiều trên, dưới, trái, phải.
- weightx, weighty : chỉ định khoảng cách lớn ra tương đối của các đối tượng con với nhau.

từ khóa trong java



  • abstract


- Nếu 1 phương thức được khai báo abstract: phương thức này không có cài đặt, việc cài đặt được thực hiện bởi lớp con của lớp chứa phương thức abstract.
- Khi 1 phương thức là trừu tượng thì bản thân lớp chứa nó cũng là trừu tượng
Lợi ích của lớp trừu tượng:: để khai báo những tính năng chung mà chúng ta cần sử dụng cho tất cả lớp con
- Không thể tạo instance (new đối tượng)cho 1 abstract class...mục đích duy nhất của abstract class là để các lớp khác thừa kế nó

ví dụ: P/S: theo mình hiểu: trừu tượng tức là chưa được rõ ràng...nên cần hiểu chi tiết hơn bằng cách tách nó ra nhỏ hơn-->các lớp con... Ví dụ ta có 1 class Animal có 2 phương thức eat() và sleep().. eat như thế nào..sleep như thế nào thì chưa rõ được (vì chưa biết là con animal gì)nên khai báo là abstract...Đến khi có class con của class Animal này: class Cat và class Dog..thì lúc đó class con Cat sẽ định nghĩa chi tiết phương thức con mèo eat như thế nào..tương tự cho class Dog..2 class Dog và Cat đều có chung các hành vi là ngủ (sleep) và ăn (eat) nhưng cách ngủ và ăn của 2 con này khác nhau nên định nghĩa hàm eat và sleep của 2 class này sẽ khác nhau..

việc định nghĩa hàm eat và sleep từ 2 class con Cat và Dog cho class cha Animal gọi là overriding (ghi đè)..cái này làm mình liên tưởng tới khái niệm chuyên biệt hóa..từ cái root mơ hồ chung chung..tách ra thành cây con chi tiết.

  • Sẵn tiện nói đến overloading (nạp chồng ) luôn nhé. Theo mình hiểu overloading tức nhiều hàm cùng tên nhưng khác tham số truyền vào (số lượng tham số, kiểu dữ liệu). Lợi ích của nạp chống: thể hiện tính đa hình..1 hàm có nhiều cách định nghĩa..nôm na là hành xử khác nhau tùy tình uống


Ví dụ: cũng theo mình hiểu thôi bigsmile ..trong 1 class game_danh_nhau có hàm tan_cong() nhưng tấn công thế nào còn tùy tình huống, nếu địch thủ đánh tay không ta gọi hàm tan_cong() nêu địch thủ đánh kiếm ta cũng gọi hàm tấn công nhưng cách tấn công khác đi..ta cũng phải cầm kiếm..gọi tan_cong(kiem) bigsmile 

  • Phân biệt:: Override nhấn mạnh class cha...lớp con ghi đè lớp cha (cùng tên hàm, cùng tham số, cùng kiểu dữ liệu) ...trường hợp có thể lớp cha đã định nghĩa rồi (không phải hàm astract) nhưng class con ...tân tiến hơn..thêm thùa vào..ghi đè lớp cha..-->tính mở rộng còn trường hợp 2 là lớp cha chưa định nghĩa..(hàm abstract)..như ví dụ class Animal phía trên.(bên C# ko có ghi đè thỏai mái vậy..buộc phương thức được ghi đè phải là virtual)


overload: ko dính liếu gì đến lớp cha...tình huống nào thì gọi hàm ứng với tham số, kiểu dữ liệu phù hợp

-----------------------------------------------------------------------------------------------

  •  Interface: là 1 class chỉ gồm thuộc tính và các hàm abstract được khai báo trước


- Một lớp thi hành các hàm trong interface thông qua từ khoá implements. 

- Một lớp có thể implements nhiều interface. 

- Dù không khai báo từ khoá abstract, nhưng mọi hàm trong 1 interface đều được coi là abstract (trừu tượng) 

- Các biến trong Interface thì phải là public, static hay final. 

- Không được khai báo private hay protected đối với các biến và các hàm trong Interface vì các hàm này sẽ được viết lại (overriden) trong lớp thực thi nó. 

Mục đích: theo mình là do tính đa thừa kế...1 class con ko thể có nhiều class cha nhưng có thể implements nhiều interface..các bạn làm nhiều với UI thì sẽ thấy..1 class con kế thừa class TextBox nó sẽ có tất cả thuộc tính chức năng của TextBox nhưng nó lại có mối liên hệ với 1 class khác..class nhận sự kiện xảy ra trên giao diện chẳng hạn..khi bạn đánh text vào TextBox rồi nhấn enter..thao tác nhấn enter đó sẽ do 1 class Listener nào đó chịu trách nhiệm..để làm được như vậy bạn sẽ cần 1 class con của class TextBox implements interface Listener (giả sử vậy)

---------------------------------------------------------------------------------------------

  • final


Sử dụng từ khoá final cấm sự kế thừa và ghi đè (tức không có tính kế thừa với class khai báo final)..với 1 class final tất cả fương thức của nó đều là final. Mục đích: muốn 1 class cố định không muốn có sự mở rộng..bảo trì sửa chữa vào class

khai báo biến final: nó là 1 hằng

----------------------------------------------------------------------------------------------

  • star static


Như bạn đã biết mỗi khi muốn thao tác với một đối tượng ta phải instance nó từ một class mô tả nó. Khi creat một đối tượng từ một lớp thì sẽ phải mất vùng nhớ dành đối tượng đó. Một đối tượng có thể có rất nhiều fiels, method. Có khi nào bạn nghĩ rằng tại sao phải khởi tạo rất nhiều thứ khi mà thực tế tả chỉ dùng một phần của nó (trích lời 1 member trong JavaVietNam.org). Với từ khóa static
ta dùng ngay tên class.thuôc tính hoặc tên hàm mà không cần tạo instance. 

Với biến khai báo static có tác dụng là biến toàn cục cho tất cả các đối tượng của lớp đó, còn biến bình thường là biến cục bộ của từng đối tượng. Một đối tượng nào đó thay đổi giá trị của biến static thì thay đổi đó cũng ảnh hưởng tới những đối tượng khác. 

Với hàm khai báo static: chỉ có quyền truy cập đến những biến thành viên static và chỉ có thể gọi những hàm thành viên static

Class khai báo static: Static class thì chỉ chứa các hàm và các biến static

Lớp static khác với lớp bình thường là mỗi khi bạn chạy chương trình là lớp static đươc cấp luôn bộ nhớ Ram và tồn tại từ suốt lúc chạy chương trình. Còn lớp bình thường là khi nào bạn sử dụng thì chương trình mới cấp phát bộ nhớ trên Ram

Bạn đã biết là trong một lớp bao gồm các thuộc tính và phương thức. Ngoài ra trong lớp cũng có thể chứa một lớp khác -->gọi là lớp lồng nhau. Tất cả các thành phần có thể có của một lớp gọi là các thành viên lớp (class members).

Điểm khác nhau giữa static class và non-static class là khi tạo ra đối tượng mới, với static bạn không cần phải có sẵn đối tượng của lớp bao ngoài (outer class). Tính chất này cũng giống như bạn đã biết với thuộc tính và phương thức static vậy. 
Ví dụ: 
class A {
class B {}
}
thì khi muốn có object B, bạn phải viết:
A a = new A();
B b = a.new B();

Nếu B là static, bạn chỉ cần viết 
B b = new A.B();

0 nhận xét:

Đăng nhận xét