OOP- Obnavljanje Klasa i Funkcija
description
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