interpretacja kodu

0

Witam. Czy mógłbym prosić o pomoc w interpretacji kodu?

public String stan() {
String wymiary = dlugosc+"x"+wysokosc;
String otwarcie = otwarte ? "otwarte" : "zamkniete";
String stanKlamki = klamka!= null ? klamka.stan() : "bez klamki";
return wymiary +" "+ otwarcie +" "+ stanKlamki;

0
public String stan() {
	String wymiary = dlugosc + "x" + wysokosc; // Łączysz długość z wysokością i wypisujesz w formacie [dlugość]x[wysokość]

	String otwarcie = otwarte ? "otwarte" : "zamkniete"; // Jeżeli 'otwarte' jest prawdą wtedy do Stringa przypisywana jest wartość "otwarte", w przeciwnym razie "zamkniete"
    
	String stanKlamki = klamka != null ? klamka.stan() : "bez klamki"; // Jeżeli obiekt klamki istnieje wtedy przypisywana jest wartość zwracana przez metodę stan() obiektu 'klamka', w przeciwnym razie "bez klamki"

	return wymiary + " " + otwarcie + " " + stanKlamki; // Łączenie powyższych stringów z spacjami pomiędzy nimi.
}
0
  1. Pisał go ktoś, kto nie programuje zbyt długo (ponieważ zmienne po polsku)
  2. funkcja zwraca tekstowy opis jakichś zmiennych. Utworzona zapewne do celów debugowania, albo do celów informacyjnych, np. wyświetlania jakiegoś komunikatu użytkownikowi.

BTW

String wymiary = dlugosc+"x"+wysokosc;

czy zmienne dlugosc i wysokosc to liczby?
Dziwię się, bo myślałem, że Java jest językiem silnie typowanym, a tutaj tak jakby występowało przymuszanie do stringa, czyli coś, co robią słabo typowane języki (o ile faktycznie dlugos i wysokosc to liczby, bo nie widzę tutaj deklaracji).

0
atmal napisał(a):
public String stan() {
	String wymiary = dlugosc + "x" + wysokosc; // Łączysz długość z wysokością i wypisujesz w formacie [dlugość]x[wysokość]

	String otwarcie = otwarte ? "otwarte" : "zamkniete"; // Jeżeli 'otwarte' jest prawdą wtedy do Stringa przypisywana jest wartość "otwarte", w przeciwnym razie "zamkniete"
    
	String stanKlamki = klamka != null ? klamka.stan() : "bez klamki"; // Jeżeli obiekt klamki istnieje wtedy przypisywana jest wartość zwracana przez metodę stan() obiektu 'klamka', w przeciwnym razie "bez klamki"

	return wymiary + " " + otwarcie + " " + stanKlamki; // Łączenie powyższych stringów z spacjami pomiędzy nimi.
}

Wielkie dzięki i szacuneczek. Przez godzinę nie mogłem tego rozkminić a tu proszę.

0
LukeJL napisał(a):
  1. Pisał go ktoś, kto nie programuje zbyt długo (ponieważ zmienne po polsku)
  2. funkcja zwraca tekstowy opis jakichś zmiennych. Utworzona zapewne do celów debugowania, albo do celów informacyjnych, np. wyświetlania jakiegoś komunikatu użytkownikowi.

BTW

String wymiary = dlugosc+"x"+wysokosc;

czy zmienne dlugosc i wysokosc to liczby?
Dziwię się, bo myślałem, że Java jest językiem silnie typowanym, a tutaj tak jakby występowało przymuszanie do stringa, czyli coś, co robią słabo typowane języki (o ile faktycznie dlugos i wysokosc to liczby, bo nie widzę tutaj deklaracji).

Cała klasa wygląda następująco:
public class Skrzydlo { //deklaracja klasy: nazwa klasy jest taka sama jak nazwa pliku
private int dlugosc; //pole prywatne dlugosc typu int
private int wysokosc; //pole prywatne wysokosc typu int
private Klamka klamka; //pole prywatne typu Klamka o nazwie klamka
private boolean otwarte = false; //pole prywatne otwarte typu boolean inicjujące zmienna true

public Skrzydlo(int dlugosc, int wysokosc) { //konstruktor publiczny z dwoma argumentami typu int
	this.dlugosc = dlugosc; //przedłonięcie zmiennej lokalnej dlugosc
	this.wysokosc = wysokosc; //przesłonięcie zmiennej lokalnej wysokosc
}
public Skrzydlo(int dlugosc, int wysokosc, Klamka klamka) { //konstruktor publiczny z dwoma argumentami typu int i jednym argumentem typu Klamka o nazwie klamka 
	this(dlugosc,wysokosc); //wywołanie jednego konstruktora na rzecz innego konstruktora parametry jawne to dlugosc i wysokosc
	this.klamka = klamka; //przesłonięcie zmiennej lokalnej klamka
}

public int getDlugosc() { //metoda dostępowa get
	return dlugosc; //zwrócenie wartości do pola dlugosc
}
public void setDlugosc(int dlugosc) { //deklaracja metody, nazwaMetody (parametry)
	this.dlugosc = dlugosc; //przesłonięcie zmiennej lokalnej dlugosc
}
public int getWysokosc() { //metoda dostępowa get
	return wysokosc; //zwrócenie wartości do pola wysokosc
}
public void setWysokosc(int wysokosc) { //metoda dostępowa set
	this.wysokosc = wysokosc; //przesłonięcie zmiennej lokalnej wysokosc
}
public Klamka getKlamka() { //metoda dostępowa get
	return klamka; //zwrócenie wartości do pola klamka
}
public void setKlamka(Klamka klamka) { //metoda dostępowa set
	this.klamka = klamka; //przesłonięcie zmiennej lokalnej klamka
}
public boolean isOtwarte() { //publiczna metoda typu boolean
	return otwarte; //zwrócenie wartości do pola otwarte
}
public void setOtwarte(boolean otwarte) { //metoda dostępowa set
	this.otwarte = otwarte; //przesłonięcie zmiennej lokalnej otwarte
}
public String stan() {
	String wymiary = dlugosc+"x"+wysokosc;
	String otwarcie = otwarte ? "otwarte" : "zamkniete";
	String stanKlamki = klamka!= null ? klamka.stan() : "bez klamki";
	return wymiary  +" "+ otwarcie +" "+ stanKlamki;
}

}

Od niedawna uczę się programowania w java i mam zadanie które polega na opisaniu kodu. Oczywiście jest to jedna z czterech klas.

0
luki25591 napisał(a):
LukeJL napisał(a):
  1. Pisał go ktoś, kto nie programuje zbyt długo (ponieważ zmienne po polsku)
  2. funkcja zwraca tekstowy opis jakichś zmiennych. Utworzona zapewne do celów debugowania, albo do celów informacyjnych, np. wyświetlania jakiegoś komunikatu użytkownikowi.

BTW

String wymiary = dlugosc+"x"+wysokosc;

czy zmienne dlugosc i wysokosc to liczby?
Dziwię się, bo myślałem, że Java jest językiem silnie typowanym, a tutaj tak jakby występowało przymuszanie do stringa, czyli coś, co robią słabo typowane języki (o ile faktycznie dlugos i wysokosc to liczby, bo nie widzę tutaj deklaracji).

Cała klasa wygląda następująco:
public class Skrzydlo { //deklaracja klasy: nazwa klasy jest taka sama jak nazwa pliku
private int dlugosc; //pole prywatne dlugosc typu int
private int wysokosc; //pole prywatne wysokosc typu int
private Klamka klamka; //pole prywatne typu Klamka o nazwie klamka
private boolean otwarte = false; //pole prywatne otwarte typu boolean inicjujące zmienna true

public Skrzydlo(int dlugosc, int wysokosc) { //konstruktor publiczny z dwoma argumentami typu int
this.dlugosc = dlugosc; //przedłonięcie zmiennej lokalnej dlugosc
this.wysokosc = wysokosc; //przesłonięcie zmiennej lokalnej wysokosc
}
public Skrzydlo(int dlugosc, int wysokosc, Klamka klamka) { //konstruktor publiczny z dwoma argumentami typu int i jednym argumentem typu Klamka o nazwie klamka
this(dlugosc,wysokosc); //wywołanie jednego konstruktora na rzecz innego konstruktora parametry jawne to dlugosc i wysokosc
this.klamka = klamka; //przesłonięcie zmiennej lokalnej klamka
}

public int getDlugosc() { //metoda dostępowa get
return dlugosc; //zwrócenie wartości do pola dlugosc
}
public void setDlugosc(int dlugosc) { //deklaracja metody, nazwaMetody (parametry)
this.dlugosc = dlugosc; //przesłonięcie zmiennej lokalnej dlugosc
}
public int getWysokosc() { //metoda dostępowa get
return wysokosc; //zwrócenie wartości do pola wysokosc
}
public void setWysokosc(int wysokosc) { //metoda dostępowa set
this.wysokosc = wysokosc; //przesłonięcie zmiennej lokalnej wysokosc
}
public Klamka getKlamka() { //metoda dostępowa get
return klamka; //zwrócenie wartości do pola klamka
}
public void setKlamka(Klamka klamka) { //metoda dostępowa set
this.klamka = klamka; //przesłonięcie zmiennej lokalnej klamka
}
public boolean isOtwarte() { //publiczna metoda typu boolean
return otwarte; //zwrócenie wartości do pola otwarte
}
public void setOtwarte(boolean otwarte) { //metoda dostępowa set
this.otwarte = otwarte; //przesłonięcie zmiennej lokalnej otwarte
}
public String stan() {
String wymiary = dlugosc+"x"+wysokosc;
String otwarcie = otwarte ? "otwarte" : "zamkniete";
String stanKlamki = klamka!= null ? klamka.stan() : "bez klamki";
return wymiary +" "+ otwarcie +" "+ stanKlamki;
}
}

Od niedawna uczę się programowania w java i mam zadanie które polega na opisaniu kodu. Oczywiście jest to jedna z czterech klas. Czy ten kod jest w miarę dobrze opisany?

0

Zadanie zadaniem, tylko pamiętaj, że w prawdziwym kodzie nie pisze się tylu komentarzy.

public Klamka getKlamka() { //metoda dostępowa get

czyli komentarz metoda dostępowa get na potrzeby ćwiczenia okej, ale jak będziesz pisał potem kiedyś normalnie kod, to nie pisz takich masło-maślanych komentarzy, bo nie mają one sensu (niestety wiele osób potem pisząc prawdziwy kod, pisze masę niepotrzebnych komentarzy. I to tylko zaśmieca potem kod)

0

czy zmienne dlugosc i wysokosc to liczby?
Dziwię się, bo myślałem, że Java jest językiem silnie typowanym, a tutaj tak jakby występowało przymuszanie do stringa, czyli coś, co robią słabo typowane języki (o ile faktycznie dlugos i wysokosc to liczby, bo nie widzę tutaj deklaracji).

Tak to w Javie działa dla typów prymitywnych, nie będących obiektami ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1