JavaRush /جاوا بلاگ /Random-SD /جاوا ۾ طريقا
articles
سطح

جاوا ۾ طريقا

گروپ ۾ شايع ٿيل
جاوا ۾ طريقا - 1جاوا ۾، هڪ ايپليڪيشن طبقن تي مشتمل آهي. ڪلاس، موڙ ۾، متغيرن تي مشتمل آهن. اهي ڊيٽا ۽ طريقن کي محفوظ ڪرڻ جا ذميوار آهن جيڪي طبقي جي رويي لاء ذميوار آهن: ٻين لفظن ۾، اهو منطق جيڪو اهو مهيا ڪري سگهي ٿو (مثال طور، ڪجهه ڊيٽا پروسيسنگ، ٻين طريقن کي سڏي، وغيره). اسان اهڙين جزن جي باري ۾ ڳالهائي سگهون ٿا جيئن متغير هڪ ڊگهي وقت تائين، پر اهو ئي سبب ناهي ته اسان اڄ گڏ ڪيو آهي. اچو ته بهتر طريقي سان ڪلاس جي اهڙي جزو بابت ڳالهايون. جاوا ۾ طريقا - 2هڪ طريقو هڪ ڪلاس ۾ اعلان ڪيل ڪوڊ جو نالو بلاڪ آهي. اهو عملن جي هڪ خاص مڪمل ترتيب (هدايتون) تي مشتمل آهي جنهن جو مقصد هڪ الڳ مسئلو حل ڪرڻ آهي، جيڪو ٻيهر استعمال ڪري سگهجي ٿو. ٻين لفظن ۾، هڪ طريقو هڪ فنڪشن آهي: ڪجهه جيڪو توهان جو طبقو ڪري سگهي ٿو. ٻين ٻولين جا به ڪم آهن. صرف جاوا ۾ اهي طبقن جا ميمبر آهن ۽، OOP اصطلاحن جي مطابق، طريقن کي سڏيو ويندو آهي. پر اڳتي وڌڻ کان اڳ، اچو ته هڪ ننڍڙو مثال ڏسو:
public String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
  return resultSentence;
}
هتي ڪجھ به پيچيده نه آهي: هڪ جاوا طريقو جنهن جو ڪم آهي هڪ سلامي اسٽرنگ ٺاهي جنهن جي نالي سان اسان ان ڏانهن وڃو. مثال طور - Hello world! My name is Bobby اچو ته سمجھون ته طريقي جي ٺاھ جوڙ کي چڱيءَ ريت طريقي سان بيان ڪرڻ ۾ ھر لفظ کي ڏسي (کاٻي کان ساڄي تائين). اسان جو پهريون لفظ آهي public، ۽ اهو ظاهر ڪري ٿو هڪ رسائي موڊيفائر:

رسائي تبديل ڪندڙ

اهي ڪلاس جي ميمبرن جي نمائش جي اجازت واري دائري کي ظاهر ڪن ٿا، اهو آهي، انهن هنڌن جي پابندي جنهن ۾ هڪ متغير يا طريقو استعمال ڪرڻ جي اجازت آهي. جاوا ۾ طريقا - 3جاوا ۾ هيٺيون رسائي موڊيفائر استعمال ڪيا ويا آهن:
  • عوامي : عوامي. هن ترميمي سان گڏ طريقا يا شعبا عوامي آهن، ٻين طبقن کي نظر اچن ٿا (يا بلڪه، انهن جا طريقا ۽ فيلڊ) موجوده پيڪيج مان ۽ ٻاهرين پيڪيجز مان. اها پهچ جي وسيع ترين سطح آهي معلوم؛

  • محفوظ ٿيل : طريقا يا متغير هن موڊيفائر سان گڏ موجوده ڪلاس يا پيڪيج ۾ ڪٿي به، يا انهن طبقن ۾ جيڪي هن کي ورثي ۾ رکن ٿا، ان سان گڏ طريقن يا شعبن ۾، جيتوڻيڪ اهي ٻئي پيڪيجز ۾ آهن.

    protected String constructHelloSentence(String name) {...}
  • ڊفالٽ تبديل ڪندڙ. جيڪڏهن ڪلاس جي فيلڊ يا طريقي ۾ ڪا ترميمي نه آهي، ڊفالٽ موڊيفائر لاڳو ڪيو ويندو آهي. هن حالت ۾، فيلڊ يا طريقا موجوده پيڪيج ۾ سڀني طبقن کي نظر اچن ٿا (جهڙوڪ محفوظ ، پر وراثت ۾ ڪابه نمائش نه هوندي).

    String constructHelloSentence(String name) {...}
  • نجي : عوامي تبديليءَ جي سامهون . اهڙي تبديليءَ سان هڪ طريقو يا متغير صرف ان طبقي ۾ موجود آهي جنهن ۾ ان جو اعلان ڪيو ويو آهي.

    private String constructHelloSentence(String name) {...}
