CodeGym /جاوا بلاگ /Random-SD /جاوا متغير
John Squirrels
سطح
San Francisco

جاوا متغير

گروپ ۾ شايع ٿيل
هن آرٽيڪل ۾، اسان سڀني جاوا سکندڙن کي وضاحت ڪرڻ وارا آهيون ته جاوا متغير آهن ۽ انهن سان ڪيئن ڪم ڪجي.

Java variable ڇا آهي

جاوا ۾ هڪ متغير هڪ باڪس وانگر سمجهي سگهجي ٿو. هي "باڪس" هڪ خاص سائيز آهي: ياداشت جيڪا ان لاء مختص ڪئي وئي آهي. ڪيتري ميموري مختص ڪئي ويندي متغير جي قسم تي منحصر آهي، پر اسان ان بابت ٿوري دير بعد ڳالهائڻ وارا آهيون. ساڳئي وقت، دٻي جي ماپ پاڻ کي ان جي ٺهڻ کان پوء تبديل نه ٿو ڪري سگهجي، پر مواد ڪري سگهو ٿا. باڪس خالي ٿي سگھي ٿو. توھان ان ۾ ڪجھ قدر "داخل" ڪري سگھو ٿا، ۽ پوء ڪڍي سگھو ٿا ۽ ڪجھ ٻيو قدر رکو. اهڙيء طرح، هڪ متغير هڪ فيلڊ آهي جيڪو جاوا پروگرام جي عمل دوران ڊيٽا جي قيمتن کي محفوظ ڪري ٿو. هن باڪس ۾ اهم خاصيتون آهن:
  • اهو هميشه صرف هڪ قدر تي مشتمل ٿي سگهي ٿو (يا خالي ٿي سگهي ٿو، انهي صورت ۾ اهو ڊفالٽ قيمت تي مشتمل هوندو)،
  • اهو هڪ ڊيٽا جو قسم آهي. ان جي سائيز جو دارومدار ڊيٽا جي قسم تي آهي، ان سان گڏوگڏ ميموري جي ڪهڙي خاص حصي تي ان لاءِ جاءِ مختص ڪئي وئي آهي (جتي اهو آهي).
جاوا ۾ متغير - 1

متغير کي ڪيئن بيان ڪجي

جاوا ۾ متغيرن جو اعلان ڪرڻ لاءِ، توھان کي ان جو قسم ۽ نالو بيان ڪرڻو پوندو. هتي ٽن متغيرن کي بيان ڪرڻ جو هڪ مثال آهي:
int myInt;
String s;
Object variableName;
هتي int ، String ، ۽ Object ڊيٽا جي قسم آهن ۽ myInt ، s ، variableName متغير جا نالا آهن. ڊيٽا جو قسم چونڊيو وڃي پروگرام جي ضرورتن جي بنياد تي، ۽ اهو بهتر آهي ته نالو چونڊيو وڃي ته جيئن اهو واضح ٿئي ته اهو ڇا آهي. يقينا، شروعات ڪندڙن لاءِ اهو ايترو سخت ناهي، پر وڏن منصوبن ۾، متغير نالا جهڙوڪ 's' ڪوڊ جي پڙهڻ جي صلاحيت کي خراب ڪري سگهن ٿا. تنهن ڪري اهو بهتر آهي ته متغيرن کي اهڙي طريقي سان نالو ڏيڻ لاءِ استعمال ڪيو وڃي جنهن سان اهو واضح ٿئي ته اهي شروع کان ئي ڪهڙي لاءِ آهن. سبب جي اندر، يقينا.

variables کي ڪيئن شروع ڪجي

