logo

Непримитивни типове данни в Java

Типовете данни определят типа данни, които се съхраняват в променливата. Типът определя вида на данните (различни размери и стойности).

Езикът за програмиране Java има два типа типове данни

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

    За разлика от примитивните типове данни, те не са предварително дефинирани. Това са дефинирани от потребителя типове данни, създадени от програмисти. Тези типове данни се използват за съхраняване на множество стойности.

    разлика между два низа python

    Например, помислете за масив, който съхранява група от стойности. Класът също е примитивен тип, който съхранява различни методи и променливи. Следователно, те също се наричат ​​като разширени типове данни в Java.

    Всеки път, когато е дефиниран непримитивен тип данни, той препраща към място в паметта, където данните се съхраняват в куп памет, т.е. препраща към местоположението в паметта, където е поставен обект. Следователно се извиква и променлива от не-примитивен тип данни рефериран тип данни или просто обектна референтна променлива .

    Обектна референтна променлива живее в паметта на стека, а обектът, към който сочи, винаги живее в паметта на стека. Стекът съдържа указател към обекта в купчината.

    В програмирането на Java всички непримитивни типове данни се наричат ​​просто обекти, които се създават чрез инстанциране на клас.

    Ключови точки:

    1. Стойността по подразбиране на всяка референтна променлива е нула.
    2. Всеки път, когато предаваме непримитивен тип данни на метод, ние предаваме адреса на този обект, където се съхраняват данните.

    Типове непримитивни типове данни

    В Java има пет типа непримитивни типове данни. Те са както следва:

    1. Клас
    2. Обект
    3. низ
    4. Масив
    5. Интерфейс

    1. Клас и обекти:

    А клас в Java е дефиниран от потребителя тип данни, т.е. създава се от потребителя. Той действа като шаблон към данните, който се състои от членски променливи и методи.

    Ан обект е променливата на класа, която има достъп до елементите на класа, т.е. методи и променливи.

    Пример:

    произволно число между 1 и 10

    В следващия пример създаваме клас, съдържащ променливите и методите ( 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. Интерфейс:

    Ан интерфейс е подобен на клас, но единствената разлика е, че неговите методи са абстрактни по подразбиране, т.е. те нямат тяло. Интерфейсът има само крайните променливи и декларации на методи. Нарича се още напълно абстрактен клас.

    Мадхури каза давай

    Забележка: Ако класът имплементира интерфейс, той трябва да имплементира всички методи на този интерфейс. Ако не, трябва да декларираме класа като абстрактен.

    Пример:

    В следващия пример създаваме интерфейса 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“ и т.н. Низът е класът на Java.

    Един от начините за създаване на низ и съхраняване на стойност в него е показан по-долу:

     String str = 'You're the best'; 

    Тук, променлива тип низ ул има стойност „Ти си най-добрият“. Щракнете тук, за да разберете повече за Низ в Java .

    Пример:

    изтрийте файла в 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. Променливите могат да бъдат или примитивни, или непримитивни типове данни.

    ядрото на грешката на сегментирането е изхвърлено

    Следващият пример показва как да декларирате масив от примитивен тип данни вътр :

     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. Размерът на примитивен тип зависи от типа данни, докато непримитивните типове имат един и същ размер.