اڳيون اسان وٽ Stringطريقو دستخط ۾ آهي (طريقي جي پهرين لائن ان جي ملڪيت کي بيان ڪندي).

واپسي جي قيمت

واپسي جي قيمت ڊيٽا آهي (طريقن جي عمل جو ڪجهه نتيجو) جيڪو ڪال کان پوء پنهنجي جاء تي اچي ٿو. هر طريقو هڪ واپسي قدر آهي. يا نه؟

واپسي قدر جا طريقا

هي قدر ڪنهن به قسم جي ڊيٽا ٿي سگهي ٿو: هڪ سادي قسم جو هڪ متغير يا هڪ حوالو قسم. هن مثال ۾، اسان اهو ظاهر ڪريون ٿا ته طريقو هڪ قسم جي اعتراض کي واپس ڪرڻ گهرجي String، جيڪو اسان کي ياد آهي، هڪ طبقو آهي جيڪو هڪ اسٽرنگ کي بيان ڪري ٿو. ٻيو نقطو هتي لفظ آهي return. ان جو واپسي جي قيمت سان سڌو تعلق آهي: ان کان پوءِ قيمت ان جاءِ تي واپس موڪلي ويندي جتي طريقو سڏيو ويو هو، ۽ اهو طريقو پاڻ پوءِ returnبند ٿي ويندو. هي لفظ عام طور تي طريقي جي آخري قطار ۾ ظاهر ٿئي ٿو (سواء طريقن جي مختلف شاخن جهڙوڪ if, else...). جيڪڏھن توھان ھيٺ ڏنل لائن تي ڪوڊ لکو return:
private String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  return resultSentence;
  System.out.println(resultSentence);
}
پوءِ اسان کي گڏ ڪرڻ واري کان لعنت ملندي، جيڪا تمام سٺي نه آهي (ڪمپائلر بيڪار سفارش نه ڪندو). توهان کي پڻ ياد رکڻ جي ضرورت آهي ته ڊيٽا جو قسم بعد ۾ сلازمي آهي ته هڪ طريقي سان دستخط ۾ اعلان ڪيو ويو آهي. هتي جي باري ۾ وڌيڪ returnپڙهو .

باطل

voidجاوا ۾ ڇا لاءِ استعمال ٿيندو آهي ؟ سڀني طريقن کي واپسي جي قيمت نه آهي. ڪجھ يا ته ڪجھ به نه آھي يا ڪجھ به واپس ڪرڻ جي ضرورت نه آھي. پوءِ ڇا ڪجي؟ ان کان پوء طريقي سان دستخط اسان لکندا آهيون void. واپسي جي قيمت کان سواءِ اسان جو طريقو ڪهڙو نظر ايندو؟
protected void constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
}
توهان شايد محسوس ڪيو آهي ته واپسي جي قيمت سان گڏ، لفظ " returnSo it is" غائب ٿي ويو آهي، ڇاڪاڻ ته اسان جو طريقو ڪجهه به نه موٽڻ گهرجي. بهرحال، اهو هتي رکي سگهجي ٿو، پر بغير ڪنهن معني جي، صرف return؛ آخري قطار ۾. اهو عام طور تي بيڪار آهي، تنهنڪري voidاهو طريقن سان اختياري آهي. بهرحال، اهو مفيد طريقي سان استعمال ڪري سگهجي ٿو void، جهڙوڪ شاخون يا لوپ، جتي توهان طريقي سان فوري طور تي نڪرڻ چاهيو ٿا. اڳيون طريقي جي اعلان ۾ اسان وٽ هئا constructHelloSentence.

طريقن جا نالا

constructHelloSentence - طريقي جو نالو، هڪ مخصوص خصوصيت جنهن جي ذريعي اسان هڪ يا ٻئي طريقي ۾ فرق ڪري سگهون ٿا. ۽، مطابق، هڪ يا ٻيو طريقو سڏ. جاوا ۾ طريقا - 4طريقن جا نالا لازمي طور تي ننڍي اکر سان شروع ٿيڻ گهرجن، پر اُٺ جي صورت پڻ استعمال ڪريو (ڪيمل ڪيس، اٺ ڪيس): يعني. نالي ۾ هر ايندڙ لفظ پوئين لفظ جي ڀرسان هوندو آهي ۽ وڏي خط سان لکيو ويندو آهي. طريقن جي نالن کي طريقو بيان ڪرڻ گهرجي (بهترين تبصرو مناسب نالو آهي). ائين ڪرڻ لاءِ، فعل سان گڏ فعل يا مجموعا استعمال ڪريو: getCat, delete, createCar, وغيره. ھڪڙي طبقي جي اندر، طريقن جا نالا منفرد ھئڻ گھرجي (جيڪو ڳڻڻ جو طريقو اوورلوڊنگ نه آھي، جنھن بابت اسين ٿوري دير بعد ڳالهائينداسين). اچو ته ان طريقي تي وڌيڪ نظر رکون جيڪو اسان تجزيو ڪري رهيا آهيون ۽ ڏسو ( String name)

طريقا پيراگراف

طريقن ۾ ٿي سگھي ٿو (يا نه ٿي سگھي) ڪجھ ڊيٽا جيڪي ٻاهران ايندا، يعني جڳھ کان جتي طريقو سڏيو ويو ھو. اسان جي حالت ۾، اسان ڏسون ٿا ته هڪ قسم جي شيء Stringهڪ نالي سان اچي ٿي name۽ بعد ۾ اسان پنهنجي طريقي سان هن متغير کي استعمال ڪندا آهيون. توھان استعمال ڪري سگھوٿا لامحدود تعداد ۾ پيٽرول جو ھڪڙو طريقو، پر 7 کان وڌيڪ سفارش نه ڪئي وئي آھي. جڏهن اسان عناصرن جو صحيح تعداد نه ٿا ڄاڻون، پر اهي سڀئي عنصر ساڳئي مقصد لاء گهربل آهن ۽ هڪ ئي قسم جا هوندا (مثال طور، String)، هڪ ellipsis استعمال ڪيو ويندو آهي:
public void constructHelloSentence(String...name) {
 ...
}
هر عنصر جي اپيل هن طرح هوندي: name[0] ڇا اهو توهان کي ڪجهه ياد ڏياريندو آهي؟ اھو صحيح آھي، صفا! ڪجھ به تبديل نه ٿيندو جيڪڏھن اسين لکون:
protected void constructHelloSentence(String[] name) {
 ...
}
عناصر تائين رسائي به فارم جي آهي: name[1] ۽ هڪ وڌيڪ شيء. طريقي جا دليل حتمي ٿي سگهن ٿا :
public String constructHelloSentence(final String name) {
  ...
}
هن جو مطلب اهو آهي ته نالو جو حوالو هڪ خاص اعتراض سان پابند آهي String۽ ختم نه ٿو ڪري سگهجي. finalتوھان پڙھي سگھوٿا ريفرنس متغيرن سان ڪم ڪرڻ ۽ انھن جي رابطي کي محفوظ لفظن سان مواد ۾ " Reference Data Types in Java " ۾.

سڏڻ جا طريقا