جڏهن توهان هڪ متغير جو اعلان ڪيو ٿا، توهان ان لاءِ ميموري مختص ڪندا آهيو. شروعات ڪرڻ جو مطلب اهو آهي ته توهان هڪ خاص قدر کي "بڪس" ۾ وجهي ڇڏيو. اهو ٿي سگهي ٿو فوري طور تي variable جي اعلان دوران يا بعد ۾. انهي سان گڏ، هڪ متغير جو قدر پروگرام جي عمل جي دوران تبديل ٿي سگهي ٿو. مثال:
public class VariableTest {
    public static void main(String[] args) {
        int myInt = 5;
        String s;
        s = "init";
        System.out.println(s);
        s = s+5;
        System.out.println(s);
    }
}
هتي اسان myInt variable کي هڪ لڪير ۾ قرار ڏنو ۽ ان جي شروعات ڪئي ، ان لاءِ فوري طور تي ميموري مختص ڪئي (هر انٽ نمبر لاءِ 32 بٽ)، ان کي نالو ڏنو، ۽ پوءِ مختص ڪيل ميموري ۾ قدر 5 رکيا. پوءِ اسان اعلان ڪيو ته اسان اسٽرنگ s لاءِ ميموري اسپيس مختص ڪري رهيا هئاسين ، ۽ اڳ ۾ ئي هڪ الڳ ڪمانڊ ان ۾ "init" جي قيمت رکي ٿو. ان کان پوء، اسان اسٽرنگ کي پرنٽ ڪيو ۽ متغير جي قيمت کي تبديل ڪيو s . هن پروگرام ۾، اسان سٽون ڇپائي ڇڏيون، ۽ جيڪڏهن توهان ان کي هلائيندا، ته توهان هيٺ ڏنل نتيجو ڏسندا:
init init5

جاوا ۾ ڊيٽا جا قسم متغيرات: ابتدائي ۽ غير ابتدائي

جاوا ۾ ڊيٽا جي قسمن جا متغير ٻن گروپن ۾ ورهايل آهن:
  • پرائمري ڊيٽا جي قسمن ۾ شامل آهن بائيٽ ، مختصر ، int ، ڊگهو ، فلوٽ ، ڊبل ، بوليان ، ۽ چار
  • غير پرائمري ڊيٽا جا قسم جهڙوڪ String ، Arrays ، ۽ Classes
هتي متغير سان ڪم ڪرڻ جو هڪ مثال آهي:
public class VariableTest {
   public static void main(String[] args) {

       int myInt = - 5;               // integer (whole number)
       float myFloat = 2.718281828459045f;    // Floating point number
       char myLetter = 'a';         // character
       boolean myBool = true;       // boolean
       String myText = "Hero";     // String
       System.out.println(myInt + " " +
               myFloat +" " + myLetter + " " +  myBool + " " + myText);
       Student myStudent = new Student("Walker","Johnny", "Kyle", null);

   }
}
int ، char ، boolean ۽ float primitives آهن. اسٽرنگ غير ابتدائي آهي. myStudent variable بابت ڇا ؟ هي صارف جي ٺاهيل ڪلاس شاگردن جو هڪ اعتراض آهي . اهو ٺاهيو ويو صرف ڪم کي بيان ڪرڻ لاءِ غير ابتدائي متغيرن سان. اهي جاوا ۾ اڪثريت آهن، ڇاڪاڻ ته هن پروگرامنگ ٻولي ۾ تقريبن هر شيء هڪ اعتراض آهي. سمجھڻ لاءِ، ھتي آھي شاگردن جي ڪلاس جو ڪوڊ :
import java.util.Date;

public class Student {
   String surname;
   String name;
   String secondName;
   Long birthday; // Long instead of long is used by Gson/Jackson json parsers and various orm databases

   public Student(String surname, String name, String secondName, Date birthday ){
       this.surname = surname;
       this.name = name;
       this.secondName = secondName;
       this.birthday = birthday == null ? 0 : birthday.getTime();
   }

