Chirurgia endoscopică a hipofizei
"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală. Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale. www.neurohope.ro |
Nelamuriri programare despre metode statice
Last Updated: May 26 2017 15:50, Started by
Sess
, May 22 2017 20:47
·
0
#1
Posted 22 May 2017 - 20:47
Salut,
Metodele statice sunt utlizate pentru a apela acele metode fara a le atasa de un obiect. Dar totusi, exista si varianta asta. La ce sa mai fie declarate statice atunci? public class TestClass { static Test test; // <---- obiect de tip Test public static void main(String[] args) { test.hello(); // <---- metoda hello() instantiata } } class Test{ static void hello(){ System.out.println("Test"); } }
Edited by MarianG, 22 May 2017 - 22:02.
|
#2
Posted 22 May 2017 - 21:31
Ca sa nu mai declari obiectul de tip Test. Iar daca tu declari static Test in TestClass, colegul declara static Test in TestClass2, va mirati apoi de ce cele doua instante sunt separate cand te-ai fi asteptat sa fie acelasi lucru (daca aveau metode statice).
Quote Internally, the elements in a multiset are always sorted following a specific strict weak ordering criterion indicated by its internal comparison object (of type Compare). Edited by dani.user, 22 May 2017 - 21:36. |
#3
Posted 23 May 2017 - 07:43
Eu consider permiterea acestui lucru o greșeală de design a limbajului Java.
În PHP de exemplu, așa ceva generează măcar o avertizare. |
#4
Posted 23 May 2017 - 09:03
Quote
static Test test; // <---- obiect de tip Test apelezi la singletonul din spatele clasei si nu instanta obiectului de tip test. Tu aici nu instantiezi nimic daca observi ci doar declari. Aici e confuzia. Ai fost indus in eroare de faptul cu tu crezi ca instantiezi dar de fapt doar declari. Daca in spate nu exista singletonul clasei, atunci tu erai in cazul in care doresti sa accesezi static o variabila intr-un mod dinamic iar compilerul nu te va lasa sa compilezi asa ceva. Apoi a mai fost indus in eroare din cauza faptului ca in java se pote sa ai "clase statice" care sunt inner insa nu poti avea clase statice de top-level, Quote
test.hello(); // <---- metoda hello() instantiata De aceea pun pariu pe ce vrei tu, ca al tau compiler o sa se planga de faptul ca vrei sa accesezi o variabila statica insa in mod dinamic. Cum poti sa-mi "instantiez o metoda ? ".Nu In java metodele statice sunt legate the instanta unica a clasei respective. In java pot sa-mi declar obiecte statice daca acestea sunt clase de tip inner sau nested insa nu pot sa declar un obiect static de top-level insa pot sa fortez o clasa de top-level sa se comporta ca o "clasa statica" daca o declar cu final si ii fac constructorul private, adica ajung la asa ceva : https://www.tutorial...ton_pattern.htm Conceptul de "clasa statica" este definit ad-hoc in sensul ca se considera a fi o clasa statica, o clasa care are numai metode statice.Insa aceasta este doar o cutuma, pt ca foarte bine acea "clasa statica" acepta instantierea ei de cate ori doresc eu. Acest fapt nu reprezinta o limitare sau eroare de design al limbajului ci doar faptul ca unii programatori au facut astfel de asocieri in mintea lor. Este adevarat ca o clasa care are metodele statice , acestea pot fi accesate doar prin intermediul singletonului de clasa, adica NumeClasa.metoda, insa acea "clasa statica" poate fi instantiata de cate ori doresc eu, ceea ce dpdv al definitiei de static ( in context multithreading) isi cam pierde sensul. public class GO { public static void main (String[] args) throws java.lang.Exception { GO.metoda1(); new GO().metoda2(); } public static void metoda1() { System.out.println( "apartin numai instantei clasei si nu potentialelor diferite instante." + " Parintele meu este de fapt singletonul creat in spatele clasei.Pot fii accesat doar prin intermediul instantei de clasa" + "la nivel de multithreading partajez aceiasi informatie pt orice thread care ma poate accesa si pot fi schimbat de oricare alt thread." ); } public void metoda2() { System.out.println( "apartin oriarei instante mai putin cea a clasei (singletonului ei).Parintele meu este instanta curenta.Pot fi accesat prin orice instanta, mai putin cea a clasei (singletonului ei)" + "la nivel de multithread sunt izolat fata de alte threaduri, ele nu ma pot schimba si nu sunt partajat cu alte threaduri" ); } } PS: poti sa-ti dai seama de mai multe daca vei studia java multithreading.Acolo vei vedea importanta staticelor.
Edited by lightpoint, 23 May 2017 - 09:32.
|
#5
Posted 26 May 2017 - 15:50
Mersi mult! Foarte detaliata explicatie.
Edited by MarianG, 26 May 2017 - 16:21.
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users