* FIGURE 4 .1 Method signature
Qısaca qeyd etsək:
Element | Value in nap() example | Required? |
Access modifier | public |
No |
Optional specifier | final |
No |
Return type | void |
Yes |
Method name | nap |
Yes |
Parameter list | (int minutes ) |
Yes, but can be empty parentheses |
Optional exception list | throws InterruptedException |
No |
Method body | { // take a nap } | Yes, but can be empty braces |
Ardıcıllıq sırasına diqqət etmək lazımdır. ()
-nin solunda metodun adı gəlməlidir, metodun adından əvvəl isə mütləq tipi qeyd olunmalıdır. Access modifier və optional specifier`lərin yerlərini dəyişmək mümkündür.
static final int max(int x, int y) { return (5); // it is legal }
Access modifiers
4 access modifier var:
public
– metod public olarsa istənilən classdan çağırıla bilər.
private
– metod private olarsa ancaq classın öz daxilində çağırıla bilər.
protected
– metod protected olarsa eyni paketdə olan classlar və subclasslar tərəfindən çağırıla bilər.
Default (Package Private) Access – metod default olarsa (yəni heç bir açar söz istifadə edilməsə), ancaq eyni paketdə olan classlar tərəfindən çağırıla bilər.
public class Test { public void test1() {} default void test2() {} // DOES NOT COMPILE void public test3() {} // DOES NOT COMPILE void test4() {} }
Optional Specifiers
Access modifierdən fərqli olaraq bir metodda bir neçə optional specifiers istifadə etmək mümkündür. İmtahan suallarında istifadə olunan əsasları bunlardır:
static, abstract, final
– imtahan suallarında əsasən bunlar istifadə olunur;
synchronized
– OCA imtahanında yoxdu, ancaq OCP imtahanında istifadə olunur;
native, strictfp
– nə OCA, nə də OCP imtahanında istifadə olunmur.
public class Test { public void test1() {} public final void test2() {} public static final void test3() {} public final static void test4() {} public modifier void test5() {} // DOES NOT COMPILE public void final test6() {} // DOES NOT COMPILE final public void test7() {} }
Return Type
Metodun mütləq tipi olmalıdır, əgər metod geriyə heç bir dəyər qaytarmazsa, onun tipi mütləq void yazılmalıdır, buraxıla bilməz. Əgər tip void olarsa, metoddan qayıdan dəyər kimi return;
ifadəsi yazılmasına icazə verilir, yaxud da ümumiyyətlə heç nə yazılmır.
public void test1() {} public void test2() { return; } public String test3() { return ""; } public String test4() {} // DOES NOT COMPILE public test5() {} // DOES NOT COMPILE String test6(int a) { if(a==4) return ""; } // DOES NOT COMPILE
Metoddan qayıdan dəyər metodun tipinə uyğun olmalıdır:
int getInt() { return 9; } int getLong() { return 9L; // DOES NOT COMPILE }
Method Name
Metod adları da identifiers kimi müəyyən qaydalara riayət etməklə tanımlanmalıdır, bu barədə birinci bölmədə Identifiers mövzusunda qeyd olunub. Həmçinin Java Naming Conventions`a görə metod adları kiçik hərflə başlamalıdır, amma yazılmasa səhv sayılmır.
(konvensiya ətraflı: http://www.oracle.com/technetwork/java/codeconventions-135099.html)
public void test1() {} public void 2test() {} // DOES NOT COMPILE public test3 void() {} // DOES NOT COMPILE public void Test_$() {} public void() {} // DOES NOT COMPILE
[topics lang=az]