logo

Ikke-primitive datatyper i Java

Datatyper definerer typen data som er lagret i variabelen. Typen spesifiserer typen data (ulike størrelser og verdier).

Java programmeringsspråk har to typer datatyper

  1. Ikke-primitive datatyper

    I motsetning til primitive datatyper er disse ikke forhåndsdefinerte. Dette er brukerdefinerte datatyper laget av programmerere. Disse datatypene brukes til å lagre flere verdier.

    postbud

    Tenk for eksempel på en array som lagrer en gruppe verdier. Klasse er også en primitiv type som lagrer ulike metoder og variabler. Derfor kalles disse også som avanserte datatyper i Java.

    Når en ikke-primitiv datatype er definert, refererer den til et minnested hvor dataene er lagret i heap-minne, dvs. det refererer til minnestedet der et objekt er plassert. Derfor kalles også en ikke-primitiv datatypevariabel referert datatype eller ganske enkelt objektreferansevariabel .

    En objektreferansevariabel lever på stabelminnet, og objektet den peker til lever alltid i haugminnet. Stabelen holder en peker til objektet på haugen.

    I Java-programmering kalles alle ikke-primitive datatyper ganske enkelt objekter som lages ved å instansiere en klasse.

    Viktige punkter:

    1. Standardverdien for enhver referansevariabel er null.
    2. Hver gang vi sender en ikke-primitiv datatype til en metode, sender vi adressen til objektet der dataene er lagret.

    Typer av ikke-primitive datatyper

    Det er fem typer ikke-primitive datatyper i Java. De er som følger:

    1. Klasse
    2. Gjenstand
    3. String
    4. Array
    5. Grensesnitt

    1. Klasse og objekter:

    EN klasse i Java er en brukerdefinert datatype, dvs. den er opprettet av brukeren. Den fungerer som en mal for dataene som består av medlemsvariabler og metoder.

    An gjenstand er variabelen til klassen, som kan få tilgang til elementene i klassen, dvs. metoder og variabler.

    Eksempel:

    forskjellen mellom $ og $$

    I følgende eksempel lager vi en klasse som inneholder variablene og metodene ( add() og sub() ). Her får vi tilgang til metodene ved å bruke objektet til klassen 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(); } } 

    Produksjon:

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

    2. Grensesnitt:

    An grensesnitt ligner på en klasse, men den eneste forskjellen er at metodene er abstrakte som standard, det vil si at de ikke har kropp. Et grensesnitt har bare de endelige variablene og metodeerklæringene. Det kalles også en fullstendig abstrakt klasse.

    factorial i java

    Merk: Hvis klassen implementerer et grensesnitt, må den implementere alle metodene for det grensesnittet. Hvis ikke, må vi erklære klassen som abstrakt.

    Eksempel:

    I det følgende eksempelet lager vi grensesnittet CalcInterface med to abstrakte metoder ( multipliser() og divider() ). Her implementerer klassen InterfaceExample grensesnittet og definerer metodene for det grensesnittet videre. Deretter brukes klassens objekt for å få tilgang til disse metodene.

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

    En streng representerer en sekvens av tegn, for eksempel 'Javatpoint', 'Hello world', osv. String er Java-klassen.

    En av måtene å lage en streng og lagre en verdi i den er vist nedenfor:

     String str = 'You're the best'; 

    Her, strengtypevariabel str har verdien «Du er best». Klikk her for å forstå mer om String i Java .

    Eksempel:

    konvertere int til dobbel java

    I det følgende eksempelet lager vi en streng med en verdi. Her bruker vi en av String-klassemetodene, delstreng() som skriver ut den angitte indekserte delen av strengen.

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

    Produksjon:

     Hello! This is 

    4. Matrise:

    An array er en datatype som kan lagre flere homogene variabler, dvs. variabler av samme type i en sekvens. De lagres på en indeksert måte som starter med indeks 0. Variablene kan være enten primitive eller ikke-primitive datatyper.

    javascript streng erstatte

    Følgende eksempel viser hvordan du deklarerer array av primitiv datatype int :

     int [ ] marks; 

    Følgende eksempel viser hvordan du deklarerer array av ikke-primitiv datatype:

     Student [ ] students; 

    hvor, Student er klassenavnet og [ ] lager en rekke objekter studenter .

    Eksempel:

    I det følgende eksemplet lager vi to grunnleggende arrayer, der den ene initialiseres og den andre er deklarert (inndata leses fra brukeren). Videre skriver vi ut disse matrisene ved å bruke for-løkken.

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

    Forskjellen mellom primitive og ikke-primitive datatyper i Java

    1. I Java er de primitive datatypene systemdefinerte, men vi må opprette og definere de ikke-primitive datatypene.
    2. I primitiv datatype kan variabler bare lagre én verdi om gangen. Men i ikke-primitive datatyper kan enten flere verdier av samme type eller annen type eller begge lagres.
    3. Alle data for primitive typevariabler er lagret på stabelen, mens for referansetyper holder stabelen en peker til objektet på haugen.
    4. En primitiv type starter med en liten bokstav, mens ikke-primitive typer starter med en stor bokstav.
    5. Størrelsen på en primitiv type avhenger av datatypen, mens ikke-primitive typer har alle samme størrelse.