Thứ Năm, 21 tháng 12, 2017

Kế thừa và đa hình trong java

public class SinhVien {

    public static void main(String[] args) {
        Cat c=new Cat("Tom",2,1);
        Mouse m=new Mouse("Jerry",3);
       
        System.out.println(""+getT(c)); //Cat
        System.out.println(""+getT(m)); //Mouse
       
    }
   
    //Ứng dụng đa hình, truyền qua tham số
    public static String getT(Animal animal) {
       
        return animal.getAnimalName();
    }
}

abstract class Animal {

    // Tên, ví dụ Mèo Tom, Chuột Jerry.
    private String name;

    // Constructor mặc định.
    public Animal() {
        // Gán giá trị mặc định cho 'name'.
        this.name = this.getAnimalName();
    }

    public Animal(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    // Đây là một phương thức trừu tượng.
    // Trả về tên của loài động vật này.
    // Nội dung cụ thể của phương thức này
    // sẽ được thực hiện (implemented) tại các lớp con.
    public abstract String getAnimalName();

}

class Cat extends Animal {

    private int age;
    private int height;

    public Cat(int age, int height) {
        // Gọi tới Constructor mặc định của lớp cha (Animal).
        // Nhằm mục đích gán tạo giá trị cho các trường (field) của lớp cha.
        super();
        // Sau đó mới gán giá trị cho các trường (field) của nó.
        this.age = age;
        this.height = height;
    }

    public Cat(String name, int age, int height) {
        // Gọi tới Constructor của lớp cha (Animal)
        // Nhằm mục đích gán tạo giá trị cho các trường (field) của lớp cha.
        super(name);
        // Sau đó mới gán giá trị cho các trường (field) của nó.
        this.age = age;
        this.height = height;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }

    // Thực hiện (implement) phương thức trừu tượng được khai báo tại lớp cha.
    @Override
    public String getAnimalName() {
        return "Cat";
    }
}

class Mouse extends Animal {

    private int weight;

    // Constructor mặc định.
    public Mouse() {
        // Gọi tới cấu tử Mouse(int)
        // Call to constructor Mouse(int)
        this(100);
    }

    // Constructor có 1 tham số
    public Mouse(int weight) {
        // Nếu bạn không gọi bất kỳ một super(..) nào.
        // Java sẽ gọi một super() mặc định.
        // super();
        this.weight = weight;
    }

    // Constructor có 2 tham số.
    public Mouse(String name, int weight) {
        super(name);
        this.weight = weight;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    @Override
    public String getAnimalName() {
        return "Mouse";
    }
}

class AsianCat extends Cat {

    public AsianCat(String name, int age, int height) {
        super(name, age, height);
    }

    // Ghi đè (override) phương thức của lớp cha (Cat)
    @Override
    public String getAnimalName() {
        return "Asian Cat";
    }
}

Thứ Tư, 18 tháng 10, 2017

Sắp xếp Alphabet trong Sublime Text 3

- Chọn khối text cần sort, rồi nhấn F9 (với phiên bản cũ v2.0 thì nhấn F5)
hoặc vào menu Edit → Sort Lines

Xuất toàn bộ tên file trong thư mục ra file text

Vào thư mục cần list tên.
Nhấn giữ phím Shift + click chuột phải ⇒ chọn Open Command Window Here.
Cửa sổ CMD xuất hiện, ta lần lượt gõ 2 lệnh sau và nhấn enter:  
chcp 65001 (cái này để kích hoạt encoding UTF-8 tiếng việt)

dir /b /a-d > dir /b /a-d > D:\zout.txt
Khi đó: ở ổ D sẽ có file: zout.txt chứa list file name.

Thứ Ba, 10 tháng 10, 2017

List 10 truyện NGÔN TÌNH nên đọc

List 10 truyện NGÔN TÌNH nên đọc, ưu tiên theo thứ tự từ trên xuống:

1. Bến xe - Thương Thái Vi
2. Mãi mãi là bao xa - Diệp Lạc Vô Tâm
3. Bên nhau trọn đời - Cố Mạn
4. Từng có một người yêu tôi như sinh mệnh - Thư Nghi
5. Hoa tư dẫn - Đường Thất Công Tử
6. Thất tịch không mưa - Lâu Vũ Tình
7. Sẽ có thiên thần thay anh yêu em - Minh Hiểu Khê
8. Bộ bộ kinh tâm - Đồng Hoa
9. Yêu em từ cái nhìn đầu tiên - Cố Mạn
10. Tam sinh tam thế Thập lí đào hoa - Đường Thất Công Tử

Các truyện ngôn tình khác khuyên không nên đọc, tốn thời gian...

Thứ Năm, 5 tháng 10, 2017

Tạo file truyện tranh dạng mobi để đọc trên Kindle Paperwhite

Bước 1: tải Kindle Comic Converter tại trang: https://kcc.iosphe.re/
Bước 2: tải Kindle Gen tại trang: https://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211
Bước 3: mở web truyện và tải file hình ảnh của truyện bằng extension ImagePicker của Firefox.
Bước 4: đổi tên file cho đúng thứ tự
Bước 5: Nén thư mục chứa ảnh dưới dạng zip hoặc 7z
Bước 6: Cài app (1), giải nén app (2) và copy file kindlegen.exe vào thư mục đã cài đặt của app (1)
Bước 7: chạy app (1) Kindle Comic Converter và Add file zip ở bước (5)
Bước 6: Chọn loại thiết bị muốn xuất, ở đây chọn Kindle PW3
Bước 8: Click Convert và chương trình sẽ xuất dạng .mobi ở thư mục được add file.
Bước 9: Copy file này vào Kindle của bạn
Bước 10: thưởng thức. :))

Thứ Sáu, 22 tháng 9, 2017

Chỉnh DPI điện thoại Android

Ae nào đã root thì vào system edit build.prop chỉnh dòng này là xong nhanh gọn lẹ không cần đến PC.

Thứ Năm, 21 tháng 9, 2017

Reset lại trường ID tự động tăng (Identity ID) trong SQL Server

Chạy lệnh để thiết lập lại ID bắt đầu từ vị trí sau số 0 tức là số 1:
DBCC CHECKIDENT ('TableName', RESEED, 0)