در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو

با سلام به همه دوستان و همراهان Itpro. در ادامه مطالب متدها در جاوا مباحثی را مطرح کردیم و در این مطلب قصد داریم به ادامه مطالب در مورد متدها در جاوا می پردازیم.

استفاده از آرگومان های خط فرمان

خط فرمان یکی از امکاناتی است که تقریبا همه ی سیستم عامل ها آن را دارا می باشند. توسط این محیط کاربر دستوراتی را برای سیستم عامل می نویسد و سیستم عامل آن دستورات را اجرا کرده و پاسخ مناسب را به کاربر می دهد. خط فرمان در ویندوز command prompt نام دارد. اگر شما با این محیط کار کرده باشید می بینید که در این محیط دستوراتی وجود دارد که هرکدام از این دستورات دارای پارامترهای ورودی هستند برای مثال دستور کپی کردن فایل دارای دو پارامتر ورودی و چندین سوییچ است. که یک مثال آن در کد زیر آورده شده است:

Copy d:\file1.txt f:\itpro\file.txt

در این دستور ما آدرس فایل منبع و مقصد را می دهیم و فایل را از آدرس منبع به آدرس مقصد کپی می کند. همانطور که می بینید دستور کپی در کد بالا دو پارامتر ورودی دارد. حال برای این که به این پارامتر ها در برنامه ی جاوا دسترسی داشته باشیم باید به متد main پارامتر ورودی بدهیم. همان طور که قبلا هم در نمونه برنامه های مطالب قبلی نشان داده ایم متد main یک پارامتر ورودی از نوع آرایه String می باشد. حال پارامترهایی که در خط فرمان می آیند به ترتیب ورود در این آرایه قرار می گیرند و می توان از آنها استفاده کرد. برای مثال به کد زیر توجه کنید. این برنامه همه پارامترهای ورودی را با اندیس آن نشان می دهد.

public class CommandLine {

   public static void main(String args[]){ 
      for(int i=0; i<args.length; i++){
         System.out.println("args[" + i + "]: " +
                                           args[i]);
      }
   }
}

حال برای این که بتوانید این برنامه را تحت خط فرمان اجرا کنید آن را با استفاده از ابزار های گفته شده مانند IntelliJ idea کامپایل می کنیم تا فایل های .class ساخته شوند. سپس برای اجرای این برنامه کد زیر را در خط فرمان command prompt می نویسیم:

java CommandLine this is a command line 200 -100

خروجی که در خط فرمان مشاهده خواهیم کرد به شکل زیر خواهد بود:

args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100

Constructorها

همانگونه که قبلا هم گفته شد constructorها برای مقداردهی اولیه به فیلدهای اشیا به کار می روند و نامشان با نام کلاس یکی است و در شکل نوشتاری شبیه به متد است. اما constructorها هیچ مقدار بازگشتی ندارند. اما شما می توانید همه ی کار های آغازین شئ را در داخل constructor انجام دهید. همه ی کلاس ها دارای constructor هستند چه برای یک کلاس constructor تعریف کنیم و چه تعریف نکنیم. زیرا که جاوا برای هر شئ یک constructor بدون ورودی در نظر می گیرد. برای مثال از constructor به کد زیر توجه کنید:

// A simple constructor.
class MyClass {
   int x;
   
   // Following is the constructor
   MyClass() {
      x = 10;
   }
}

ما می توانیم همچنین به constructor ها ورودی بدهیم که می توان روی ورودی عمل خاصی انجام شود و یا در مقداردهی اولیه تاثیر داشته باشد. برای مثال در تعریف کلاس می توان constructor را به شکل زیر تعریف کرد:

// A simple constructor.
class MyClass {
   int x;
   
   // Following is the constructor
   MyClass(int i ) {
      x = i;
   }
}

که در هنگام نوشتن برنامه و استفاده از کلاس مورد نظر به صورت زیر اشیاء را تعریف می کنیم.

public class ConsDemo {

   public static void main(String args[]) {
      MyClass t1 = new MyClass( 10 );
      MyClass t2 = new MyClass( 20 );
      System.out.println(t1.x + " " + t2.x);
   }
}

که خروجی کد بالا به شکل زیر خواهد بود:

10 20

کلمه کلیدی this

کلمه کلیدی this کلمه ای است که در داخل یک متد به همان شئی که متد در داخل آن است اشاره می کند. با استفاده از این کلمه کلیدی می توانید با متدها و فیلدهای کلاس جاری کار کنید و به آن ها دسترسی داشته باشید. دقت داشته باشید که کلمه کلیدی this فقط در داخل constructor ها و متدهای استاتیک کاربرد دارد. دو مثال از کلمه کلیدی this در ادامه آورده شده است:

