Jump to content

Welcome to [ iT ] Forums
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
MU Moi ra - MU ONLINE



MU Moi ra - VINA MU

Hình ảnh

Giải thích ý nghĩa và cách dùng các từ khoá trong Java

- - - - -

  • Please log in to reply
6 replies to this topic

#1
PhươngĐiệp2410

PhươngĐiệp2410

    Thạc sĩ CSTH

  • VIP
  • PipPipPipPipPip
  • 1917 Bài Viết:

Kế thừa (extends):
Một lớp A1 kế thừa lớp A nghĩa là lớp A1 chứa tất cả thuộc tính, phương thức là protected hoặc public của A.
Vd:

CODE

public class A {
public int a;
protected int b;
private int c;
/**
* constructor – Hàm khởi tạo - của lớp A.
*/
public A() {
a = 0;
b = 1;
c = 2;
}
public int getNextA() {
return a+1;
}
public int getNextB() {
return b+1;
}
public int getNextC() {
return c+1;
}
}
public class A1 extends A {
public void setA (int a) {
this.a = a;
}
public void setB (int b ){
this.b = b;
}
/**
* Hàm setC này sai (bị báo lỗi) vì không thể truy cập tới biến c.
*/
public void setC (int c) {
this.c = c;
}
/**
* hàm main sau sẽ in ra kết quả: a = 1; b = 2; c = 3;
*/
public static void main(String args[]) {
A1 a1 = new A1();
System.out.println("a = " + a1.getNextA()
+ "; b = " + a1.getNextB()
+ "; c = " + a1.getNextC() + ";");
}
}


Bài viết này được chỉnh sửa bởi PhươngĐiệp2410: 19 November 2007 - 05:07 PM

http://winsocks.net/

Are You looking for a good socks 5 service? But you don't know where to buy?
Welcome to WinSocks.Net - Crazy Socks Service
Here we provide Fresh Socks 5 with fast speed , less blacklist, especially price is cheaper than others service.
More over, if you want to test our socks 5 before buying, don't be hesitate to contact our supporter through yahoo to receive Free Socks 5

#2
PhươngĐiệp2410

PhươngĐiệp2410

    Thạc sĩ CSTH

  • VIP
  • PipPipPipPipPip
  • 1917 Bài Viết:

Từ khóa abstract:
Nếu lớp A là abstract thì lớp A không thể tự khởi tạo mà nó chỉ được dùng cho việc kế thừa.
vd:

CODE

abstract class A {
private int a;
public A() {
a = 100;
}
public int getA() {
return a;
}
}
public class A1 extends A {
public A1() {
}
public static void main(String args[]) {
A a = new A(); //--> sai
A1 a1 = new A1();
System.out.println("a = " + a1.getA());//kết quả là: a = 100
}
}



Nếu phương setA của lớp A là abstract thì nó không được có phần thân hàm mà phần thân hàm sẽ được viết trong lớp kế thừa A. Lớp A cũng phải là abstract.

CODE

abstract class A {
protected int a;
public A() {
a = 100;
}
public int getA() {
return a;
}
/**
* Nếu phương thức setA có phần thân hàm sẽ bị báo lỗi.
*/
abstract void setA(int a);
}

public class A1 extends A {
/**
* Nếu lớp A1 không có hàm setA thì sẽ bị báo lỗi.
*/
public void setA(int a) {
this.a = a;
}
public static void main(String args[]) {
A1 a1 = new A1();
a1.setA(1);
System.out.println("a = " + a1.getA());//kết quả là: a = 1
}
}


Bài viết này được chỉnh sửa bởi PhươngĐiệp2410: 19 November 2007 - 05:08 PM

http://winsocks.net/

Are You looking for a good socks 5 service? But you don't know where to buy?
Welcome to WinSocks.Net - Crazy Socks Service
Here we provide Fresh Socks 5 with fast speed , less blacklist, especially price is cheaper than others service.
More over, if you want to test our socks 5 before buying, don't be hesitate to contact our supporter through yahoo to receive Free Socks 5