   @Override
   public int hashCode(){
       //TODO: check for nulls
       //return surname.hashCode() ^ name.hashCode() ^ secondName.hashCode() ^ (birthday.hashCode());
       return (surname + name + secondName + birthday).hashCode();
   }
   @Override
   public boolean equals(Object other_) {
       Student other = (Student)other_;
       return (surname == null || surname.equals(other.surname) )
               && (name == null || name.equals(other.name))
               && (secondName == null || secondName.equals(other.secondName))
               && (birthday == null || birthday.equals(other.birthday));
   }
}

جاوا ۾ متغير جا قسم: مقامي، مثال، ۽ جامد

جاوا ۾ ٽي مختلف قسم جا متغير آهن، اسان انهن کي هن ريت درج ڪيو آهي:
  1. مقامي متغير
  2. مثال متغير
  3. جامد متغير

مقامي متغير

طريقي جي جسم جي اندر بيان ڪيل هڪ متغير کي مقامي متغير سڏيو ويندو آهي. انهي سان گڏ، مقامي متغير تعمير ڪندڙ ۽ بلاڪ جي اندر بيان ڪيا ويا آهن. توھان مقامي متغير استعمال ڪري سگھوٿا صرف ان طريقي ۾، ٺاھيندڙ، يا بلاڪ جتي اھي ٺاھيا ويا آھن ۽ ڪلاس ۾ ٻيا طريقا به خبر نه آھن ته متغير موجود آھي. تنهنڪري مقامي متغير ٺاهيا ويندا آهن جڏهن طريقو، تعمير ڪندڙ، يا بلاڪ داخل ڪيو ويندو آهي ۽ متغير تباهه ٿي ويندو آهي جڏهن طريقو، تعمير ڪندڙ، يا بلاڪ ڪم نه ڪندو آهي. هڪ مقامي متغير کي جامد لفظ سان بيان نٿو ڪري سگهجي . اڃا به وڌيڪ: توهان مقامي متغيرن لاءِ رسائي موڊيفائر استعمال نٿا ڪري سگهو. هتي هڪ مثال آهي:
public class VariableTest {
   public static void main(String[] args) {
       System.out.println(myMethod("C plus "));
   }
           private static String myMethod(String myString) {
       String myOtherString = "plus";
       return myString + myOtherString;
   }
}
هتي myOtherString هڪ مقامي متغير آهي. توھان ان کي ٻئي طريقي سان استعمال نٿا ڪري سگھو، پر myMethod . مقامي متغيرن کي ڊفالٽ قدر نه ٿي سگھي. جيڪڏهن پروگرام ۾ گهٽ ۾ گهٽ هڪ مقامي متغير شروع نه ڪيو ويو آهي، پروگرام صحيح ڪم نه ڪندو. اچو ته پوئين مثالن مان هڪ ۾ هڪ ننڍڙي تبديلي ڪريون ۽ "وساريو" کي شروع ڪرڻ لاءِ myBool متغير:
public class VariableTest {
   public static void main(String[] args) {

       int myInt = - 5;               // integer (whole number)
       float myFloat = 2.718281828459045f;    // Floating point
       char myLetter = 'a';         // character
       boolean myBool;       // boolean
       String myText = "Hero";     // String
       System.out.println(myInt + " " +
               myFloat +" " + myLetter + " " +  myBool + " " + myText);
       Student myStudent = new Student("Walker","Johnny", "Kyle", null);

   }
}
جيڪڏهن اسان پروگرام کي هلائڻ جي ڪوشش ڪندا، اهو هڪ غلطي اڇلائي ڇڏيندو:
غلطي:(10, 50) java: متغير myBool شايد شروعات نه ڪئي وئي هجي

مثال متغير