class Student{

   int age;   
   Student(int age){
   this.age=age;	
   }

}

در کد بالا کلمه کلیدی this برای مقدار دهی به فیلدهای موجود در شئ به کار گرفته می شود. همچنین می توان برای فراخوانی یک constructor از داخل یک constructor دیگر نیز این کلمه کلیدی را می توان استفاده کرد. مانند مثال زیر

class Student{

   int age
   Student(){
   this(20);
   }
   
   Student(int age){
   this.age=age;	
   }

}

همچنین در ادامه مثالی آورده شده است که از کلمه کلیدی this برای دستیابی به اعضای کلاس مورد استفاده قرار می گیرد.

public class This_Example {
	
   //Instance variable num
   int num=10;
	
   This_Example(){
      System.out.println("This is an example program on keyword this ");	
   }

   This_Example(int num){
      //Invoking the default constructor
      this();
      
      //Assigning the local variable num to the instance variable num
      this.num=num;	   
   }
   
   public void greet(){
      System.out.println("Hi Welcome to Itpro.ir");
   }
      
   public void print(){
      //Local variable num
      int num=20;
      
      //Printing the instance variable
      System.out.println("value of local variable num is : "+num);
      
      //Printing the local variable
      System.out.println("value of instance variable num is : "+this.num);
      
      //Invoking the greet method of a class
      this.greet();     
   }
   
   public static void main(String[] args){
      //Instantiating the class
      This_Example obj1=new This_Example();
      
      //Invoking the print method
      obj1.print();
	  
      //Passing a new value to the num variable through parametrized constructor
      This_Example obj2=new This_Example(30);
      
      //Invoking the print method again
      obj2.print(); 
   }

}

اگر کد بالا را احرا کنیم نتیجه ای که در بر خواهد داشت به شکل زیر خواهد بود:

This is an example program on keyword this 
value of local variable num is : 20
value of instance variable num is : 10
Hi Welcome to Itpro.ir
This is an example program on keyword this 
value of local variable num is : 20
value of instance variable num is : 30
Hi Welcome to Itpro.ir

آرگومان های متغیر(Variable Arguments)

از نسخه jdk 1.5 شما می توانید برای ورودی متدها پارامترهایی از یک نوع تعریف کنید به شکلی که هر تعداد ورودی از یک نوع می توانید به تابع بدهید. این نوع ورودی ها آرگومان های متغیر نام دارد که به شکل زیر تعریف می شود.

typeName... parameterName

برای استفاده از این نوع آرگومان شما ورودی را با معرفی نوع و سپس سه نقطه و سپس نام آرگومان ها معرفی می کنیم و در داخل متد یک حلقه تعریف می کنیم و از متد ورودی به شکل آرایه استفاده می کنیم. برای مثالی از این نوع ورودی به مثال زیر دقت کنید:

public class VarargsDemo {

   public static void main(String args[]) {
      // Call method with variable args  
	  printMax(34, 3, 3, 2, 56.5);
      printMax(new double[]{1, 2, 3});
   }

   public static void printMax( double... numbers) {
   if (numbers.length == 0) {
      System.out.println("No argument passed");
      return;
   }

   double result = numbers[0];

   for (int i = 1; i <  numbers.length; i++)
      if (numbers[i] >  result)
      result = numbers[i];
      System.out.println("The max value is " + result);
   }
}

خروجی کد بالا به شکل زیر خواهد بود

The max value is 56.5
The max value is 3.0

متد finalize

این امکان در جاوا وجود دارد که هنگامی که یک شئ در حال از بین رفتن است یک عمل خاصی انجام شود. به این معنی که قبل از این که شئ از داخل حافظه پاک شود عمل خاصی مانند بستن فایل ها و یا ارتباطات دیتابیس بسته شود و سپس شئ از داخل حافظه دور ریخته شود. جاوا این عمل را با استفاده از متد finalize انجام می دهد. به صورتی که همه ی اعمالی که باید انجام شود را داخل متد finalize می نویسیم. شکل کلی متد finalize باید به شکل زیر باشد.

protected void finalize( )
{
   // finalization code here
}

