logo

Neprimitivni tipovi podataka u Javi

Vrste podataka definiraju vrstu podataka koji su pohranjeni u varijabli. Tip specificira vrstu podataka (različite veličine i vrijednosti).

Programski jezik Java ima dvije vrste tipova podataka

  1. Neprimitivni tipovi podataka

    Za razliku od primitivnih tipova podataka, oni nisu unaprijed definirani. To su korisnički definirane vrste podataka koje su izradili programeri. Ove se vrste podataka koriste za pohranu višestrukih vrijednosti.

    java grah

    Na primjer, razmotrite niz koji pohranjuje grupu vrijednosti. Klasa je također primitivni tip koji pohranjuje različite metode i varijable. Stoga se oni također nazivaju as napredne vrste podataka u Javi.

    Kad god je definiran neprimitivni tip podataka, on se odnosi na memorijsku lokaciju na kojoj su podaci pohranjeni u memoriji hrpe, tj. odnosi se na memorijsku lokaciju na kojoj je postavljen objekt. Stoga se također poziva varijabla tipa podataka koja nije primitivna referencirani tip podataka ili jednostavno referentna varijabla objekta .

    Referentna varijabla objekta živi u memoriji hrpe, a objekt na koji pokazuje uvijek živi u memoriji gomile. Stog drži pokazivač na objekt na hrpi.

    U programiranju u Javi, svi neprimitivni tipovi podataka jednostavno se nazivaju objektima koji se stvaraju instanciranjem klase.

    Ključne točke:

    1. Zadana vrijednost bilo koje referentne varijable je null.
    2. Kad god metodi prosljeđujemo neprimitivni tip podataka, prosljeđujemo adresu tog objekta gdje su podaci pohranjeni.

    Vrste Neprimitivnih tipova podataka

    U Javi postoji pet tipova neprimitivnih tipova podataka. Oni su sljedeći:

    1. Klasa
    2. Objekt
    3. Niz
    4. Niz
    5. Sučelje

    1. Klasa i objekti:

    A razreda u Javi je korisnički definiran tip podataka, tj. kreira ga korisnik. Djeluje kao predložak za podatke koji se sastoje od varijabli članova i metoda.

    An objekt je varijabla klase, koja može pristupiti elementima klase tj. metodama i varijablama.

    Primjer:

    popis polja java

    U sljedećem primjeru stvaramo klasu koja sadrži varijable i metode ( add() i sub() ). Ovdje pristupamo metodama pomoću objekta klase obj .

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

    Izlaz:

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

    2. Sučelje:

    An sučelje slična je klasi, no jedina je razlika u tome što su njezine metode prema zadanim postavkama apstraktne, tj. nemaju tijelo. Sučelje ima samo konačne varijable i deklaracije metoda. Također se naziva i potpuno apstraktna klasa.

    15 od 100,00 kn

    Napomena: Ako klasa implementira sučelje, mora implementirati sve metode tog sučelja. Ako nije, moramo deklarirati klasu kao apstraktnu.

    Primjer:

    U sljedećem primjeru stvaramo sučelje CalcInterface s dvije apstraktne metode ( množenje() i dijeljenje() ). Ovdje klasa InterfaceExample implementira sučelje i dalje definira metode tog sučelja. Zatim se objekt klase koristi za pristup tim metodama.

    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. Niz:

    String predstavlja niz znakova, na primjer 'Javatpoint', 'Hello world', itd. String je klasa Jave.

    Jedan od načina stvaranja niza i pohranjivanja vrijednosti u njemu prikazan je u nastavku:

     String str = 'You're the best'; 

    Ovdje, varijabla tipa String str ima vrijednost 'Najbolji ste'. Kliknite ovdje da saznate više o String u Javi .

    Primjer:

    bajtova u string python

    U sljedećem primjeru stvaramo niz s vrijednošću. Ovdje koristimo jednu od metoda klase String, podniz() koji ispisuje navedeni indeksirani dio niza.

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

    Izlaz:

     Hello! This is 

    4. Niz:

    An niz je tip podataka koji može pohraniti više homogenih varijabli, tj. varijabli istog tipa u nizu. Pohranjuju se na indeksiran način počevši od indeksa 0. Varijable mogu biti primitivni ili neprimitivni tipovi podataka.

    Sljedeći primjer pokazuje kako deklarirati niz primitivnog tipa podataka int :

     int [ ] marks; 

    Sljedeći primjer pokazuje kako deklarirati niz neprimitivnog tipa podataka:

     Student [ ] students; 

    gdje, Student je naziv klase i [ ] stvara niz objekata učenicima .

    instanca od

    Primjer:

    U sljedećem primjeru stvaramo dva osnovna niza, u kojima je jedan inicijaliziran, a drugi deklariran (unos se čita od korisnika). Nadalje, ispisujemo taj niz koristeći for petlju.

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

    Razlika između primitivnih i neprimitivnih tipova podataka u Javi

    1. U Javi su primitivni tipovi podataka definirani sustavom, ali moramo stvoriti i definirati neprimitivne tipove podataka.
    2. U primitivnom tipu podataka, varijable mogu pohraniti samo jednu vrijednost u isto vrijeme. Međutim, u neprimitivnim tipovima podataka može se pohraniti ili više vrijednosti istog tipa ili različitog tipa ili oboje.
    3. Svi podaci za varijable primitivnog tipa pohranjeni su na stogu, dok za referentne tipove stog drži pokazivač na objekt na hrpi.
    4. Primitivni tipovi počinju malim slovom, dok neprimitivni tipovi počinju velikim slovom.
    5. Veličina primitivnog tipa ovisi o tipu podataka, dok neprimitivni tipovi imaju istu veličinu.