ڪلاس جي اندر بيان ڪيل متغير پر ڪنهن به طريقي، تعمير ڪندڙ يا بلاڪ جي جسم کان ٻاهر هڪ مثالي متغير سڏيو ويندو آهي. مثال متغير ٺاهيا ويندا آهن جڏهن هڪ اعتراض نئين لفظ استعمال ڪندي ٺاهيو ويندو آهي. اهو تباهه ٿي ويندو آهي جڏهن اعتراض تباهه ٿي ويندو آهي. اهو جامد قرار نه ٿو ڏئي سگهجي، پر توهان استعمال ڪري سگهو ٿا رسائي موڊيفائرز لاءِ مثال متغير. مثال متغير ڪلاس ۾ سڀني طريقن، تعمير ڪندڙ ۽ بلاڪ لاء نظر اچن ٿا. عام طور تي مثال متغير پرائيويٽ هوندا آهن، پر توهان ذيلي طبقن جي نمائش کي تبديل ڪري سگهو ٿا. مثالي متغير مقامي متغيرن جي مقابلي ۾ ڊفالٽ قدر آهن. سڀني نمبرن جي ابتدائي قسمن لاءِ ڊفالٽ قدر 0 آھي، بولين لاءِ اھو غلط آھي، ۽ اعتراض جي حوالن لاءِ اھو null آھي. قيمتون مقرر ڪري سگھجن ٿيون اعلان دوران يا تعمير ڪندڙ جي اندر. هتي هڪ مثال آهي:
//instance variable example
public class Employee {

   // here we have a public instance variable. It is visible for this class and child classes
   public String name;

   //this instance variable is private so it’s visible for the Employee class only. You can use setters and getters to get it
   private double salary;

   public Employee (String empName) {
       name = empName;
   }

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   public double getSalary() {
       return salary;
   }

   public void setSalary(double employeeSalary) {
       salary = employeeSalary;
   }

   public static void main(String args[]) {
       Employee employee = new Employee("Johnny");
       employee.setSalary(1500);
       System.out.println("name = " + employee.getName());
       System.out.println("salary = " + employee.getSalary());
   }
}

جامد متغير

هڪ متغير جنهن کي جامد قرار ڏنو وڃي ٿو ان کي جامد متغير سڏيو ويندو آهي. جاوا توهان کي پيش ڪري ٿو اهڙي قسم جي متغيرن جو اعلان ڪرڻ لاءِ هڪ طريقو، تعمير ڪندڙ يا بلاڪ کان ٻاهر. اهو مقامي نه ٿو ٿي سگهي، اهي طبقي سان تعلق رکن ٿا، مثالن سان نه. ان جو مطلب اهو آهي ته هڪ جامد متغير جي هڪ ڪاپي هڪ ڀيرو ٺاهي وئي ۽ ڪلاس جي سڀني مثالن ۾ حصيداري ڪئي وئي. جامد متغيرن لاءِ ميموري مختص صرف هڪ ڀيرو ٿيندي آهي جڏهن ڪلاس ميموري ۾ لوڊ ڪيو ويندو آهي. انهن وٽ ڪا به نمائش ٿي سگهي ٿي، پر عام طور تي انهن کي عوامي قرار ڏنو ويندو آهي. انهن وٽ پڻ ڊفالٽ قدر آهن جهڙوڪ مثال متغير.
public class Box
{
   public void add(int data)
   {
       Storage.sum = Storage.sum + data;
       Storage.count++;
   }

   public void remove(int data)
   {
       Storage.sum = Storage.sum - data;
       Storage.count--;
   }
}

public class Storage
{
   public static int count = 0;
   public static int sum = 0;
}
مٿي ڏنل مثال ۾، اسان هڪ الڳ اسٽوريج ڪلاس ٺاهيو، ان ۾ ڳڻپ ۽ رقم جي متغير کي منتقل ڪيو، ۽ انهن کي مستحڪم قرار ڏنو. عوامي جامد متغيرن کي ڪنهن به پروگرام جي طريقي سان رسائي سگهجي ٿو (۽ نه صرف هڪ طريقي سان). جيڪو توهان سکيو ان کي مضبوط ڪرڻ لاءِ، اسان توهان کي اسان جي جاوا ڪورس مان هڪ وڊيو سبق ڏسڻ جي صلاح ڏيون ٿا
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION