* 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]