#3
PhươngĐiệp2410

PhươngĐiệp2410

    Thạc sĩ CSTH

  • VIP
  • PipPipPipPipPip
  • 1917 Bài Viết:

Từ khóa final:
Nếu lớp A là final thì lớp A sẽ không được kế thừa bởi bất kỳ lớp nào.

CODE

final class A {
public a;
public A() {
}
//và các phương thức khác...
}
/**
* lớp A1 sau sẽ bị báo lỗi.
*/
public class A1 extends A {
}


Nếu phương thức getA là final thì phương thức này sẽ không thể bị override bởi các lớp con.
vd:

CODE

public class A {
public int a;
public A() {
a = 100;
}
final int getA() {
return a;
}
}
public class A1 extends A {
/**
* vì không thể override hàm getA nên sự xuất hiện của hàm getA ở
* lớp A1 là sai --> bị báo lỗi.
*/
int getA() {
return a-1;
}
}


Nếu một biến a (thuộc lớp A) là final thì biến này là một hằng, và phải được khởi tạo trong constructor hoặc lúc khai báo. Nếu gán giá trị cho a ngoài constructor hoặc ngoài lúc khai báo thì sẽ bị báo lỗi.
vd

CODE

public class A {
final int a; //có thể gán giá trị tại đây.
public A() {
//nếu lúc khai báo chưa gán giá trị
//mà lại không được khởi tạo trong constructor --> bị báo lỗi
a = 100;
}
/**
* nếu có thêm phương thức sau thì sẽ bị báo lỗi.
*/
public setA (int a) {
this.a = a; //sai
}
}


http://winsocks.net/

Are You looking for a good socks 5 service? But you don't know where to buy?
Welcome to WinSocks.Net - Crazy Socks Service
Here we provide Fresh Socks 5 with fast speed , less blacklist, especially price is cheaper than others service.
More over, if you want to test our socks 5 before buying, don't be hesitate to contact our supporter through yahoo to receive Free Socks 5

#4
PhươngĐiệp2410

PhươngĐiệp2410

    Thạc sĩ CSTH

  • VIP
  • PipPipPipPipPip
  • 1917 Bài Viết:

Từ khóa interface và implements:
Một lớp A là interface nghĩa là mọi phương thức, hàm đều không có phần thân hàm mà chỉ là liệt kê những phương thức, hàm cho các lớp khác implements. Nếu lớp A1 implements interface A và không có đủ các phương thức, hàm được liệt kê trong A thì sẽ bị báo lỗi.
Vd :
CODE

interface A {
public int getNextA();
public void setA(int a);
}
public class A1 {
private int a = 0;
public static void main(String args[]) {
A a = new A1();
a.setA(10);
System.out.println("a = " + a.getNextA());//kết quả là: a = 11
}
/**
* Nếu thiếu một trong 2 phương thức sau sẽ báo lỗi.
*/
public int getNextA() {
return a+1;
}
public void setA(int a) {
this.a = a;
}
}


Trong JAVA cũng có nhiều lớp như vậy.
Vd như :
CODE

java.util.List lst = new java.util.ArrayList();
java.util.List lst1 = new java.util.LinkedList();


Ngoài ra còn có các Listener như ActionListener,... cũng được dùng như vậy.
Ích lợi của việc dùng interface là chúng ta có thể đặt ra một chuẩn giao tiếp. Như vậy, khi chúng ta không muốn sử dụng lớp cũ thì chúng ta cứ việc dùng một lớp mới, giúp giảm thiểu sử thay đổi code khi đổi từ lớp cũ sang lớp mới. Ví dự như với lớp List bên trên, khi chúng ta không thích sử dụng danh sách kề (ArrayList) nữa thì chúng ta có thể dễ dàng chuyển sang dùng danh sách liên kết (LinkedList) mà không phải thay đổi tiếp đoạn code bên dưới.


http://winsocks.net/

