OOP- Obnavljanje Klasa i Funkcija

6
VEŽBE 01 – OBNAVLJANJE KLASA I FUNKCIJA Prvi primer, obnova struktura (klasa), i funkcija koje vrednosti i preko referenci u Java programskom jeziku. ZADATAK 1 : Definisati klasu Circle opisanu preko atributa ,! po tipu int koji predstavljaju centar kruga. " glavnom delu programa kreirati: globalnu funkciju increment(int #): uve$ava prosle%enu promenlj globalnu funkciju moveCircle(Circle c, int delta, int delta!): za date vrednosti '' klasa Circle package rs.csl publc cla!! Circle publc "# #, * + '' na sledecem casu modifikovati ovu klasu da ima set i get metode '' i u skladu sa tim prepraviti i glavni deo zadatka '' main klasa Prvi package rs.csl $p%&# java.util. canner publc cla!! Prvi publc !#a#c '%( main( tring- args) '' definicija scanner/a za unos podataka sa standardnog ulaza canner scanf 0 "e) canner( *stem. in ) *stem. out .println(1"nesi neki broj21) "# pom 0 scanf.ne#t3nt() *stem. out .println(1"net je broj:14pom) "# # 0 5 '' demonstracija prenosa parametara po vrednosti, '' prosti tipovi se prenose po vrednosti *stem. out .println(16n Pre metode increment #0 14#) increment (#) *stem. out .println(16n Posle metode increment #0 14#) 1

description

OOP

Transcript of OOP- Obnavljanje Klasa i Funkcija

VEBE 01 OBNAVLJANJE KLASA I FUNKCIJA Prvi primer, obnova struktura (klasa), i funkcija koje prenose parametre preko vrednosti i preko referenci u Java programskom jeziku.

ZADATAK 1: Definisati klasu Circle opisanu preko atributa X,Y po tipu int koji predstavljaju centar kruga.

U glavnom delu programa kreirati:

globalnu funkciju increment(int x): uveava prosleenu promenljivu za 1

globalnu funkciju moveCircle(Circle c, int deltaX, int deltaY): pomera centar kruga za date vrednosti

// klasa Circle

package rs.csl;public class Circle {

public int x, y;}// na sledecem casu modifikovati ovu klasu da ima set i get metode // i u skladu sa tim prepraviti i glavni deo zadatka

// main klasa Prvi

package rs.csl;import java.util.Scanner;public class Prvi {

public static void main(String[] args) {

// definicija scanner-a za unos podataka sa standardnog ulaza

Scanner scanf = new Scanner(System.in);

System.out.println("Unesi neki broj!");

int pom = scanf.nextInt();

System.out.println("Unet je broj:"+pom);

int x = 3;

// demonstracija prenosa parametara po vrednosti,

// prosti tipovi se prenose po vrednosti

System.out.println("\n Pre metode increment x= "+x);

increment(x);

System.out.println("\n Posle metode increment x= "+x);

Circle myCircle = new Circle();

myCircle.x = 10;

myCircle.y = 10;

// ispis myCircle.x i myCircle.y pre poziva metode

System.out.println("\nPre poziva metode moveCircle, x= " + myCircle.x+" y = "+myCircle.y);

// poziv metode

moveCircle(myCircle, 23, 56);

// ispis myCircle.x i myCircle.y radi provere da li je doslo do promene

System.out.println("Posle poziva metode moveCircle, x= " + myCircle.x+" y = "+myCircle.y);

}

// prenos parametara po vrednosti, prosti tipovi

public static void increment(int x){

System.out.println("\nU metodi increment pre uvecanja x= "+x);

x++;

System.out.println("U metodi increment posle uvecanja x= "+x);

}

// Prenos parametara kod slozenih tipova

public static void moveCircle(Circle circle, int deltaX, int deltaY) {

// pomeranje centra kruga x+deltaX, y+deltaY

circle.x += deltaX;

circle.y += deltaY;

}}

ZAKLJUAK:

prosti tipovi podataka se u jeziku Java prenose preko vrednosti

sloeni tipovi podataka se u jeziku Java prenose preko referenci

ZADATAK 2: Definisati klasu Student opisanu preko imena, prezimena i prosene ocene. U glavnom delu programa demonstrirati sledee:

Kreirati instancu klase Student

Ispisati vrednosti svih atributa novo kreirane instance klase i prodiskutovati

Uneti broj Studenata sa kojim se eli raditi

Dinamiki alocirati niz Studenata

Komandom lenght ispisati dimenziju novo kreiranog niza

Definisati globalne funkcije:

void unos(Student[] niz) : za popunjavanje niza Studenata

void ispis(Student[] niz) : za ispis podataka o svim studentima niza

void sort(Student[] niz) : za sortiranje niza Studenata

Student[] unosReturn() : za popunjavanje niza studenata koji se alocira unutar funkcije i vraa kao povratni tip funkcije

Demonstrirati pozive ovih funkcija u glavnom delu programa

REENJE:

// STUDENT KLASA

public class Student {

public String ime, prezime;

float pro;}

// GLAVNA KLASAimport java.util.Scanner;public class Glavna {

// definicija scanner-a za unos podataka sa standardnog ulaza

public static Scanner scanf = new Scanner(System.in);

public static void main(String[] args) {

Student s = new Student();

// podrazumevane vrednosti u javi po kreiranju instance klase

System.out.println("IME = "+ s.ime);

System.out.println("PREZIME = "+ s.prezime);

System.out.println("PROSECNA OCENA = "+ s.pro);

// rezultati ispisa

//

IME = null

//

PREZIME = null

//

PROSECNA OCENA = 0.0

System.out.println("\nUneti broj studenata:");

int n = scanf.nextInt();

// dinamicka alokacija niza od n studenata

Student[] a = new Student[n];

// uneto 5

System.out.println("DIMENZIJA NIZA = "+a.length);

// rezultat ispisa

// DIMENZIJA NIZA = 5

unos(a);

ispis(a);

sort(a);

ispis(a);

a = unosReturn(n);

ispis(a);

sort(a);

ispis(a);

} public static void unos(Student[] niz){

System.out.println("\nUneti podatke o studentima:");

// klasicna iteracija kroz niz Studenata

for (int i = 0; i a[j].pro){

Student pom = a[i];

a[i] = a[j];

a[j] = pom;

}

} // FUNKCIJA KOJA VRACA NIZ STUDENATA[]

public static Student[] unosReturn(int n){

System.out.println("\nUneti podatke o studentima:");

Student[] niz = new Student[n];

// klasicna iteracija kroz niz Studenata

for (int i = 0; i