logo

Непримітивні типи даних у Java

Типи даних визначають тип даних, які зберігаються в змінній. Тип визначає тип даних (різні розміри та значення).

Мова програмування Java має два типи типів даних

  1. Непримітивні типи даних

    На відміну від простих типів даних, вони не визначені заздалегідь. Це визначені користувачем типи даних, створені програмістами. Ці типи даних використовуються для зберігання кількох значень.

    java тривалість

    Наприклад, розглянемо масив, який зберігає групу значень. Клас також є примітивним типом, який зберігає різні методи та змінні. Тому їх ще називають як розширені типи даних на Java.

    Щоразу, коли визначається непримітивний тип даних, він посилається на область пам’яті, де дані зберігаються в пам’яті купи, тобто це посилається на область пам’яті, де розміщено об’єкт. Тому також викликається змінна непримітивного типу даних тип даних, на який посилається або просто змінна посилання на об’єкт .

    Змінна посилання на об’єкт живе в пам’яті стека, а об’єкт, на який вона вказує, завжди знаходиться в пам’яті купи. Стек містить покажчик на об’єкт у купі.

    У програмуванні на Java всі непримітивні типи даних просто називаються об’єктами, які створюються шляхом інстанціювання класу.

    Ключові моменти:

    1. Значення за замовчуванням будь-якої посилальної змінної дорівнює нулю.
    2. Щоразу, коли ми передаємо методу непримітивний тип даних, ми передаємо адресу цього об’єкта, де зберігаються дані.

    Типи Непримітивні типи даних

    У Java існує п’ять типів непримітивних типів даних. Вони такі:

    1. Клас
    2. Об'єкт
    3. Рядок
    4. Масив
    5. Інтерфейс

    1. Клас і об'єкти:

    А клас у Java — це визначений користувачем тип даних, тобто він створюється користувачем. Він діє як шаблон для даних, який складається зі змінних-членів і методів.

    Ан об'єкт є змінною класу, яка може отримати доступ до елементів класу, тобто методів і змінних.

    приклад:

    жирний текст css

    У наступному прикладі ми створюємо клас, що містить змінні та методи ( add() і sub() ). Тут ми отримуємо доступ до методів за допомогою об’єкта Class об'єкт .

    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

    Примітка: якщо клас реалізує інтерфейс, він повинен реалізовувати всі методи цього інтерфейсу. Якщо ні, ми повинні оголосити клас як абстрактний.

    приклад:

    У наступному прикладі ми створюємо інтерфейс CalcInterface за допомогою двох абстрактних методів ( multiply() і divide() ). Тут клас 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» тощо. String — це клас Java.

    Один із способів створити рядок і зберегти в ньому значення показано нижче:

     String str = 'You're the best'; 

    Тут змінна типу String вул має значення «Ти найкращий». Натисніть тут, щоб дізнатися більше про Рядок в Java .

    приклад:

    весняні петлі

    У наступному прикладі ми створюємо рядок із значенням. Тут ми використовуємо один із методів класу String, підрядок() який друкує вказану проіндексовану частину рядка.

    StringExample.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. Змінні можуть бути примітивними або непримітивними типами даних.

    кортеж python відсортовано

    У наступному прикладі показано, як оголосити масив примітивного типу даних внутр :

     int [ ] marks; 

    У наступному прикладі показано, як оголосити масив непримітивного типу даних:

     Student [ ] students; 

    де, студент це ім’я класу, а [ ] створює масив об’єктів студентів .

    приклад:

    У наступному прикладі ми створюємо два основні масиви, у яких один ініціалізовано, а інший оголошено (введення зчитується від користувача). Крім того, ми друкуємо ці масиви за допомогою циклу 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. У примітивному типі даних змінні можуть зберігати лише одне значення за раз. Однак у непримітивних типах даних можна зберігати або кілька значень одного типу, або різних типів, або обидва.
    3. Усі дані для змінних примітивного типу зберігаються в стеку, тоді як для еталонних типів стек містить вказівник на об’єкт у купі.
    4. Примітивний тип починається з малої літери, тоді як непримітивні типи починаються з великої літери.
    5. Розмір примітивного типу залежить від типу даних, тоді як непримітивні типи мають однаковий розмір.