متدهای کلاس
شما از فصل متدها در جاوا یاد گرفتید که متدها درون یک کلاس تعریف میشود و از آنها برای انجام عملیاتهای اصلی استفاده میشود: [۱]
محتویات
مثال
ساخت یک متد با نام myMethod()
در کلاس MyClass:
1 public class MyClass {
2 static void myMethod() {
3 System.out.println("Hello World!");
4 }
5 }
متد myMethod()
یک متن را زمانی که فراخوانی شد، چاپ میکند. (عملیات متد). برای فراخوانی یک متد، نام متد را به همراه یک ( ) و یک نقطه ویرگول ; بنویسید.
مثال
فراخوانی متد myMethod()
درون متد main
:
1 public class MyClass {
2 static void myMethod() {
3 System.out.println("Hello World!");
4 }
5
6 public static void main(String[] args) {
7 myMethod();
8 }
9 }
10
11 // Outputs "Hello World!"
متدهای Static در برابر متدهای غیر Static
شما اغلب برنامههای جاوایی را دیدهاید که خاصیتها attribute
یا متدهای static
یا public
دارند.
در مثال بالا، ما یک متد static
تعریف کردهایم، که بدان معناست که میتوان به این متد بدون ساختن یک شیء از کلاس دسترسی پیدا کرد، برخلاف public
که فقط از طریق شیء کلاس میتوان به آن دسترسی پیدا کرد:
مثال
مثالی برای درک تفاوت بین متدهای static
و public
:
1 public class MyClass {
2 // Static method
3 static void myStaticMethod() {
4 System.out.println("Static methods can be called without creating objects");
5 }
6
7 // Public method
8 public void myPublicMethod() {
9 System.out.println("Public methods must be called by creating objects");
10 }
11
12 // Main method
13 public static void main(String[] args) {
14 myStaticMethod(); // Call the static method
15 // myPublicMethod(); This would compile an error
16
17 MyClass myObj = new MyClass(); // Create an object of MyClass
18 myObj.myPublicMethod(); // Call the public method on the object
19 }
20 }
دسترسی به متدها با یک شیء
مثال
ساخت یک شیء از کلاس Car به نام myCar
. فراخوانی متدهای fullThrottle()
و speed()
روی شیء myCar
و اجرای برنامه:
1 // Create a Car class
2 public class Car {
3
4 // Create a fullThrottle() method
5 public void fullThrottle() {
6 System.out.println("The car is going as fast as it can!");
7 }
8
9 // Create a speed() method and add a parameter
10 public void speed(int maxSpeed) {
11 System.out.println("Max speed is: " + maxSpeed);
12 }
13
14 // Inside main, call the methods on the myCar object
15 public static void main(String[] args) {
16 Car myCar = new Car(); // Create a myCar object
17 myCar.fullThrottle(); // Call the fullThrottle() method
18 myCar.speed(200); // Call the speed() method
19 }
20 }
21
22 // The car is going as fast as it can!
23 // Max speed is: 200
توضیح مثال
- ما یک کلاس شخصیسازی شده با نام
Car
با کلمه کلیدیclass
ساختیم. - ما متدهای
fullThrottle()
وspeed()
را در کلاسCar
ساختیم. - متدهای
fullThrottle()
وspeed()
در هنگام فراخوانی مقدار متنی را چاپ میکنند. - متد
speed()
یک پارامتر از نوع صحیح یاint
به نامmaxSpeed
یا نهایت سرعت را میپذیرد - ما از این متد در قسمت ۸ استفاده خواهیم کرد. - برای استفاده از کلاس
Car
و متدهایش، ما میبایست یک شیء از کلاسCar
بسازیم. - سپس به متد
main()
رفته، همانطور که شما میدانید که این متد یک متد پیشفرض در جاوا است که برنامه شما را اجرا میکند (هر کدی درون متد main قرار بگیرد، اجرا میشود). - با استفاده از کلمه کلیدی
new
ما یک شیء از کلاسCar
با نامmyCar
ساختهایم. - سپس، ما متدهای
fullThrottle()
وspeed()
را روی شیءmycar
فراخوانی میکنیم و برنامه را با استفاده از نام شیء (mycar
) به همراه یک نقطه و نام متد (fullThrottle();
وspeed(200);
) اجرا میکنیم. توجه داشته باشید که ما یک پارامتر صحیحint
(200) درون متدspeed()
اضافه کردهایم.
به یاد داشته باشید که
نقطه (.
) برای دسترسی به متدها و خاصیتهای شیء استفاده میشود.
برای فراخوانی یک متد در جاوا، نام متد را به همراه ( ) و یک سمیکالن ; بنویسید.
نام یک کلاس میبایست همنام فایل کلاس باشد (کلاسCar
و فایل Car.java).استفاده از کلاسهای متعدد
همانطور که ما در فصل کلاسها در جاوا مشخص کردیم، ساخت یک شیء از یک کلاس و دسترسی به آن در کلاسی دیگر تمرین خوبی است.
به یاد داشته باشید که نام فایل جاوا میبایست با نام کلاس یکی باشد. در این مثال ما دو فایل زیر را در یک مسیر مشترک ایجاد کردهایم:
- Car.java
- OtherClass.java
Car.java
1 public class Car {
2 public void fullThrottle() {
3 System.out.println("The car is going as fast as it can!");
4 }
5
6 public void speed(int maxSpeed) {
7 System.out.println("Max speed is: " + maxSpeed);
8 }
9 }
OtherClass.java
{{پایان چپچین}
}1 class OtherClass {
2 public static void main(String[] args) {
3 Car myCar = new Car(); // Create a myCar object
4 myCar.fullThrottle(); // Call the fullThrottle() method
5 myCar.speed(200); // Call the speed() method
6 }
7 }
اجرای فایل OtherClass.java:
و نتیجه برابر خواهد بود با:
منابع آموزشی