logo

Tipuri de date non-primitive în Java

Tipurile de date definesc tipul de date care sunt stocate în variabilă. Tipul specifică tipul de date (diferite dimensiuni și valori).

Limbajul de programare Java are două tipuri de tipuri de date

  1. Tipuri de date non-primitive

    Spre deosebire de tipurile de date primitive, acestea nu sunt predefinite. Acestea sunt tipuri de date definite de utilizator create de programatori. Aceste tipuri de date sunt folosite pentru a stoca mai multe valori.

    js onload

    De exemplu, luați în considerare un matrice care stochează un grup de valori. Clasa este, de asemenea, un tip primitiv care stochează diferite metode și variabile. Prin urmare, acestea sunt numite și ca tipuri de date avansate în Java.

    Ori de câte ori este definit un tip de date non-primitive, se referă la o locație de memorie în care datele sunt stocate în memoria heap, adică se referă la locația de memorie în care este plasat un obiect. Prin urmare, este numită și o variabilă de tip de date non-primitive tipul de date referit sau pur și simplu variabilă de referință la obiect .

    O variabilă de referință a obiectului locuiește în memoria stivei, iar obiectul către care indică locuiește întotdeauna în memoria heap. Stiva deține un indicator către obiectul din heap.

    În programarea Java, toate tipurile de date non-primitive sunt pur și simplu numite obiecte care sunt create prin instanțierea unei clase.

    Puncte cheie:

    1. Valoarea implicită a oricărei variabile de referință este nulă.
    2. Ori de câte ori transmitem un tip de date non-primitiv unei metode, transmitem adresa acelui obiect în care sunt stocate datele.

    Tipuri de tipuri de date non-primitive

    Există cinci tipuri de tipuri de date non-primitive în Java. Acestea sunt după cum urmează:

    1. Clasă
    2. Obiect
    3. Şir
    4. Matrice
    5. Interfață

    1. Clasa și obiecte:

    A clasă în Java este un tip de date definit de utilizator, adică este creat de utilizator. Acesta acționează ca un șablon pentru date, care constă din variabile și metode membre.

    Un obiect este variabila clasei, care poate accesa elementele clasei, adică metode și variabile.

    Exemplu:

    programe python

    În exemplul următor, creăm o clasă care conține variabilele și metodele ( adauga() si sub() ). Aici, accesăm metodele folosind obiectul clasei 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(); } } 

    Ieșire:

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

    2. Interfață:

    Un interfata este similar cu o clasă, însă singura diferență este că metodele sale sunt abstracte în mod implicit, adică nu au corp. O interfață are doar variabilele finale și declarațiile de metodă. Se mai numește și o clasă complet abstractă.

    textul îngroșat în css

    Notă: Dacă clasa implementează o interfață, trebuie să implementeze toate metodele acelei interfețe. Dacă nu, trebuie să declarăm clasa ca abstractă.

    Exemplu:

    În exemplul următor, creăm interfața CalcInterface cu două metode abstracte ( înmulțiți() și împărțiți() ). Aici, clasa InterfaceExample implementează interfața și definește în continuare metodele acelei interfețe. Apoi, obiectul clasei este folosit pentru a accesa acele metode.

    InterfațăExample.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. șir:

    Un șir reprezintă o secvență de caractere, de exemplu „Javatpoint”, „Hello world”, etc. String este clasa Java.

    Una dintre modalitățile de a crea un șir și de a stoca o valoare în el este prezentată mai jos:

     String str = 'You're the best'; 

    Aici, variabilă de tip String str are valoarea „Ești cel mai bun”. Faceți clic aici pentru a înțelege mai multe despre Șir în Java .

    Exemplu:

    log numpy

    În exemplul următor, creăm un șir cu o valoare. Aici, folosim una dintre metodele clasei String, substring() care tipărește partea indexată specificată a șirului.

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

    Ieșire:

     Hello! This is 

    4. Matrice:

    Un matrice este un tip de date care poate stoca mai multe variabile omogene, adică variabile de același tip într-o secvență. Ele sunt stocate într-o manieră indexată începând cu indicele 0. Variabilele pot fi de tip de date primitive sau neprimitive.

    Următorul exemplu arată cum se declară o matrice de tip de date primitive int :

     int [ ] marks; 

    Următorul exemplu arată cum se declară o matrice de tip de date non-primitive:

     Student [ ] students; 

    Unde, Student este numele clasei și [ ] creează o matrice de obiecte elevi .

    coada de prioritate java

    Exemplu:

    În exemplul următor, creăm două matrice de bază, în care unul este inițializat și celălalt este declarat (intrarea este citită de la utilizator). În plus, tipărim acele matrice folosind bucla 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;>

    Diferența dintre tipurile de date primitive și non-primitive în Java

    1. În Java, tipurile de date primitive sunt definite de sistem, totuși trebuie să creăm și să definim tipurile de date non-primitive.
    2. În tipul de date primitiv, variabilele pot stoca o singură valoare la un moment dat. Cu toate acestea, în tipurile de date non-primitive, pot fi stocate fie valori multiple de același tip, fie de tip diferit, fie ambele.
    3. Toate datele pentru variabilele de tip primitiv sunt stocate pe stivă, în timp ce, pentru tipurile de referință, stiva deține un pointer către obiectul din heap.
    4. Un tip primitiv începe cu o literă mică, în timp ce tipurile neprimitive încep cu o literă mare.
    5. Mărimea unui tip primitiv depinde de tipul de date, în timp ce tipurile neprimitive au toate aceeași dimensiune.