Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaのさまざまなタイプのクラスは何ですか?


Javaのクラスの種類

具体的なクラス

抽象メソッドを持たない通常のクラス、または親クラスまたはインターフェースのすべてのメソッドの実装を持ち、独自のメソッドを持つクラスは具象クラスです。

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);
   }
}

出力

Product: 6

抽象クラス

抽象キーワードで宣言され、0個以上の抽象メソッドを持つクラスは抽象クラスと呼ばれます。抽象クラスは不完全なクラスであるため、使用するには、抽象クラスを具体的なクラスに拡張する必要があります。

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();
   }
}

出力

Woof

最終クラス

finalキーワードで宣言されたクラスはfinalクラスであり、java.lang.Systemクラスなどの別のクラスで拡張することはできません。

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();
   }
}

上記の例では、 DerivedClassはBaseClass(final)を拡張します 、finalクラスを拡張できないため、コンパイラはエラーをスローします 。上記のプログラムはしません 実行

出力

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

POJOクラス

プライベート変数と、それらの変数を使用するためのsetterおよびgetterメソッドのみを含むクラスは、POJO(Plain Old Java Object)クラスと呼ばれます。完全にカプセル化されたクラスです。

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());
   }
}

出力

100

静的クラス

静的クラスはネストされたクラスであり、静的メンバーとして別のクラス内で宣言されたクラスは静的クラスと呼ばれます。

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
   }
}

出力

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

インナークラス

別のクラスまたはメソッド内で宣言されたクラスは、内部クラスと呼ばれます。

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

出力

Outer

  1. Java 9のJShellのさまざまな起動スクリプトは何ですか?

    JShell は、JShellからコードを実行し、出力を即座に表示するインタラクティブなJavaシェルツールです。 JShellはREPL (読み取り-評価-印刷-ループ )コマンドラインから実行できるツール プロンプト。 JShellには、起動時にいくつかの特別な定義済みオプションを含むスクリプトをロードするオプションがあります。これらは、「-startup」を使用して指定できます ファイル名またはDEFAULTのいずれかを渡すフラグ 、JAVASE、および印刷 。 「/list-start」を使用できます 評価するすべてのスタートアップスニペットを確認してください。 デフォルト:

  2. Java9のJShellのさまざまな/editコマンドは何ですか?

    JShell Java 9で導入されたコマンドラインツールです main()なしで宣言、ステートメント、および式を評価します 方法。 JShellは、 JShell Edit Padというテキストエディタを設定できます。 、コードを非常に簡単に変更でき、「 / edit」を使用して起動できます コマンド。 以下は、さまざまな「/編集」です。 Jshellで使用されるコマンド。 /edit /edit [ID] /edit [Code_Name] /編集: このコマンドは引数なしで使用できます。「/edit」コマンドは、テキストエディタにすべてのアクティブなコードを表示します。