تنهن ڪري، اسان طريقن جي تخليق کي ترتيب ڏنو آهي، هاڻي اچو ته انهن کي استعمال ڪرڻ بابت ڳالهايو. جاوا ۾ هڪ طريقو ڪيئن سڏجي؟ جاوا ۾ طريقا - 5جاوا ۾ هر طريقو هڪ ڪلاس ۾ آهي. سمجھڻ لاءِ ته جاوا ۾ ڪالنگ جا طريقا ڪيئن ڪم ڪن ٿا، اچو ته ھڪ ڪلاس وٺون:
public class StringConstructor {
  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
جيئن ته اسان جو طريقو جامد نه آهي (اهو بحث لاءِ هڪ الڳ موضوع آهي جيڪو اڄ جي مضمون جي دائري کان ٻاهر آهي)، ان کي سڏڻ لاءِ توهان کي پهريان هڪ اعتراض ٺاهڻو پوندو ۽ پوءِ ان تي طريقي کي ڪال ڪرڻ گهرجي:
class Application{
  public static void main(String[] args) {
     StringConstructor stringConstructor = new StringConstructor();
     stringConstructor.constructHelloSentence("Den");
  }
}
اسان جي طريقي جي دليلن ۾، اسان اسٽرنگ (نالو) کي منظور ڪيو جيڪو اسان اسڪرين تي ڏيکاريل نتيجن واري اسٽرنگ ۾ ڏسڻ چاهيون ٿا:

Hello world! My name is Den
اهو پڻ ياد رکڻ جي قابل آهي ته طريقن کي ٻيهر استعمال ڪري سگهجي ٿو ڪيترا ڀيرا اسان کي ضرورت آهي - ڪابه پابنديون ناهي.

هي

توھان اڪثر ڪري ڪوڊ ۾ لفظ ڏسي سگھو ٿا this، جيئن سيٽرز ۾:
public void setValue(Long value) {
   this.value = value;
}
۽ ان جو مطلب ڇا آهي؟ thisجاوا ۾، هي هن طبقي جي موجوده اعتراض جو حوالو آهي. مثال طور، جيڪڏهن اسان هڪ اعتراض ٺاهيو:
StringConstructor stringConstructor = new StringConstructor();
پوءِ thisاعتراض جي اندر stringConstructorساڳي شئي جي لنڪ هوندي. thisٻئي استعمال ڪيو ويندو آهي هڪ اعتراض متغير ڏانهن اشارو ڪرڻ لاء (جيئن مٿي سيٽٽر ۾) ۽ ڪجهه طريقي کي سڏڻ لاء. اسان پنهنجي ڪلاس کي ٿورڙي ٻيهر لکي سگهون ٿا:
public class StringConstructor {

  public String constructHelloSentence(String name) {
     String resultSentence = this.getSentence()  + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  private String getSentence() {
     return "Hello world! My name is ";
  }
}
جي ذريعي thisاسان هن اعتراض جي طريقي کي گهربل اسٽرنگ وٺڻ لاء سڏين ٿا. پر اڃا تائين، ضابطي جي طور تي، اهو تقريبا طريقن لاء استعمال نه ڪيو ويو آهي، ڇاڪاڻ ته ان کان سواء به هڪ ڏنل اعتراض جي طريقي جو حوالو آهي؛ اهو خاص طور تي استعمال ڪيو ويندو آهي هڪ اعتراض متغير لاء.

اوور لوڊ ڪرڻ جو طريقو

اچو ته چوندا آهيون ته اسان کي هڪ طريقو گهربل آهي جيڪو لازمي طور تي ساڳيو منطق انجام ڏئي ٿو، پر هڪ ۾ Hello world! ان جي بدران worldاسان پنهنجو لفظ داخل ڪرڻ چاهيون ٿا (string). پر اسان وٽ اڳ ۾ ئي هڪ طريقو آهي constructHelloSentence. تنهن ڪري، ڇا اسان کي هڪ طريقي سان نئين نالي سان اچڻ جي ضرورت آهي جيڪو لازمي طور تي ساڳيو ڪارڪردگي انجام ڏئي ٿو؟ ڪو مسئلو ناهي ته اهو ڪيئن آهي: هن وقت طريقو اوورلوڊنگ اسان جي مدد لاء اچي ٿو. جاوا ۾ طريقا - 7طريقو اوورلوڊنگ هڪ ئي طريقي جي نالي جو استعمال آهي هڪ کان وڌيڪ ڀيرا جڏهن ان کي ڪلاس ۾ اعلان ڪيو وڃي. ٻوليءَ جي نحو جي نقطي نظر کان، ڪنهن مقامي جاءِ تي ٻه هڪجهڙا نالا نٿا ٿي سگهن. پر اهو پڻ ممڪن آهي ته طريقن جو اعلان ساڳيو نالن سان پر مختلف دليلن سان. ٻين لفظن ۾، هڪ طبقو اوورلوڊ تي مشتمل آهي جڏهن ٻه يا وڌيڪ طريقا آهن ساڳيا نالن سان پر مختلف ان پٽ ڊيٽا:
public class Constructor {

  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  protected String constructHelloSentence(String firstName, String secondName) {
     String resultSentence = "Hello " + firstName + "! My name is " + secondName;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
هتي اسان ڏسون ٿا ته طريقن ۾ ساڳيو رسائي موڊيفائر شامل نه آهي (انهي سان گڏوگڏ واپسي جو قسم). جيڪڏهن هڪ اوورلوڊ ٿيل طريقو سڏيو وڃي ٿو، پوء ڪيترن ئي اعلان ڪيل طريقن مان مرتب ڪندڙ خودڪار طريقي سان طئي ڪري ٿو گهربل هڪ جي بنياد تي جيڪي ڪال دوران بيان ڪيا ويا آهن.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION