Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Các loại class khác nhau trong Java là gì?


Các loại class trong Java

Concrete class

Bất kỳ class bình thường nào không có abstract method hoặc class có implementation của tất cả methods của parent class hoặc interface và methods của chính nó là concrete class.

Ví dụ

public class Concrete { // Concrete Class 
    static int product(int a, int b) { 
        return a * b; 
    } 
    public static void main(String args[]) { 
        int p = product(2, 3); 
        System.out.println("Product: " + p); 
    } 
}

Kết quả

Product: 6

Abstract class

Class được khai báo với từ khóa abstract và có zero hoặc nhiều abstract methods được gọi là abstract class. Abstract classes là incomplete classes, do đó, để sử dụng chúng ta bắt buộc phải extend abstract classes thành concrete class.

Ví dụ

abstract class Animal { //abstract parent class 
    public abstract void sound(); //abstract method 
} 
public class Dog extends Animal { //Dog class extends Animal class 
    public void sound() { 
        System.out.println("Woof"); 
    } 
    public static void main(String args[]) { 
        Animal a = new Dog(); 
        a.sound(); 
    } 
}

Kết quả

Woof

Final class

Class được khai báo với từ khóa final là final class và không thể bị extend bởi class khác, ví dụ java.lang.System class.

Ví dụ

final class BaseClass { 
    void Display() { 
        System.out.print("This is Display() method of BaseClass."); 
    } 
} 
class DerivedClass extends BaseClass { //Compile-time error - can't inherit final class 
    void Display() { 
        System.out.print("This is Display() method of DerivedClass."); 
    } 
} 
public class FinalClassDemo { 
    public static void main(String[] arg) { 
        DerivedClass d = new DerivedClass(); 
        d.Display(); 
    } 
}

Trong ví dụ trên, DerivedClass extends BaseClass(final), chúng ta không thể extend final class, nên compiler sẽ ném lỗi. Chương trình trên không thực thi.

Kết quả

cannot inherit from final BaseClass Compile-time error - can't inherit final class

POJO class

Class chỉ chứa private variables và setter, getter methods để dùng các biến đó gọi là POJO (Plain Old Java Object) class. Nó là fully encapsulated class.

Ví dụ

class POJO { 
    private int value=100; 
    public int getValue() { 
        return value; 
    } 
    public void setValue(int value) { 
        this.value = value; 
    } 
} 
public class Test { 
    public static void main(String args[]){ 
        POJO p = new POJO(); 
        System.out.println(p.getValue()); 
    } 
}

Kết quả

100

Static class

Static classes là nested classes nghĩa là class được khai báo trong class khác như static member gọi là static class.

Ví dụ

import java.util.Scanner; 
class staticclasses { 
    static int s; // static variable 
    static void met(int a, int b) { // static method 
        System.out.println("static method to calculate sum"); 
        s = a + b; 
        System.out.println(a + "+" + b); // print two numbers 
    } 
    static class MyNestedClass { // static class 
        static { // static block 
            System.out.println("static block inside a static class"); 
        } 
        public void disp() { 
            int c, d; 
            Scanner sc = new Scanner(System.in); 
            System.out.println("Enter two values"); 
            c = sc.nextInt(); 
            d = sc.nextInt(); 
            met(c, d); // calling static method 
            System.out.println("Sum of two numbers-" + s); // print the result in static variable 
        } 
    } 
} 
public class Test { 
    public static void main(String args[]) { 
        staticclasses.MyNestedClass mnc = new staticclasses.MyNestedClass(); // object for static class 
        mnc.disp(); // accessing methods inside a static class 
    } 
}

Kết quả

static block inside a static class Enter two values 10 20 static method to calculate sum 10+20 Sum of two numbers-30

Inner Class

Class được khai báo trong class hoặc method khác gọi là inner class.

Ví dụ

public class OuterClass { 
    public static void main(String[] args) { 
        System.out.println("Outer"); 
    } 
    class InnerClass { 
        public void inner_print() { 
            System.out.println("Inner"); 
        } 
    } 
}

Kết quả

Outer