Twitter Delicious Facebook Digg Stumbleupon Favorites More

Chủ Nhật

================================================
Trích bài của thành viên SuperAdmin trong diễn đànhttp://www.it-huflit.info
================================================

Kế thừa:
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:

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: 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;
     */
    static void main() {
        A1 a1 = new A1();
        Console.WriteLine("a = " + a1.getNextA()
                           + "; b = " + a1.getNextB()
                           + "; c = " + a1.getNextC() + ";");
   }
}
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:

public abstract class A {
    private int a;
    public A() {
        a = 100;
    }
    public int getA() {
        return a;
    }
}
public class A1: A {
    public A1() {
    }
    static void Main() {
        A a = new A(); //--> sai
        A1 a1 = new A1();
        Console.WriteLine("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.

public 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: 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;
    }
    static void Main() {
        A1 a1 = new A1();
        a1.setA(1);
        Console.WriteLine("a = " + a1.getA());//kết quả là: a = 1
    }
}

Từ khóa interface:
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 :
public interface A {
    /**
     * Trong C#, không được đưa các từ khóa public, private, protected
     * vào trước hàm.
     */
    int getNextA();
    void setA(int a);
}
public class A1 {
    private int a = 0;
    static void Main() {
        A a = new A1();
        a.setA(10);
        Console.WriteLine("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;
    }
}
Từ khóa virtual và override:
Hàm getA là virtual nghĩa là nó cho phép các lớp con của nó override lên.
Vd:
public class A {
    private int a = 0;
    public virtual int getA() {
        return a;
    }
}
public class A1 {
    private int b = 10;
    public override int getA() {
         return b;
    }
}

Hãy xem thêm ví dụ sau để hiểu rõ hơn về virtual và override:
public class A {
    public virtual string getName() {
        return "A";
    }
}
public class B: A {
    public virtual string getName() {
        return "B";
    }
}
public class C: B {
    public override string getName() {
        return "C";
    }
}
public class D: C {
    /**
     * Nếu hàm sau là override thì sẽ bị báo lỗi.
     */
    public virtual string getName() {
        return "D";
    }
    static void Main() {
        D d = new D();
        C c = d;
        B b = c;
        A a = b;
        Console.WriteLine(a.getName() + "; "
                          + b.getName() + "; "
                          + c.getName() + "; "
                          + d.getName() + "; ");
        //kết quả là: A; C; C; D;
    }
}
 
Từ khóa sealed:
Nếu lớp A là sealed thì lớp A sẽ không được kế thừa bởi bất kỳ lớp nào.
public sealed 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: A {
}

Nếu phương thức getA là sealed thì phương thức này sẽ không thể bị override bởi các lớp con.
vd:
public class A {
    public int a;
    public A() {
        a = 100;
    }
    public virtual int getA() {
        return a;
    }
}
public class A1: A {
    public sealed override int getA() {
        return a-1;
    }
}
public class A2: A {
    /**
     * vì không thể override hàm getA --> bị báo lỗi.
     */
    public override int getA() {
        return a-1;
    }
}
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.
Điều khác biệt của biến static trong C# và JAVA là C# không cho truy cập vào biến static ở một instance.
Vd :
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 double calculateNonStaticCircle(double r) {
        return r*r*s_pi;
    }
}
public class MathExecute {
    static void Main() {
        Console.WriteLine("pi = " + Math.s_pi); 
        Math.s_pi = 3.1412;
        Math m = new Math();
        Console.WriteLine("pi = " + m.calculateNonStaticCircle(10));
        m.s_pi = 3.141; //sai
        Console.WriteLine("pi = " + m.calculateCircle(10));//sai
    }
}
Từ khóa const và readonly:
Cả 2 từ khóa đều được dùng để chỉ định một giá trị là hằng số. readonly chỉ được phép dùng cho giá trị của lớp, const có thể dùng cho cả giá trị của lớp và giá trị của hàm. Bất cứ giá trị nào là const phải được khởi tạo lúc khai báo. Giá trị readonly là toàn cục cũng phải được khởi tạo lúc khai báo. Giá trị readonly không toàn cục có thể được khởi tạo trong constructor của lớp.
public class Math {
    public static const double S_PI = 3.141;//nếu không gán giá trị sẽ bị báo lỗi
    public readonly double M_PI;
    public static readonly double S_MATH_PI = 3.14;//nếu không gán giá trị sẽ sai
    /**
     * Constructor.
     */
    public Math() {
        M_PI = 3.14;
        S_PI = 3.14128;//sai
        int const r = 10;//nếu không gán giá trị sẽ sai
        int readonly r = 20;//sai
    }
}
Từ khóa const và readonly:
Cả 2 từ khóa đều được dùng để chỉ định một giá trị là hằng số. readonly chỉ được phép dùng cho giá trị của lớp, const có thể dùng cho cả giá trị của lớp và giá trị của hàm. Bất cứ giá trị nào là const phải được khởi tạo lúc khai báo. Giá trị readonly là toàn cục cũng phải được khởi tạo lúc khai báo. Giá trị readonly không toàn cục có thể được khởi tạo trong constructor của lớp.

Xin bổ sung thêm như sau:
- const và readonly chỉ có thể sử dụng cho các kiểu dữ liệu giá trị (int, string, double...).
- readonly không cần phải khởi tạo giá trị ngay khi khai báo mà có thể khởi tạo giá trị trong hàm constructor (hàm khởi tạo) của lớp.
using System;
public class ReadOnlyTest {
   class MyClass 
   {
      public int x;
      public readonly int y = 25; // Initialize a readonly field
      public readonly int z;

      public MyClass() 
      {
         z = 24;   // Initialize a readonly instance field
      }

      public MyClass(int p1, int p2, int p3) 
      {
         x = p1; 
         y = p2; 
         z = p3;
      }
   }

   public static void Main() 
   {
      MyClass p1= new MyClass(11, 21, 32);   // OK
      Console.WriteLine("p1: x={0}, y={1}, z={2}" , p1.x, p1.y, p1.z);   
      MyClass p2 = new MyClass();
      p2.x = 55;   // OK
      Console.WriteLine("p2: x={0}, y={1}, z={2}" , p2.x, p2.y, p2.z);
   }
}


Thứ Bảy

Kinh nghiệm thay Mainboard cho máy tính


Thông thường khi đã muốn thay thế mainboard cũ bằng một chiếc đời mới hơn, công nghệ tiên tiến hơn và các chuẩn giao tiếp hiện đại hơn thì đồng nghĩa với việc các bạn đang muốn thay thế toàn bộ máy tính của mình. Bởi khi thay thế một bo mạch chủ với công nghệ mới hơn thì cũng đồng nghĩa với các chuẩn cắm cho các linh kiện khác như RAM, chip hay có thể là card đồ họa. Vì thế nếu chỉ nâng cấp bo mạch chủ thì bạn cần đảm bảo những linh kiện khác mà bạn đang dùng không quá cũ và mainboard mới phải giống main cũ về các chuẩn của chip và RAM (một số dòng main có thể cắm cả RAM DDR2 và DDR3 nhưng loại main này không phổ biến).
Kinh nghiệm thay Mainboard cho máy tính, Vi tính - Internet, Kinh nghiem thay Mainboard cho may tinh, kinh nghiem thay Mainboard, thay Mainboard, Mainboard, cach thay Mainboard cho may tinh, may tinh
Với dàn máy đang sử dụng chip Intel
Mainboard dành cho chip Intel hiện tại đang có 4 loại Socket phổ biến nhất là LGA 775, LGA 1366, LGA 1156 và LGA 1155. Trong đó LGA 775 là Socket dành cho các dòng chip các đời Core 2 Duo, Dual Core, Pentium D và 1 số chip Celeron 2 nhân đời mới của Intel. LGA 1366 dành cho các chip Core i7 cao cấp đời đầu, LGA 1156 dùng cho các dòng chip Core i5, Core i3 đời đầu và 1 số chip Core i7 dòng trung cấp tuy nhiên hiện nay main sử dụng Socket 1156 không còn được sử dụng cho các mẫu chip đời mới của Intel.
Chính vì vậy việc nâng cấp lên bo mạch loại này hoàn toàn không được khuyến khích vòa thời điểm hiện tại và bạn chỉ nên chọn dòng này nếu như chip cũ của bạn đang sử dụng loại này. dòng main sử dụng LGA 1155 là dòng mới nhất của Intel, nó cắm được các chip Core ix đời 2 (thuộc dòng SandyBridge đình đám hồi đầu năm).
Kinh nghiệm thay Mainboard cho máy tính, Vi tính - Internet, Kinh nghiem thay Mainboard cho may tinh, kinh nghiem thay Mainboard, thay Mainboard, Mainboard, cach thay Mainboard cho may tinh, may tinh
Ngoài chú ý đến Socket cho chip cũ thì bạn cũng cần chú ý đến chuẩn RAM cũ của mình. Hầu hết các main sử dụng Socket 1366, 1156 và 1155 đều sử dụng RAM DDR3 thậm chí 1 số loại main đời mới sử dụng LGA 775 cũng đã chuyển sang sử dụng RAM DDR3. Do đó, nên nếu thanh RAM cũ của bạn đang dùng là chuẩn DDR2 cũ thì bạn có thể tính đến việc mua đôi RAM mới hơn được rồi.
Với những dàn máy sử dụng chip của AMD
Việc chọn mainboard phù hợp với chip AMD cũ có vẻ như đơn giản hơn của Intel rất nhiều, bởi hầu hết các main đời mới sử dụng Socket AM3 đều có thể cắm được các chip sử dụng Socket đời cũ hơn vì thế bạn không cần quá lo lắng về chip mà chỉ cần tập trung vào RAM giống như trên.
Kinh nghiệm thay Mainboard cho máy tính, Vi tính - Internet, Kinh nghiem thay Mainboard cho may tinh, kinh nghiem thay Mainboard, thay Mainboard, Mainboard, cach thay Mainboard cho may tinh, may tinh
Nếu máy cũ của bạn đang sử dụng card đồ họa rời và cũng không phải loại cũ lắm thì bạn có thể yên tâm vì hầu như tất cả các mainboad ngày nay đều có hỗ trợ 1 cổng PCI express nên bạn có thể cắm card đồ họa cũ lên mainboad mới mà không có gì phải lưu ý. Nhưng nếu trước đây bạn đang sử dụng card đồ họa tích hợp trên mainboard cũ thì bạn cần lưu ý hơn đến mainboard mới.
Các main đời cũ thì thường được chia theo tên gọi của chúng, các dòng bắt đầu bằng chữ P thì sẽ không có card đồ họa tích hợp (P31, P41, P43 v.v...) còn các dòng bắt đầu bằng chữ G thì sẽ có hỗ trợ (G31, G41, G43 v.v...) và 1 đặc điểm khác để nhận biết mainboard có card onboard hay không đó là nhìn vào phần chân cắm của các mainboard. Nếu bạn thấy có các cổng xuất tín hiệu hình ảnh như D-Sub, DVI hay HDMI thì main đó sẽ có card đồ họa tích hợp.
Kinh nghiệm thay Mainboard cho máy tính, Vi tính - Internet, Kinh nghiem thay Mainboard cho may tinh, kinh nghiem thay Mainboard, thay Mainboard, Mainboard, cach thay Mainboard cho may tinh, may tinh
Cổng D-Sub ở sau main chứng tỏ main có card đồ họa tích hợp.
Đối với các main đời mới sử dụng Socket 1156 trở lên thì chip đồ họa tích hợp không còn được nằm trên mainboard nữa mà nó đã được tích hợp vào các con chip dòng Core i đời mới. Vì thế ngoài xem xem mainboard có cổng xuất tín hiệu hình ảnh hay không, bạn cũng cần chú ý đến dòng chip của bạn có nhân đồ họa tích hợp hay không, nếu chip không có nhân đồ họa tích hợp thì dù có cổng xuất tín hiệu trên main bạn vẫn không thể sử dụng chúng được.
Nguồn điện cũng là thành phần khá quan trọng của máy tính nhưng việc thay main có lẽ sẽ không ảnh hưởng nhiều đến công suất tiêu thụ của máy, nhưng để an toàn hơn cho các thiết bị đắt tiền của mình bạn cũng nên chọn cho mình 1 chiếc nguồn công suất thực có tên tuổi 1 chút. Huntkey có lẽ là loại tương đối bình dân trong số các loại nguồn có tên tuổi đang được bán tại Việt Nam.
Kinh nghiệm thay Mainboard cho máy tính, Vi tính - Internet, Kinh nghiem thay Mainboard cho may tinh, kinh nghiem thay Mainboard, thay Mainboard, Mainboard, cach thay Mainboard cho may tinh, may tinh
Tháo mainboard cũ và lắp đặt mainboard mới
Sau khi đã lựa chọn được mainboad mới theo các lưu ý kể trên chúng ta sẽ bắt đầu quá trình tháo và lắp bo mạch chủ mới vào thùng máy.
Bước đầu tiên khi đụng tới các linh kiện máy tính mà bạn cần làm đó là ngắt toàn bộ nguồn điện của máy tính và dùng vòng khử tĩnh điện để thao tác. Tuy nhiên món này có vẻ không được phổ biến đối với người dùng máy thông thường nên bạn có thể bấm nút Power trên thùng máy để toàn bộ điện còn tích trên máy được tiêu hết trước khi chạm tay vào máy (tất nhiên là lúc bấm nút Power thì máy đã được rút nguồn).
Đặt thùng máy lên bàn và mở nắp thùng bên trái ra, bạn sẽ thấy rất nhiều dây cáp được nối từ những thiết bị trong máy đến main, hãy tháo tất cả những đầu cáp từ các linh kiện khác nối tới main để tiến hành tháo dỡ main cũ.
Kinh nghiệm thay Mainboard cho máy tính, Vi tính - Internet, Kinh nghiem thay Mainboard cho may tinh, kinh nghiem thay Mainboard, thay Mainboard, Mainboard, cach thay Mainboard cho may tinh, may tinh
Gỡ RAM khỏi main bằng cách ấn vào 2 lẫy 2 đầu khe cắm để RAM tự bật lên.
Kinh nghiệm thay Mainboard cho máy tính, Vi tính - Internet, Kinh nghiem thay Mainboard cho may tinh, kinh nghiem thay Mainboard, thay Mainboard, Mainboard, cach thay Mainboard cho may tinh, may tinh
Trên main cũng sẽ có 2 đến 3 dây điện nối từ nguồn vào, bạn cũng cần rút hết chúng trước khi tháo main, để tháo các cáp nối từ nguồn, bạn cần bấm vào lẫy ở mỗi jack cắm rồi lay nhẹ để rút lên.
Kinh nghiệm thay Mainboard cho máy tính, Vi tính - Internet, Kinh nghiem thay Mainboard cho may tinh, kinh nghiem thay Mainboard, thay Mainboard, Mainboard, cach thay Mainboard cho may tinh, may tinh
Sau khi đã tháo tất cả những linh kiện và cáp nối đến main bạn dùng tuốc nơ vít và tháo tất cả vít dùng để cố định main vào thùng máy (vít này thường là vít 4 cạnh). Sau khi tháo hết vít nhẹ nhàng nhấc phía bên phải của main lên rồi rút main ra vì phía bên trái của main bị vướng ở tấm chặn main nên bạn sẽ phải rút main sang bên phải 1 chút.
Khi đã tháo được main cũ, hãy dùng cuôi tuốc nơ vít và gõ nhẹ vào tấm chặn main cũ từ bên ngoài thùng vào trong để tháo nó ra. Sau đó lấy tấm chặn main mới đi kèm bên trong hộp main lắp vào vị trí, lúc lắp có lẽ chỉ cần dùng tay là đủ. Chú ý khi lắp chặn main bằng tay bạn nên lắp thật nhẹ nhàng nếu không muốn đứt tay bởi nó có rất nhiều cạnh sắc và lởm chởm.
Kinh nghiệm thay Mainboard cho máy tính, Vi tính - Internet, Kinh nghiem thay Mainboard cho may tinh, kinh nghiem thay Mainboard, thay Mainboard, Mainboard, cach thay Mainboard cho may tinh, may tinh
Tiếp theo bạn nhấc bo mạch chủ mới và đặt vào vị trí rồi bắt vít lại như cũ, các lỗ vít được thiết kế theo tiêu chuẩn nên bạn không cần lo lắng khi lắp được lỗ này nhưng lỗ khác lại lệch.
Cắm lại các đầu cáp điện trước, trong đó có 1 bó dây to nhất từ nguồn (24 chân) là nguồn cấp chính cho main và 1 đầu nguồn phụ 4 chân hoặc 2 đầu 4 chân với các main đời mới. Hai đầu cáp này là thứ quan trọng nhất khi lắp đặt bởi rất nhiều người quên lắp cáp nguồn phụ và hậu quả là máy sẽ không khởi động được nếu không cắm chúng.
Lắp đặt các thiết bị cũ như chip, RAM và card đồ họa vào mainboard mới. cuối cùng là cắm lại các đầu cáp ổ cứng và ổ DVD.
Kinh nghiệm thay Mainboard cho máy tính, Vi tính - Internet, Kinh nghiem thay Mainboard cho may tinh, kinh nghiem thay Mainboard, thay Mainboard, Mainboard, cach thay Mainboard cho may tinh, may tinh
Có thể khi thay mainboard bạn sẽ không cần cài lại Windows mà chỉ cần cài lại toàn bộ Driver đi theo main mới mà thôi, tuy nhiên 1 số phần mềm có bản quyền sẽ yêu cầu bạn phải xác nhận lại vì bản quyền của 1 số phần mềm được ghi nhận dựa trên tên của thiết bị phần cứng nên khi thay các thiết bị này bạn sẽ mất bản quyền cũ.
Trên đây là 1 chút kinh nghiệm nhỏ mà người viết có thể chia sẻ cùng bạn đọc, nếu có gì sai sót các bạn vui lòng góp ý thông qua comment bên dưới, xin cảm ơn.

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates