Các loại lớp trong Java
Lớp bê tông
Bất kỳ lớp bình thường nào không có bất kỳ phương thức trừu tượng nào hoặc một lớp có triển khai tất cả các phương thức của lớp cha hoặc giao diện của nó và các phương thức của chính nó là một lớp cụ thể.
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); } }
Đầu ra
Product: 6
Lớp trừu tượng
Một lớp được khai báo với từ khóa trừu tượng và không có hoặc nhiều phương thức trừu tượng được gọi là lớp trừu tượng. Các lớp trừu tượng là các lớp không hoàn chỉnh, do đó, để sử dụng, chúng ta cần phải mở rộng các lớp trừu tượng thành một lớp cụ thể.
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(); } }
Đầu ra
Woof
Lớp cuối cùng
Một lớp được khai báo với từ khóa cuối cùng là lớp cuối cùng và nó không thể được mở rộng bởi một lớp khác, ví dụ:lớp java.lang.System.
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 mở rộng BaseClass (cuối cùng) , chúng tôi không thể mở rộng lớp cuối cùng, vì vậy trình biên dịch sẽ gặp lỗi . Chương trình trên không thực thi .
Đầu ra
cannot inherit from final BaseClass Compile-time error - can't inherit final class
Lớp POJO
Một lớp chỉ chứa các biến riêng và các phương thức setter và getter để sử dụng các biến đó được gọi là lớp POJO (Plain Old Java Object). Nó là một lớp được đóng gói đầy đủ.
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()); } }
Đầu ra
100
Lớp tĩnh
Các lớp tĩnh là các lớp lồng nhau có nghĩa là một lớp được khai báo bên trong một lớp khác như một thành viên tĩnh được gọi là lớp tĩnh.
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 } }
Đầu ra
static block inside a static class Enter two values 10 20 static method to calculate sum 10+20 Sum of two numbers-30
Lớp bên trong
Một lớp được khai báo trong một lớp hoặc phương thức khác được gọi là lớp bên trong.
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"); } } }
Đầu ra
Outer