background image

 
 

Kamil Tkaczyk  

gr. 16 - Automatyka i Robotyka 

Sprawozdanie z laboratorium. Programowanie 

obiektowe- JAVA 21.10.14 

KLASA kula 

 

public class 

kula 

extends

 punkt { 

 

private

 

double

 

promien

;  

public

 

void

 setpromien(

double 

promien

){ 

 

if

 (

promien

<=0) 

 

this

.

promien

 = 1; 

 

else 

 

this

.

promien

 = 

promien

 

 

double

 getpromien(){ 

 

return

 

promien

 

 

kula (){ 

super();  

 

promien

=5; 


kula ( 

double

 

masa

double

 

promien

) { 

super(

masa

); 

setpromien(

promien

); 

public double

 moment() { 

 

double

 

j

=0.4*

promien

*

promien

* getmasa(); 

return

 

j

public

 String toString(){ 

return"Kula: "; 

 

 

 

background image

 
 

Klasa walec 

 
 

public class

 walec 

extends

 punkt { 

 

 

private double

 

promien

public void

 setpromien(

double

 

promien

){ 

 

if

 (

promien

<=0) 

this

.

promien

 = 1; 

else 

this

.

promien

 = 

promien

double

 getpromien(){ 

 

return

 

promien


walec(){ 

super(); 

promien

=5; 


walec(

double

 

masa

,

double

 

promien

) { 

super(

masa

); setpromien(promien); 

public double

 moment() { 

double

 j=0.5*

promien

*

promien

* getmasa(); 

return

 j; 

public 

String toString(){ 

return

 "Walec: "; 

 

background image

 
 

Klasa pret 

public class

 pret 

extends

 punkt { 

 

private double

 

l

 

private double

 

bp

;  

 

public void

 setl(

double

 

l

){ 

 

 

if

 (

l

<=0) 

 

 

 

this

.

l

 = 1; 

 

 

else 

 

 

 

this

.

l

 = 

l

;    

 

double

 getl(){ 

 

 

return

 

l

 

 

public void

 setbp(

double

 

bp

){ 

 

 

if

 (

bp

<=0) 

 

 

 

this

.

bp

 = 1; 

 

 

else 

 

 

 

this

.

bp

 = l;  

 

 

double

 getbp(){ 

 

 

return 

bp

 

 

 

 

pret (){ 

 

 

super(); 

 

 

l

=5; 

 

 

 

 

pret (

double

 

masa

double

 

l

double

 

bp

) { 

 

 

super(

masa

); 

 

 

setl(

l

); 

 

 

setbp(

bp

); 

 

 

public double

 moment() { 

double

 

j

=(1/12)*

l

*

l

* getmasa()+

bp

 

 

return

 

j

 

 

public

 String toString(){ 

 

return

 "Pret: "; 

 

 

 

background image

 
 

Klasa test

 

public class

 test { 

 

public static void

 main(String[] args) { 

System.

out

.println("Test:"); 

kula o1= new kula(3,6); 
System.

out

.println( o1+"O masie 3 kg i promieniu 6 m posiada 

moment"+o1.moment()); 
walec o2= new walec(3,6); 
System.

out

.println( o2+"O masie 3 kg i promieniu 6 m posiada 

moment"+o2.moment()); 
pret o3= new pret(3,6,2); 
System.

out

.println( o3+"O masie 3 kg i promieniu 6 m i momencie 

bezwladnosci przekroju 2 m^4 posiada moment "+o3.moment()); 

 

punkttab[]=newpunkt[8]; 
tab[0]=newpunkt(1); 
tab[1]=newpunkt(2); 
tab[2]=newkula(7,20); 
tab[3]=newkula(14,40); 
tab[4]=newwalec(7,20); 
tab[5]=newwalec(14,40); 
tab[6]=newpret(7,20,1); 
tab[7]=newpret(14,40,2); 

 

for

(

int

 i=0; i<8; i++) 

System.

out

.println(tab[i]+"o momencie bezwladnosci przekroju 1 

m^4 posiada moment "+ tab[i].moment()+ " oraz moment wzgledem 
osi odleglej o 5: "+ tab[i].momentst(5)); 

 

}

 

 

background image

 
 

Wynik działania programu testowego 

 

Test: 
Kula: O masie 3 kg i promieniu 6 m posiada moment 43.2 
Walec: O masie 3 kg i promieniu 6 m posiada moment 54.0 
Pret: O masie 3 kg i promieniu 6 m i momencie bezwladnosci przekroju 2 m^4 posiada moment 11.0  
 
Punkt materialany:  o momencie bezwladnosci przekroju 1 m^4 posiada moment 0.0 oraz moment 
wzgledem osi odleglej o 5: 25.0 
Punkt materialany:  o momencie bezwladnosci przekroju 1 m^4 posiada moment 0.0 oraz moment 
wzgledem osi odleglej o 5: 50.0 
Kula:  o momencie bezwladnosci przekroju 1 m^4 posiada moment 1120.0 oraz moment wzgledem 
osi odleglej o 5: 1295.0 
Kula:  o momencie bezwladnosci przekroju 1 m^4 posiada moment 8960.0 oraz moment wzgledem 
osi odleglej o 5: 9310.0 
Walec:  o momencie bezwladnosci przekroju 1 m^4 posiada moment 1400.0 oraz moment wzgledem 
osi odleglej o 5: 1575.0 
Walec: o momencie bezwladnosci przekroju 1 m^4 posiada moment 11200.0 oraz moment 
wzgledem osi odleglej o 5: 11550.0 
Pret: o momencie bezwladnosci przekroju 1 m^4 posiada moment 20.0 oraz moment wzgledem osi 
odleglej o 5: 195.0 
Pret: o momencie bezwladnosci przekroju 1 m^4 posiada moment 40.0 oraz moment wzgledem osi 
odleglej o 5: 390.0 
 

Odpowiedzi na pytania:

 

1.  Co zmienia zastąpienie pól prywatnych polami chronionymi w dziedziczeniu? 

Zmienia dostęp do pól. Pola chronione mogą byd użyte w innej klasie, natomiast prywatne 
pole nie są dostępne w dziedziczonych klasach. 

2.  W jaki sposób i kiedy są wywołuje się konstruktorysuperklasy? 

Konstruktory superklasy wywołujemy gdy chcemy odwoład się do zdeklarowanych  
prywatnych pól. Służy ona do wywoływania konstruktorów klasy nadrzędnej (tej, z której 
dziedziczymy) o podanych parametrach, lub w przypadku metod – odpowiedników o takiej 
samej nazwie i podanych parametrach. 

3.  W jaki sposób uzyskuje się dostęp do pól i metod superklasy? 

Na początku danej klasy, musimy zaznaczyd, że dana klasa jest dziedziczona. 
Wtedy możemy wykorzystywad przeciążanie metod. Przeciążanie metod polega na 
ponownym użyciu danych zmiennych ale innego typu(np. w superklasie mieliśmy 
zdefiniowany int r=5. Teraz możemy zdefiniowad float r=0.5. Przeciążanie możemy 
wykorzystywad również w jednej klasie). Inną metodą jest odwołanie się wprost do pól i 
metod (działa to tylko gdy nie są one prywatne).Ostatnią sposobem jest sposób opisany 
powyżej w pkt. III. 
 

4.  W jakim celu stosuje się przeciążenie metod? 

Przeciążaniem metod pozwala na tworzenie metod o takich samych nazwach, ale różnych 
parametrach. Analogicznie nieprawidłowe jest utworzenie w jednej klasie dwóch metod o 
identycznej nazwie i przyjmującej takie same parametry, a także metody o takiej samej 
nazwie i parametrach, ale różniące się tylko zwracanym typem.