Are You looking for a good socks 5 service? But you don't know where to buy?
Welcome to WinSocks.Net - Crazy Socks Service
Here we provide Fresh Socks 5 with fast speed , less blacklist, especially price is cheaper than others service.
More over, if you want to test our socks 5 before buying, don't be hesitate to contact our supporter through yahoo to receive Free Socks 5

#5
PhươngĐiệp2410

PhươngĐiệp2410

    Thạc sĩ CSTH

  • VIP
  • PipPipPipPipPip
  • 1917 Bài Viết:

Từ khóa static:
Dùng để định nghĩa một biến của một lớp. Đây có thể coi như là một biến toàn cục, vì dù lớp chứa biến static được khởi tao bao nhiêu lần thì nó chỉ có duy nhất một biến static (nằm ở cùng một vùng nhớ). Biến static cũng được dùng để khai báo một phương thức. Một phương thức static chỉ có thể truy cập tới biến static của class mà thôi.
Vd :

CODE

public class Math {
public static double s_pi = 3.14;
public double m_pi = 3.14;
public static double calculateCircle(double r) {
return r*r*s_pi; //nếu dùng m_pi thì sẽ sai.
}
}
public class MathExecute {
public static void main(String args[]) {
System.out.println("pi = " + Math.s_pi);//kết quả là pi = 3.14
Math.s_pi = 3.1412;
Math m = new Math();
System.out.println("pi = " + m.s_pi);//kết quả là pi = 3.1412
m.s_pi = 3.141;
System.out.println("pi = " + Math.s_pi);//kết quả là pi = 3.141
}
}


http://winsocks.net/

Are You looking for a good socks 5 service? But you don't know where to buy?
Welcome to WinSocks.Net - Crazy Socks Service
Here we provide Fresh Socks 5 with fast speed , less blacklist, especially price is cheaper than others service.
More over, if you want to test our socks 5 before buying, don't be hesitate to contact our supporter through yahoo to receive Free Socks 5

#6
Lãng Tử Đa Tình

Lãng Tử Đa Tình

    Củ Chuối Thục Sơn

  • Advance Member
  • PipPipPip
  • 428 Bài Viết:
good job
Hard times show whether a friend is a true friend

#7
Xuân-Hoàn

Xuân-Hoàn

    Thành viên mới

  • Member
  • 1 Bài Viết:

Từ khóa final:
Nếu lớp A là final thì lớp A sẽ không được kế thừa bởi bất kỳ lớp nào.

CODE

final class A {
public a;
public A() {
}
//và các phương thức khác...
}
/**
* lớp A1 sau sẽ bị báo lỗi.
*/
public class A1 extends A {
}


Nếu phương thức getA là final thì phương thức này sẽ không thể bị override bởi các lớp con.
vd:

CODE

public class A {
public int a;
public A() {
a = 100;
}
final int getA() {
return a;
}
}
public class A1 extends A {
/**
* vì không thể override hàm getA nên sự xuất hiện của hàm getA ở
* lớp A1 là sai --> bị báo lỗi.
*/
int getA() {
return a-1;
}
}


Nếu một biến a (thuộc lớp A) là final thì biến này là một hằng, và phải được khởi tạo trong constructor hoặc lúc khai báo. Nếu gán giá trị cho a ngoài constructor hoặc ngoài lúc khai báo thì sẽ bị báo lỗi.
vd

CODE

public class A {
final int a; //có thể gán giá trị tại đây.
public A() {
//nếu lúc khai báo chưa gán giá trị
//mà lại không được khởi tạo trong constructor --> bị báo lỗi
a = 100;
}
/**
* nếu có thêm phương thức sau thì sẽ bị báo lỗi.
*/
public setA (int a) {
this.a = a; //sai
}
}

Test




0 người đang đọc chủ đề này

0 thành viên, 0 khách, 0 thành viên ẩn



Stars Counter Game

Balloon vs. Thorns

MU Phuc Hung

Làm Việc Tài Nhà

Mu Da Nang

Tuyển Nhân Viên Bán Hàng

Tư vấn sức khỏe trực tuyến