دقت داشته باشید که modifier که در این متد به کار گرفته شده است protected است. دلیل این کار این است که کسی نتواند از خارج از شئ به این متد دسترسی داشته باشد و نتواند آن را صدا بزند. Itpro باشید

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#پارامترهای_خط_فرمان_در_جاوا #کلمه_کلیدی_this_در_جاوا #برنامه_نویسی_جاوا #آموزش_برنامه_نویسی_جاوا #ورودی_های_تابع #متدهای_مربوط_به_رشته_ها_در_جاوا #آموزش_جاوا #متد_finalize_در_جاوا #دوره_آموزشی_جاوا #ارسال_پارامترها_به_متدها_در_جاوا
عنوان
1 آموزش جاوا (Java) قسمت 1 : معرفی ، خصوصیات و شروع به کار رایگان
2 آموزش جاوا (Java) قسمت 2 : شی گرایی قسمت یک رایگان
3 آموزش جاوا (Java) قسمت 3: شی گرایی قسمت دو رایگان
4 آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه رایگان
5 آموزش جاوا (Java) قسمت 5 : انواع داده رایگان
6 آموزش جاوا (Java) قسمت 6 : انواع متغیر رایگان
7 آموزش جاوا (Java) قسمت 7 : Modifier ها رایگان
8 آموزش جاوا (Java) قسمت 8 : عملگرها قسمت یک رایگان
9 آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو رایگان
10 آموزش جاوا (Java) قسمت 10 : حلقه های تکرار رایگان
11 آموزش جاوا (Java) قسمت 11 : عبارات شرطی رایگان
12 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
13 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
14 آموزش جاوا (Java) قسمت 14: کلاس Wrapper کاراکترها رایگان
15 آموزش جاوا (Java) قسمت 15 : کلاس String و کار با رشته قسمت یک رایگان
16 آموزش جاوا (Java) قسمت 16 : کلاس String و کار با رشته قسمت دو رایگان
17 آموزش جاوا (Java) قسمت 17 : کلاس String و کار با رشته قسمت سه رایگان
18 آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار رایگان
19 آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer رایگان
20 آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها رایگان
21 آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ رایگان
22 آموزش جاوا (Java) قسمت 22 : عبارات منظم (Regular Expression) رایگان
23 آموزش جاوا (Java) قسمت 23 : تعریف و استفاده از متدها قسمت یک رایگان
24 آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو رایگان
25 آموزش جاوا (Java) قسمت 25 : کار با استریم ها و فایل ها رایگان
26 آموزش جاوا (Java) قسمت 26 : کار با دایرکتوری ها رایگان
27 آموزش جاوا (Java) قسمت 27 : کلاس ByteArrayInputStream رایگان
28 آموزش جاوا (Java) قسمت 28 : معرفی کلاس File و متدها رایگان
29 آموزش جاوا (Java) قسمت 29 : معرفی و شرح Exception ها قسمت 1 رایگان
30 آموزش جاوا (Java) قسمت 30 : معرفی و شرح Exception ها قسمت 2 رایگان
31 آموزش جاوا (Java) قسمت 31 : معرفی و شرح Exception ها قسمت 3 رایگان
32 آموزش جاوا (Java) قسمت 32 : استفاده از انوع کلاس های داخلی رایگان
33 آموزش جاوا (Java) قسمت 33 : وراثت کلاس ها و انواع آن رایگان
34 آموزش جاوا (Java) قسمت 34 : Override کردن متد ها رایگان
35 آموزش جاوا (Java) قسمت 35 : چند ریختی (Polymorphism) رایگان
36 آموزش جاوا (Java) قسمت 36 : Enum و ویژگی های آن رایگان
37 آموزش جاوا (Java) قسمت 37 : معرفی Abstract رایگان
38 آموزش جاوا (Java) قسمت 38 : استفاده از کپسول بندی (Encapsulation) رایگان
39 آموزش جاوا (Java) قسمت 39 : استفاده از اینترفیس ها رایگان
40 آموزش جاوا (Java) قسمت 40 : پکیج(Package) و نحوه استفاده رایگان
41 آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration رایگان
42 آموزش جاوا (Java) قسمت 42 : داده ساختار BitSet رایگان
43 آموزش جاوا (Java) قسمت 43 : داده ساختار Vector رایگان
44 آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته) رایگان
45 آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary رایگان
46 آموزش جاوا (Java) قسمت 46 : داده ساختار Hashtable رایگان
47 آموزش جاوا (Java) قسمت 47 : داده ساختار Properites رایگان
48 آموزش جاوا (Java) قسمت 48 : معرفی و آموزش جنریک (Generic) رایگان
49 آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1 رایگان
50 آموزش جاوا (Java) قسمت 50 : برنامه نویسی سوکت و شبکه قسمت 2 رایگان
51 آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression رایگان
52 آموزش جاوا (Java) قسمت 52 : Thread و Multi-Threading رایگان
53 آموزش جاوا (Java) قسمت 53 : Runnable در Thread و Multi-Threading رایگان
54 آموزش جاوا (Java) قسمت 54 : کلاس Thread و متدها رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....