Documente Academic
Documente Profesional
Documente Cultură
2021
String s1="Ionescu";
String s2="Ion";
//nume Complet: Ionescu Ion
String numeComplet=s1+" "+s2;
System.out.println(numeComplet);
Operatorul +: daca unul dintre operanzi este String iar celalat nu este, il va
converti de asemenea la String, si va face concatenarea intre doua Stringuri. Ex:
Ex: 12 ---> "12"
Deci, putem folosi operatorul + pentru a converti numere (int, double ) de la tipul
numeric la
tipul String.
int nr=123;
String s_nr=""+nr;
double x=3.123;
String s_x=""+x;
double x=Double.parseDouble("12.45");//x=12.45
Specificatori de acces
Principiul incapsularii in POO:
datele (var. de instanta, proprietati, atribute) si metodele pot fi accesate
din afara clasei controlat de specificatori de acces.
Acestia sunt:
1. private
Membrii private nu pot fi accesati den afara clasei (ei pot fi accesati doar in
clasa respectiva)
Ex:
private int raza;
2. public
public int raza;
Membrii public pot fi accesati si din afara clasei (ei pot fi accesati si din clasa
respectiva, dar si din afara ei)
Nu se acceseaza insa direct !
Cum se acceseaza din afara clasei:
Sunt doua cazuri:
A.
Daca membrul clasei (var. de instanta sau metoda ) este si static atunci el se
acceseaza folosind sintaxa:
numeClasa.numeMembru
B.
Daca membrul clasei nu este static, dar este public, accesul se face in doi pasi:
- creem (instantiem) obiect din clasa respectiva , cu operatorul new
- folosim sintaxa: obiect.numeMembru
Ex: vreau sa apelez metoda nextInt() din clasa Scanner: (public int nextInt() )
Scanner sc=new Scanner(System.in);
int nr=sc.nextInt();
Alt exemplu:
Citim un numar intreg. Sa afisam daca este patrat perfect sau nu.
Vom folosi pe langa main() si o alta metoda ce verifica daca un nr este patrat
perfect.
Obs:
Tipurile primitive de date in Java: int, float , double , char (ca si in C ).
In plus este si tipul de date: boolean ce are doua valori: true si false .
Obs.
Pentru a extrage radicalul dintr-un numar , se foloseste metoda statica sqrt() , ce
face
parte din clasa Math.
Ex. de apel: radical(2) = ?
double rezultat=Math.sqrt(2);
import java.util.*;
class PatratPerfect{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
System.out.print("nr=");
int nr=sc.nextInt();
boolean rezultat=estePatratPerfect(nr);
if(rezultat==true)System.out.println("este");
else System.out.println("nu este");
}
private boolean estePatratPerfect(int x){
int radical=(int)Math.sqrt(x);//in Java, obligatoriu operatorul de fortare de
tip
// cand convertim nr real la integer.
if(radical*radical==x)return true;
else return false;
}
}
class TestPunct{
public static void main(String args[]){
//Vrem sa initializam (instantiem) un punct din clasa Punct .cu coordonatele
(3,4) si sa-i calculam
// distanta fata de origine
// x=3; y=4; EROARE DE SINTAXA
//Creem obiect Punct:
Punct p=new Punct();
p.x=3;
p.y=4;
double dist=Math.sqrt(x*x+y*y);
System.out.println(dist);
}
}
class Patrat{
private int a;
// pt a seta din afara clasei var. de instanta:
public void set(int a){
this.a=a; //this: o referina pt. obiectul curent
}
//pt a afla cat este a , din afara clasei:
public int get(){
return a;
}
public int arie(){
return a*a;
}
class TestPatrat{
public static void main(String args[]){
//creem un patrat cu latura 3.
// Sa-i afisam aria.
Patrat p=new Patrat();
// p.a=3; GRESIT ! Pt ca a este private ! Nu pot s-o accesez din afara !
p.set(3);
double rez=p.arie(); System.out.println("aria="+rez);
//apel afisare():
p.afisare();
}
}
class Patrat{
private int a;
public Patrat(int a){
this.a=a;
}
// pt a seta din afara clasei var. de instanta:
public void set(int a){
this.a=a; //this: o referina pt. obiectul curent
}
//pt a afla cat este a , din afara clasei:
public int get(){
return a;
}
public int arie(){
return a*a;
}
//modific latura:
p.set(5);
//apel afisare():
p.afisare();
}