logo

Java の非プリミティブ データ型

データ型は、変数に格納されるデータの型を定義します。タイプはデータの種類 (さまざまなサイズと値) を指定します。

Java プログラミング言語には 2 種類のデータ型があります

  1. 非プリミティブデータ型

    プリミティブ データ型とは異なり、これらは事前定義されていません。これらはプログラマによって作成されたユーザー定義のデータ型です。これらのデータ型は、複数の値を保存するために使用されます。

    「銀行家のアルゴリズム」

    たとえば、次のことを考えてみましょう。 値のグループを格納する配列。クラスは、さまざまなメソッドと変数を格納するプリミティブ型でもあります。したがって、これらは次のようにも呼ばれます。 高度なデータ型 ジャワでは。

    非プリミティブ データ型が定義されるときは常に、データがヒープ メモリに格納されているメモリの場所、つまりオブジェクトが配置されているメモリの場所を指します。したがって、非プリミティブ データ型変数も呼ばれます。 参照されるデータ型 または 単なるオブジェクト参照変数

    オブジェクト参照変数はスタック メモリ上に存在し、それが指すオブジェクトは常にヒープ メモリ上に存在します。スタックは、ヒープ上のオブジェクトへのポインターを保持します。

    Java プログラミングでは、すべての非プリミティブ データ型は、クラスをインスタンス化することによって作成される単にオブジェクトと呼ばれます。

    キーポイント:

    1. 参照変数のデフォルト値は null です。
    2. 非プリミティブ データ型をメソッドに渡すときは、データが保存されているオブジェクトのアドレスを渡すことになります。

    非プリミティブデータ型の種類

    Java には 5 種類の非プリミティブ データ型があります。それらは次のとおりです。

    1. クラス
    2. 物体
    3. 配列
    4. インターフェース

    1. クラスとオブジェクト:

    クラス Java の はユーザー定義のデータ型です。つまり、ユーザーによって作成されます。メンバー変数とメソッドで構成されるデータのテンプレートとして機能します。

    アン 物体 はクラスの変数であり、クラスの要素、つまりメソッドや変数にアクセスできます。

    例:

    私のライブクリケットの代替品

    次の例では、変数とメソッド ( add() と sub() )。ここでは、クラスのオブジェクトを使用してメソッドにアクセスしています。 オブジェクト

    ClassExample.java

     public class ClassExample { // defining the variables of class int a = 20; int b = 10; int c; // defining the methods of class public void add () { int c = a + b; System.out.println('Addition of numbers is: ' + c); } public void sub () { int c = a - b; System.out.println('Subtraction of numbers is: ' + c); } // main method public static void main (String[] args) { // creating the object of class ClassExample obj = new ClassExample(); // calling the methods obj.add(); obj.sub(); } } 

    出力:

     Addition of numbers is: 30 Subtraction of numbers is: 10 

    2. インターフェース:

    アン インターフェース はクラスに似ていますが、唯一の違いは、そのメソッドがデフォルトで抽象である、つまり本体を持たないことです。インターフェイスには、最後の変数とメソッド宣言のみが含まれます。完全抽象クラスとも呼ばれます。

    Javaのwhile条件

    注: クラスがインターフェイスを実装する場合は、そのインターフェイスのすべてのメソッドを実装する必要があります。そうでない場合は、クラスを抽象として宣言する必要があります。

    例:

    次の例では、2 つの抽象メソッド ( 乗算()と除算() )。ここで、クラス InterfaceExample はインターフェイスを実装し、さらにそのインターフェイスのメソッドを定義します。次に、クラスのオブジェクトを使用してそれらのメソッドにアクセスします。

    InterfaceExample.java

     interface CalcInterface { void multiply(); void divide(); } public class InterfaceExample implements CalcInterface { // defining the variables of class int a = 10; int b = 20; int c; // implementing the interface methods public void multiply() { int c = a * b; System.out.println('Multiplication of numbers is: ' + c); } public void divide() { int c = a / b; System.out.println('Division of numbers is: ' + c); } // main method public static void main (String[] args) throws IOException { InterfaceExample obj = new InterfaceExample(); // calling the methods obj.multiply(); obj.divide(); } } 

    3. 文字列:

    文字列は、「Javatpoint」、「Hello world」などの一連の文字を表します。文字列は Java のクラスです。

    文字列を作成して値を格納する方法の 1 つを以下に示します。

     String str = 'You're the best'; 

    ここではString型変数 str 「あなたは最高だ」という価値観があります。について詳しく理解するにはここをクリックしてください Javaの文字列

    例:

    メソッドのオーバーロード

    次の例では、値を含む文字列を作成しています。ここでは、String クラスのメソッドの 1 つを使用しています。 部分文字列() これは、文字列の指定されたインデックス部分を出力します。

    文字列の例.java

     public class StringExample { public static void main(String[] args) { // creating a string and initializing it String str = 'Hello! This is example of String type'; // applying substring() on above string String subStr = str.substring(0,14); // printing the string System.out.println(subStr); } } 

    出力:

     Hello! This is 

    4. 配列:

    アン 配列 複数の同種の変数、つまり同じ型の変数をシーケンス内に格納できるデータ型です。これらは、インデックス 0 から始まるインデックス付きの方法で格納されます。変数は、プリミティブ データ型または非プリミティブ データ型のいずれかにすることができます。

    次の例は、プリミティブ データ型の配列を宣言する方法を示しています。 整数 :

     int [ ] marks; 

    次の例は、非プリミティブ データ型の配列を宣言する方法を示しています。

     Student [ ] students; 

    どこ、 学生 はクラス名で、[ ] はオブジェクトの配列を作成します 学生

    Javaのソート文字列

    例:

    次の例では、2 つの基本配列を作成しており、1 つは初期化され、もう 1 つは宣言されています (入力はユーザーから読み取られます)。さらに、for ループを使用してそれらの配列を出力しています。

    ArrayExample.java

     // importing required packages import java.io. * ; import java.util. * ; public class ArrayExample { public static void main(String[] args) throws IOException { int i; Scanner sc = new Scanner(System. in ); // declaring and initializing an array int arr[] = {1, 2, 3, 6, 9}; // defining another array arr1 int arr1[] = new int[5]; // reading values from the user System.out.println(&apos;Enter the numbers (size = 5) :&apos;); for (i = 0; i <5; i++) { arr1[i]="sc.nextInt();" } system.out.println('previous array with initialized size is: '); for (i="0;" i < 5; system.out.print(arr[i] + ' system.out.println('
    the new we have entered is:'); system.out.print(arr1[i] pre> <p> <strong>Output:</strong> </p> <pre> Enter the numbers (size = 5) : 56 43 22 1 7 Previous array with initialized size is: 1 2 3 6 9 The new array we have entered is: 56 43 22 1 7 </pre> <h2>Difference between Primitive and Non-primitive Data types in Java</h2> <ol class="points"> <li>In Java, the primitive data types are system defined however we have to create and define the non-primitive data types.</li> <li>In primitive data type, variables can store only one value at a time. However in non-primitive data types, either multiple values of the same type or different type or both can be stored.</li> <li>All the data for primitive type variables are stored on the stack whereas, for reference types, the stack holds a pointer to the object on the heap.</li> <li>A primitive type starts with a lowercase letter, while non-primitive types start with an uppercase letter.</li> <li>The size of a primitive type depends on the data type, while non-primitive types have all the same size.</li> </ol> <hr></5;>

    Java のプリミティブ データ型と非プリミティブ データ型の違い

    1. Java では、プリミティブ データ型はシステム定義されていますが、非プリミティブ データ型を作成して定義する必要があります。
    2. プリミティブ データ型では、変数は一度に 1 つの値のみを格納できます。ただし、非プリミティブ データ型では、同じ型または異なる型、あるいはその両方の複数の値を格納できます。
    3. プリミティブ型変数のデータはすべてスタックに格納されますが、参照型の場合、スタックはヒープ上のオブジェクトへのポインターを保持します。
    4. プリミティブ型は小文字で始まりますが、非プリミティブ型は大文字で始まります。
    5. プリミティブ型のサイズはデータ型によって異なりますが、非プリミティブ型のサイズはすべて同じです。