Pagini recente » Cod sursa (job #2236100) | Cod sursa (job #1543265) | Cod sursa (job #3212714) | Cod sursa (job #267070) | Cod sursa (job #5958)
Cod sursa(job #5958)
/**
* Clasa Persoana descrie datele si comportamentul unei persoane
*/
public class Persoana {
/* Atributele clasei */
private String nume; // numele de familie
private String prenume; // prenumele persoanei
private int varsta; // varsta in ani impliniti
private double inaltimea; // inaltimea persoanei in cm
private char sex; // sexul persoanei. Valori posibile 'F' sau 'M'
/* Metodele clasei */
/** Constructor al clasei Persoana - cu toate datele
* @param numePers numele persoanei
* @param prenumePers prenumele persoanei
* @param varstaPers varsta persoanei
* @param inaltimaPers inaltimea persoanei
* @param sexPers sexul persoanei
*/
public Persoana( String numePers, String prenumePers,
int varstaPers, double inaltimeaPers, char sexPers) {
nume = numePers;
prenume = prenumePers;
varsta = varstaPers;
inaltimea = inaltimeaPers;
sex = Character.toUpperCase(sexPers);
if (sex!='F' && sex!='M')
sex = 'F';
}
/** Constructor al clasei Persoana - doar numele
* @param numePers numele persoanei
* @param prenumePers prenumele persoanei
*/
public Persoana( String numePers, String prenumePers ) {
nume = numePers;
prenume = prenumePers;
varsta = 0;
inaltimea = 0;
sex = 'F';
}
/** Metoda getNume - permite aflarea numelui
* @return numele si prenumele persoanei
*/
public String getNume() {
return nume+" "+prenume;
}
/** Metoda getVarsta - permite aflarea varstei
* @return varsta persoanei in ani impliniti
*/
public int getVarsta() {
return varsta;
}
/** Metoda getInaltimea - permite aflarea inaltimii
* @return inaltimea persoanei in cm
*/
public double getInaltimea() {
return inaltimea;
}
/** Metoda getSex - permite aflarea sexului
* @return sexul persoanei sub forma de sir de caractere
*/
public String getSex() {
String s;
switch (sex) {
case 'F': s = "feminin"; break;
case 'M': s = "masculin"; break;
default: s = "neprecizat";
System.out.println("Atributul sex are o valoare eronata!"); break;
}
return s;
}
/** Metoda setNume - permite schimbarea numelui dupa casatorie
* se aplica doar pentru sex='F'
* @param numeNou numele dupa schimbare
*/
public void setNume(String numeNou) {
if (sex=='F')
nume = numeNou;
else
System.out.println("Nu se permite schimbarea numelui unei persoane de sex masculin!");
}
/** Metoda setVarsta - permite schimbarea varstei
* @param varstaNoua varsta noua
*/
public void setVarsta(int varstaNoua) {
if (varstaNoua>=0 && varstaNoua<150)
varsta = varstaNoua;
else
System.out.println("Varsta gresita!");
}
/** Metoda setInaltimea - permite schimbarea inaltimii persoanei
* @param inaltimeNoua inaltimea noua
*/
public void setInaltimea(double inaltimeaNoua) {
if (inaltimeaNoua>=10.0 && inaltimeaNoua<251.0)
inaltimea = inaltimeaNoua;
else
System.out.println("Inaltimea gresita!");
}
/** Metoda afiseazaInformatii - afiseaza pe consola informatiile despre persoana
*/
public void afiseazaInformatii(String p) {
System.out.println("- Date despre persoana - "+p);
System.out.println("Numele: " + getNume());
System.out.println("Varsta: " + varsta);
System.out.println("Inaltimea: " + inaltimea);
System.out.println("Sexul: " + getSex());
}
/* Metoda main */
public static void main(String args[]) {
Persoana p1, p2;
p1 = new Persoana( "Ionescu", "Mihai", 23, 1.74, 'M');
p1.afiseazaInformatii("p1");
p2 = p1;
p2.afiseazaInformatii("p2");
p1.setVarsta(p1.getVarsta()+1); // modific p1
p2.afiseazaInformatii("p2");
p2 = new Persoana( "Georgescu", "Mihaela");
p2.afiseazaInformatii("p2");
}
}