Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
2
20231104-KursPodstawowyALX
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
20231104-KursPodstawowyALX
Commits
11710822
Commit
11710822
authored
Dec 03, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
public i private
parent
18bf1a05
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
65 additions
and
78 deletions
+65
-78
Konto.java
src/main/java/p10_klasy/v5/Konto.java
+0
-33
Osoba.java
src/main/java/p10_klasy/v5/Osoba.java
+24
-5
Polimorfizm2.java
src/main/java/p10_klasy/v5/Polimorfizm2.java
+2
-2
Pracownik.java
src/main/java/p10_klasy/v5/Pracownik.java
+10
-10
Przyklad.java
src/main/java/p10_klasy/v5/Przyklad.java
+7
-13
Sklep.java
src/main/java/p10_klasy/v5/Sklep.java
+2
-2
Student.java
src/main/java/p10_klasy/v5/Student.java
+20
-13
No files found.
src/main/java/p10_klasy/v5/Konto.java
deleted
100644 → 0
View file @
18bf1a05
package
p10_klasy
.
v5
;
public
class
Konto
{
int
numer
;
int
saldo
;
Osoba
wlasciciel
;
Konto
(
int
numer
,
int
saldo
,
Osoba
wlasciciel
)
{
this
.
numer
=
numer
;
this
.
saldo
=
saldo
;
this
.
wlasciciel
=
wlasciciel
;
}
// można tworzyć więcej konstruktorów, które różnią się liczbą lub typem parametrów
// np. konstruktor tworzący konto z saldem zero:
Konto
(
int
numer
,
Osoba
wlasciciel
)
{
this
(
numer
,
0
,
wlasciciel
);
}
@Override
public
String
toString
()
{
return
"Konto nr "
+
numer
+
", "
+
saldo
+
" PLN, wł. "
+
wlasciciel
;
}
void
wplata
(
int
kwota
)
{
saldo
+=
kwota
;
}
void
wyplata
(
int
kwota
)
{
saldo
-=
kwota
;
}
}
src/main/java/p10_klasy/v5/Osoba.java
View file @
11710822
package
p10_klasy
.
v5
;
public
class
Osoba
{
pr
otected
String
imie
,
nazwisko
;
pr
otected
int
wiek
;
pr
ivate
String
imie
,
nazwisko
;
pr
ivate
int
wiek
;
Osoba
()
{
}
Osoba
(
String
imie
,
String
nazwisko
,
int
wiek
)
{
public
Osoba
(
String
imie
,
String
nazwisko
,
int
wiek
)
{
this
.
imie
=
imie
;
this
.
nazwisko
=
nazwisko
;
this
.
wiek
=
wiek
;
}
void
przedstawSie
()
{
public
void
przedstawSie
()
{
System
.
out
.
println
(
"Nazywam się "
+
imie
+
" "
+
nazwisko
+
" i mam "
+
wiek
+
" lat."
);
}
// final gwarantuje, że żadna podklasa nie będzie mogła nadpisać tej metody
final
boolean
jestPelnoletnia
()
{
public
final
boolean
jestPelnoletnia
()
{
return
wiek
>=
18
;
}
...
...
@@ -26,5 +26,24 @@ public class Osoba {
return
imie
+
" "
+
nazwisko
+
" ("
+
wiek
+
" lat)"
;
}
public
String
getImie
()
{
return
imie
;
}
public
String
getNazwisko
()
{
return
nazwisko
;
}
public
int
getWiek
()
{
return
wiek
;
}
public
void
setImie
(
String
imie
)
{
this
.
imie
=
imie
;
}
public
void
setNazwisko
(
String
nazwisko
)
{
this
.
nazwisko
=
nazwisko
;
}
}
src/main/java/p10_klasy/v5/Polimorfizm2.java
View file @
11710822
...
...
@@ -20,7 +20,7 @@ public class Polimorfizm2 {
// ale w każdej podklasie ta metoda może mieć inną treść ("overriding").
// Wykona się wersja z właściwej klasy.
for
(
Osoba
osoba
:
osoby
)
{
System
.
out
.
println
(
"* kolejna osoba to "
+
osoba
.
imie
+
" "
+
osoba
.
nazwisko
);
System
.
out
.
println
(
"* kolejna osoba to "
+
osoba
.
getImie
()
+
" "
+
osoba
.
getNazwisko
()
);
System
.
out
.
println
(
" "
+
osoba
);
System
.
out
.
print
(
" "
);
// System.out.println(osoba.kierunek); // nie każda osoba jest studentem
...
...
@@ -33,7 +33,7 @@ public class Polimorfizm2 {
// Jeśli tak jest, to możemy bezpiecznie zrzutować (cast) zmienną na typ Student
Student
student
=
(
Student
)
osoba
;
System
.
out
.
println
(
" To jest student kierunku "
+
student
.
kierunek
System
.
out
.
println
(
" To jest student kierunku "
+
student
.
getKierunek
()
+
", który ma średnią ocen "
+
student
.
sredniaOcen
());
}
...
...
src/main/java/p10_klasy/v5/Pracownik.java
View file @
11710822
...
...
@@ -6,47 +6,47 @@ import java.math.BigDecimal;
public
class
Pracownik
extends
Osoba
{
private
final
static
int
PENSJA_MINIMALNA
=
4000
;
String
zawod
;
BigDecimal
pensja
;
private
String
zawod
;
private
BigDecimal
pensja
;
Pracownik
()
{
}
Pracownik
(
String
imie
,
String
nazwisko
,
int
wiek
,
String
zawod
,
BigDecimal
pensja
)
{
public
Pracownik
(
String
imie
,
String
nazwisko
,
int
wiek
,
String
zawod
,
BigDecimal
pensja
)
{
// wywołanie konstruktora z nadklasy
super
(
imie
,
nazwisko
,
wiek
);
this
.
zawod
=
zawod
;
this
.
pensja
=
pensja
;
}
Pracownik
(
String
imie
,
String
nazwisko
,
int
wiek
,
String
zawod
,
double
pensja
)
{
public
Pracownik
(
String
imie
,
String
nazwisko
,
int
wiek
,
String
zawod
,
double
pensja
)
{
// wywołanie innego konstruktora z tej samej klasy
this
(
imie
,
nazwisko
,
wiek
,
zawod
,
BigDecimal
.
valueOf
(
pensja
).
setScale
(
2
));
}
Pracownik
(
String
imie
,
String
nazwisko
,
int
wiek
,
String
zawod
,
int
pensja
)
{
public
Pracownik
(
String
imie
,
String
nazwisko
,
int
wiek
,
String
zawod
,
int
pensja
)
{
this
(
imie
,
nazwisko
,
wiek
,
zawod
,
BigDecimal
.
valueOf
(
pensja
).
setScale
(
2
));
}
Pracownik
(
String
imie
,
String
nazwisko
,
int
wiek
,
String
zawod
,
String
pensja
)
{
public
Pracownik
(
String
imie
,
String
nazwisko
,
int
wiek
,
String
zawod
,
String
pensja
)
{
this
(
imie
,
nazwisko
,
wiek
,
zawod
,
new
BigDecimal
(
pensja
));
}
Pracownik
(
String
imie
,
String
nazwisko
,
int
wiek
,
String
zawod
)
{
public
Pracownik
(
String
imie
,
String
nazwisko
,
int
wiek
,
String
zawod
)
{
this
(
imie
,
nazwisko
,
wiek
,
zawod
,
PENSJA_MINIMALNA
);
}
// tworzenie wielu konstruktorów w tej samej klasie to jest "przeciążanie konstruktorów" / "overloading"
@Override
public
void
przedstawSie
()
{
System
.
out
.
println
(
"Dzień dobry, tu "
+
imie
+
", pracuję jako "
+
zawod
+
" i zarabiam "
+
pensja
+
" zł."
);
System
.
out
.
println
(
"Dzień dobry, tu "
+
getImie
()
+
", pracuję jako "
+
zawod
+
" i zarabiam "
+
pensja
+
" zł."
);
}
@Override
public
String
toString
()
{
return
"Pracownik [zawod="
+
zawod
+
", pensja="
+
pensja
+
", imie="
+
imie
+
", nazwisko="
+
nazwisko
+
", wiek="
+
wiek
+
"]"
;
return
"Pracownik [zawod="
+
zawod
+
", pensja="
+
pensja
+
", imie="
+
getImie
()
+
", nazwisko="
+
getNazwisko
()
+
", wiek="
+
getWiek
()
+
"]"
;
}
}
src/main/java/p10_klasy/v5/Przyklad.java
View file @
11710822
...
...
@@ -5,8 +5,8 @@ public class Przyklad {
public
static
void
main
(
String
[]
args
)
{
Osoba
osoba
=
new
Osoba
(
"Ala"
,
"Kowalska"
,
30
);
osoba
.
przedstawSie
();
// System.out.println("Imię i nazwisko: " + osoba.imie + " " + osoba.nazwisko
);
// osoba.imie = "Alicja"
;
System
.
out
.
println
(
"Imię i nazwisko: "
+
osoba
.
getImie
()
+
" "
+
osoba
.
getNazwisko
()
);
osoba
.
setImie
(
"Alicja"
)
;
osoba
.
przedstawSie
();
Student
student
=
new
Student
(
"Adam"
,
"Abacki"
,
21
,
2
,
"medycyna"
);
...
...
@@ -15,21 +15,15 @@ public class Przyklad {
student
.
dodajOcene
(
4
);
student
.
dodajOcene
(
5
);
//NK student.oceny.add(100);
student
.
dodajOcene
(
100
);
try
{
student
.
dodajOcene
(
100
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"Nie udało się dodać dziwnej oceny"
);
}
System
.
out
.
println
(
"Średnia ocen: "
+
student
.
sredniaOcen
());
Sklep
zabka
=
new
Sklep
(
"Żabka"
,
6
);
zabka
.
sprzedajPiwo
(
student
);
Konto
konto1
=
new
Konto
(
1
,
1000
,
osoba
);
Konto
konto2
=
new
Konto
(
2
,
student
);
System
.
out
.
println
(
konto1
);
System
.
out
.
println
(
konto2
);
konto1
.
wplata
(
3500
);
System
.
out
.
println
(
konto1
);
}
}
src/main/java/p10_klasy/v5/Sklep.java
View file @
11710822
...
...
@@ -15,10 +15,10 @@ public class Sklep {
System
.
out
.
println
(
"Klient wchodzi do sklepu "
+
nazwa
+
". Kliencie, przedstaw się..."
);
klient
.
przedstawSie
();
if
(
klient
.
jestPelnoletnia
())
{
System
.
out
.
println
(
"Osoba "
+
klient
.
imie
+
" kupuje piwo za "
+
cenaPiwa
+
" zł"
);
System
.
out
.
println
(
"Osoba "
+
klient
.
getImie
()
+
" kupuje piwo za "
+
cenaPiwa
+
" zł"
);
utarg
+=
cenaPiwa
;
}
else
{
System
.
out
.
println
(
"Osoba "
+
klient
.
imie
+
" nie może kupić piwa, bo ma tylko "
+
klient
.
wiek
+
" lat."
);
System
.
out
.
println
(
"Osoba "
+
klient
.
getImie
()
+
" nie może kupić piwa, bo ma tylko "
+
klient
.
getWiek
()
+
" lat."
);
}
System
.
out
.
println
(
"^^^^^^^^^^^^^^^"
);
}
...
...
src/main/java/p10_klasy/v5/Student.java
View file @
11710822
...
...
@@ -4,14 +4,14 @@ import java.util.ArrayList;
import
java.util.List
;
public
class
Student
extends
Osoba
{
int
rok
;
String
kierunek
;
private
int
rok
;
private
String
kierunek
;
private
List
<
Integer
>
oceny
=
new
ArrayList
<>();
Student
()
{
}
Student
(
String
imie
,
String
nazwisko
,
int
wiek
,
int
rok
,
String
kierunek
)
{
public
Student
(
String
imie
,
String
nazwisko
,
int
wiek
,
int
rok
,
String
kierunek
)
{
super
(
imie
,
nazwisko
,
wiek
);
this
.
rok
=
rok
;
this
.
kierunek
=
kierunek
;
...
...
@@ -24,15 +24,14 @@ public class Student extends Osoba {
// że jest to ostateczna definicja i podklasa nie może jeje zmienić
// 2) Dodać nowe metody, których nie było w nadklasie
void
dodajOcene
(
int
ocena
)
{
if
(
ocena
>=
2
&&
ocena
<=
5
)
{
oceny
.
add
(
ocena
);
}
else
{
System
.
err
.
println
(
"błędna ocena "
+
ocena
);
public
void
dodajOcene
(
int
ocena
)
{
if
(
ocena
<
2
||
ocena
>
5
)
{
throw
new
IllegalArgumentException
(
"błędna ocena "
+
ocena
);
}
oceny
.
add
(
ocena
);
}
double
sredniaOcen
()
{
public
double
sredniaOcen
()
{
double
suma
=
0
;
for
(
int
ocena
:
oceny
)
{
suma
+=
ocena
;
...
...
@@ -43,9 +42,9 @@ public class Student extends Osoba {
// 3) Nadpisać (override) metody, które były zdefiniowane w nadklasie
// czyli dla istniejących metoda podać inną treść.
@Override
void
przedstawSie
()
{
System
.
out
.
println
(
"Hej tu "
+
imie
+
" "
+
nazwisko
+
", studiuję kierunek "
+
kierunek
+
", jestem na "
+
rok
+
" roku."
);
public
void
przedstawSie
()
{
System
.
out
.
println
(
"Hej tu "
+
getImie
()
+
" "
+
getNazwisko
()
+
", studiuję kierunek "
+
getKierunek
()
+
", jestem na "
+
rok
+
" roku."
);
}
// Od Javy 5 przed definicją metody, która nadpisuje definicję z nadklasy, można umieścić adnotację @Override
// Ważne: nawet bez tej adnotacji nadpisanie jest skuteczne. Adnotacja tylko:
...
...
@@ -56,7 +55,15 @@ public class Student extends Osoba {
@Override
public
String
toString
()
{
// do tego, co zwraca toString zdefiniowany w klasie Osoba, dodaję info o roku i kierunku studiów:
return
super
.
toString
()
+
", studiuje na "
+
rok
+
" roku kierunku "
+
kierunek
;
return
super
.
toString
()
+
", studiuje na "
+
rok
+
" roku kierunku "
+
getKierunek
();
}
public
int
getRok
()
{
return
rok
;
}
public
String
getKierunek
()
{
return
kierunek
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment