Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Tipuri clasa si tipuri referinta

java



+ Font mai mare | - Font mai mic



Tipuri clasa si tipuri referinta

O clasa este o structura care poate contine atat date cat si functii ca membri ai structurii. In Java nu mai exista cuvantul cheie struct , iar definirea unei clase foloseste cuvantul cheie class. Se pot defini clase ce contin numai date publice, echivalente structurilor din limbajele C si C++. Exemplu:



public class Point

// creare si utilizare obiect din clasa 'Point'

Point a = new Point(); // constructor implicit, generat automat

a.x=2.; a.y =-3; // un punct in cadranul 4

In practica se prefera ca variabilele clasei 'Point' sa fie de tip private (inaccesibile unor metode din alte clase) si ca initializarea lor sa se faca in constructorul clasei:

public class Point

}

Clasele (neabstracte) Java sunt de doua categorii:

- Clase instantiabile, care pot genera obiecte, care contin date si metode (ne-statice).

- Clase neinstantiabile , care contin doar metode statice (si eventual constante).

O metoda statica corespunde unei functii din limbajul C, cu diferenta ca numele functiei trebuie precedat de numele clasei din care face parte. Exemple:

double xabs = Math.abs(x); // valoarea absoluta a lui x

double y = Math.sqrt(x); // radical din x

int n = Integer.parseInt (str); // conversie sir 'str' la tipul 'int'

Definirea unei clase instantiabile T creeaza automat un nou tip de date T. Un obiect de tip T este o instantiere a clasei T si este referit printr-o variabila de tip T. Clasa Java cu numele String defineste un tip de date String, ce poate fi folosit in declararea de variabile, vectori sau functii de tip String. Exemple:

String msg = 'Eroare'; // o variabila sir

String tcuv[] =; // un vector de siruri

Un obiect Java corespunde unei variabile structura din C, iar o variabila de un tip clasa corespunde unei variabile pointer la o structura din C.

In Java toate obiectele sunt alocate dinamic, folosind operatorul new, iar variabila de tip clasa trebuie initializata cu rezultatul operatorului new. Exemplu:

String mesaj; // String este o clasa predefinita

mesaj = new String (" Eroare ! ") ; // alocare memorie pentru sir

Pentru constantele de tip String se creeaza obiecte automat, de catre compilator, ale caror adrese pot fi folosite in atribuiri sau initializari la declarare. Exemple:

System.out.println ('Eroare !');

String msg; msg = ' Corect';

Clasa String contine mai multe metode (functii) publice, utilizabile in alte clase. De exemplu, metoda length, fara argumente, are ca rezultat (intreg) lungimea sirului continut in obiectul de tip String pentru care se apeleaza metoda. Exemplu:

int len = mesaj.length();

Acest exemplu arata ca membrii unei clase se folosesc la fel cu membrii unei structuri, indiferent ca ei sunt variabile (campuri) sau functii (metode).

Un alt exemplu este o constructie mult folosita in Java pentru afisarea la consola (in mod text) a unor siruri de caractere:

System.out.println (mesaj);

System.out.println ( " Eroare ");

In aceste exemple System este numele unei clase predefinite, out este numele unei variabile publice (din clasa System) de un tip clasa (PrintStream), iar println este numele unei metode din clasa PrintStream.

Numele unei metode poate fi precedat de numele unei variabile clasa sau de numele unei clase, dar intotdeauna caracterul separator este un punct. Este uzual in Java sa avem denumiri de variabile sau de metode care contin cateva puncte de separare a numelor folosite in precizarea contextului. Exemple:

if ( Character.isDigit ( str.charAt(0)) ) . . . // daca primul caracter e o cifra

System.out.println (obj + obj.getClass().getName());

int maxdigits= (Integer.MAX_VALUE+'').length();

O referinta la un tip clasa T este de fapt un pointer la tipul T dar care se foloseste ca si cum ar fi o variabila de tipul T. Indirectarea prin variabila referinta este realizata automat de compilator, fara a folosi un operator special, ca in C .

Tipul referinta a fost introdus in C++ in principal pentru a declara parametri modificabili in functii, cu simplificarea scrierii si utilizarii acestor functii.

In Java nu trebuie folosita o sintaxa speciala pentru declararea de variabile sau de parametri referinta, deoarece toate variabilele de un tip clasa sunt automat considerate ca variabile referinta. Nu se pot defini referinte la tipuri primitive.

O variabila referinta Java nu este un obiect, dar contine adresa unui obiect alocat dinamic. O variabila referinta apare de obicei in stanga unei atribuiri cu operatorul new sau cu constanta null in partea dreapta. Exemplu:

Vector a = new Vector( ); // a = variabila referinta la un obiect de tip Vector

Atunci cand se apeleaza o metoda pentru un obiect, se foloseste numele variabilei referinta ca si cum acest nume ar reprezenta chiar obiectul respectiv si nu adresa sa. Exemplu:

System.out.println ( a.size() ); // afisare dimensiune vector a

Operatorul de concatenare '+', folosit intre obiecte de tip String, poate crea impresia ca variabilele de tip String contin chiar sirurile care se concateneaza si nu adresele lor. Exemple:

String s1='java.', s2='util.', s3='Rand';

System.out.println (s1+s2+s3); // scrie java.util.Rand

Operatorul de concatenare "+" este singurul operator "supradefinit" in Java si el poate fi utilizat intre operanzi de tip String sau cu un operand de tip String si un alt operand de orice tip primitiv sau de un tip clasa (pentru care exista o functie de conversie la tipul String ). Exemplu:

int a=3, b=2 ;

System.out.println ( a + "+" + b + "=" + (a+b)); // scrie: 3 + 2 = 5

Efectul operatorului '+' depinde de tipul operanzilor: daca unul din operanzi este de tip String atunci este interpretat ca operator de concatenare iar rezultatul este tot String.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1405
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved