Datové typy definují typ dat, která jsou uložena v proměnné. Typ určuje druh dat (různé velikosti a hodnoty).
Programovací jazyk Java má dva typy datových typů
- Neprimitivní datové typy
Na rozdíl od primitivních datových typů nejsou tyto předdefinované. Jedná se o uživatelsky definované datové typy vytvořené programátory. Tyto datové typy se používají k ukládání více hodnot.
velikost pythonu
Kdykoli je definován neprimitivní datový typ, odkazuje na paměťové místo, kde jsou data uložena v paměti haldy, tj. odkazuje na paměťové místo, kde je umístěn objekt. Proto se také nazývá proměnná typu neprimitivních dat odkazovaný datový typ nebo jednoduše objektová referenční proměnná .
Referenční proměnná objektu žije v paměti zásobníku a objekt, na který ukazuje, vždy žije v paměti haldy. Zásobník obsahuje ukazatel na objekt na hromadě.
V programování Java se všechny neprimitivní datové typy jednoduše nazývají objekty, které jsou vytvořeny vytvořením instance třídy.
Klíčové body:
- Výchozí hodnota jakékoli referenční proměnné je null.
- Kdykoli předáváme metodě neprimitivní datový typ, předáváme adresu tohoto objektu, kde jsou data uložena.
Typy neprimitivních datových typů
V Javě existuje pět typů neprimitivních datových typů. Jsou následující:
- Třída
- Objekt
- Tětiva
- Pole
- Rozhraní
1. Třída a předměty:
A třída v Javě je uživatelsky definovaný datový typ, tj. je vytvořen uživatelem. Funguje jako šablona pro data, která se skládají z členských proměnných a metod.
An objekt je proměnná třídy, která má přístup k prvkům třídy, tj. metodám a proměnným.
Příklad:
velikost lžičky
V následujícím příkladu vytváříme třídu obsahující proměnné a metody ( add() a sub() ). Zde přistupujeme k metodám pomocí objektu třídy 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(); } }
Výstup:
Addition of numbers is: 30 Subtraction of numbers is: 10
2. Rozhraní:
An rozhraní je podobná třídě, ale jediný rozdíl je v tom, že její metody jsou ve výchozím nastavení abstraktní, tj. nemají tělo. Rozhraní má pouze konečné proměnné a deklarace metod. Nazývá se také plně abstraktní třída.
np.unikátní
Poznámka: Pokud třída implementuje rozhraní, musí implementovat všechny metody tohoto rozhraní. Pokud ne, musíme třídu deklarovat jako abstraktní.
Příklad:
V následujícím příkladu vytváříme rozhraní CalcInterface dvěma abstraktními metodami ( multiply() a division() ). Zde třída InterfaceExample implementuje rozhraní a dále definuje metody tohoto rozhraní. Potom je objekt třídy použit pro přístup k těmto metodám.
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. Řetězec:
Řetězec představuje posloupnost znaků, například 'Javatpoint', 'Hello world' atd. String je třída Javy.
Jeden ze způsobů, jak vytvořit řetězec a uložit do něj hodnotu, je uveden níže:
String str = 'You're the best';
Zde proměnná typu String str má hodnotu „Jsi nejlepší“. Kliknutím sem získáte další informace o Řetězec v Javě .
Příklad:
java fazole
V následujícím příkladu vytváříme řetězec s hodnotou. Zde používáme jednu z metod třídy String, podřetězec() který vytiskne zadanou indexovanou část řetězce.
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); } }
Výstup:
Hello! This is
4. Pole:
An pole je datový typ, který může ukládat více homogenních proměnných, tj. proměnných stejného typu v sekvenci. Jsou uloženy indexovaným způsobem počínaje indexem 0. Proměnné mohou být buď primitivní nebo neprimitivní datové typy.
Následující příklad ukazuje, jak deklarovat pole primitivního datového typu int :
int [ ] marks;
Následující příklad ukazuje, jak deklarovat pole neprimitivního datového typu:
Student [ ] students;
kde, Student je název třídy a [ ] vytváří pole objektů studentů .
seznam do pole java
Příklad:
V následujícím příkladu vytváříme dvě základní pole, ve kterých je jedno inicializováno a druhé deklarováno (vstup je čten od uživatele). Dále tato pole tiskneme pomocí cyklu 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('Enter the numbers (size = 5) :'); 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;>
Rozdíl mezi primitivními a neprimitivními datovými typy v Javě
- V Javě jsou primitivní datové typy systémově definované, my však musíme vytvořit a definovat neprimitivní datové typy.
- V primitivním datovém typu mohou proměnné uchovávat vždy pouze jednu hodnotu. V neprimitivních datových typech však lze uložit buď více hodnot stejného typu nebo jiného typu, nebo obojí.
- Všechna data pro proměnné primitivního typu jsou uložena v zásobníku, zatímco u referenčních typů zásobník obsahuje ukazatel na objekt na hromadě.
- Primitivní typ začíná malým písmenem, zatímco neprimitivní typy začínají velkým písmenem.
- Velikost primitivního typu závisí na datovém typu, zatímco neprimitivní typy mají všechny stejnou velikost.
5;>