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

و

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

آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه

با سلام به همه دوستان و همراهان Itpro در ادامه مباحث زبان جاوا به بررسی شی گرایی در این زبان می پردازیم.

کلاس ها در جاوا

یک کلاس یک قالب برای اشیائی است که از آن ساخته می شود. به این معنی که کلاس مشخص می کند که شیئی که از این کلاس ساخته می شود باید چه ویژگی ها و چه رفتار هایی داشته باشد. همه اشیا از کلاس ها ساخته می شوند. در شکل زیر یک نمونه از کلاس را مشاهده می کنید.

public class Dog{
   int ageC
   String color;

   void barking(){
   }
   
   void hungry(){
   }
   
   void sleeping(){
   }
}

یک کلاس می تواند هرکدام از موارد زیر را داشته باشد.

  1. متغیر محلی: متغیری است که در داخل متدها و یا سازنده(constructor) ها و یا بلوک ها تعریف می شود. این متغیر ها در داخل متد و یا constructor و یا داخل یک بلوک کد تعریف می شوند و مورد استفاده قرار می گیرند و هنگامی که به پایان متد یا constructor رسیدیم از حافظه پاک خواهند شد.
  2. متغیر های عضو: متغیرهای نمونه متغیرهایی داخل کلاس هستند ولی داخل هیچ متد و یا بلوکی نیستند و بیرون از همه بلوک های موجود هستند. این متغیرها وقتی که از کلاس شی ساخته شد مقدار دهی می شوند. متغیرهای عضو از داخل همه ی متدها و constructor ها و بلوک های کلاس قابل دسترسی هستند.
  3. متغیر های کلاس: متغیرهایی هستند که در داخل کلاس تعریف شده اند ولی داخل هیچ متد یا بلوکی نیستند و داخل خود کلاس هستند. تفاوت این متغیر ها با متغیرهای عضو این است که این متغیر ها به صورت Static تعریف شده اند. یعنی برای تعریف آنها از به همراه نوع آنها از کلمه کلیدی static نیز استفاده شده است.

یک کلاس می تواند هر تعداد متد داشته باشد که می تواند به متغیرهای گفته شده دسترسی داشته باشد و متدهای دیگر را فراخوانی کند. در مثال بالا sleeping و hungry و barking به عنوان متد شناخته می شود. موارد مهمی که در باره ی کلاس ها وجود دارند در ادامه آورده شده اند.

Constructor

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

public class Puppy{
   public Puppy(){
   }

   public Puppy(String name){
      // This constructor has one parameter, name.
   }
}

ساخت یک شی

همانگونه که قبلا نیز گفتیم یک کلاس یک قالب است و یک شی از یک کلاس ساخته می شود. در جاوا ما با استفاده از کلمه کلیدی new شی خود را از کلاس می سازیم. سه مرحله برای ساخت یک شی از کلاس وجود دارد که به شکل زیر است.

  1. تعریف متغیر در این مرحله یک متغیر را از نوع همان کلاسی که می خواهیم از آن شی بسازیم تعریف می کنیم
  2. نمونه سازی با استفاده از کلمه کلیدی new یک نمونه جدید ایجاد می شود.
  3. مقدار دهی اولیه وقتی با استفاده از کلمه کلیدی new شی جدیدی ساخته می‌شود constructor فراخوانی می‌شود و این به معنی مقداردهی شی ساخته شده است.

نمونه‌هایی از ساخت شی جدید در کد زیر آمده است.

public class Puppy{

   public Puppy(String name){
      // This constructor has one parameter, name.
      System.out.println("Passed Name is :" + name ); 
   }
   
   public static void main(String []args){
      // Following statement would create an object myPuppy
      Puppy myPuppy = new Puppy( "tommy" );
   }
}

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

Passed Name is :tommy

دسترسی به متدها و متغیرهای عضو

همان گونه که گفتیم هر شی دارای متدها و متغیرهای عضو یا همان فیلد ها می باشند. که باید برای این که بتوان با اشیا کار کرد به این اعضا دسترسی داشت. برای این ه به فیلدها دسترسی داشته باشیم باید به شکل زیر عمل کنیم:

/* First create an object */
ObjectReference = new Constructor();

ObjectReference.variableName;

ObjectReference.MethodName();

طبق کد ابتدا باید یک شی جدید بسازیم سپس با استفاده از عملگر نقطه . به اعضای آن دسترسی داشت. برای مثال به مثال زیر دقت کنید.

public class ItPro {

    String url;

    public ItPro(String name){
        // This constructor has one parameter, name.
        System.out.println("Url chosen is :" + name );
    }

    public void setUrl( String webUrl ){
        url = webUrl;
    }

    public String getUrl( ){
        System.out.println("website url is :" + url);
        return url;
    }

    public static void main(String []args){
     
        ItPro webAddress = new ItPro( "tosinso.com" );

 
        webAddress.setUrl("programming.tosinso.com");

     
        webAddress.getUrl();

     
        System.out.println("Variable Value :" + webAddress.url);
    }
}

در این برنامه یک کلاس ItPro داریم که یک فیلد به نام url دارد و متدهایی به نام getUrl و setUrl دارد. که در طی برنامه از آن استفاده شده است. حال اگر کد بالا را اجرا کنیم خروجی به شکل زیر خواهد شد.

Url chosen is :tosinso.com
website url is :programming.tosinso.com
Variable Value :programming.tosinso.com

قوانین تعریف فایل های سورس

در این بخش به معرفی قوانین فایل های سورس می پردازیم:

  • در هر فایل سورس باید یک کلاس از نوع public وجود داشته باشد.
  • یک فایل سورس می تواند چند کلاس غیر public داشته باشد.
  • نام کلاس public باید با نام فایل سورس یکی باشد. پسوند فایل های سورس .java است. برای مثال در کد بالا باید نام فایل ItPro.java باشد.
  • اگر کلاس داخل یک پکیج ساخته شده باشد باید نام پکیج در خط اول فایل سورس باشد.
  • عبارات import باید بین خط پکیج و کلاس باشد. برای یک فایل سورس نمی شود که برای هر کلاس به طور جداگانه عبارت import نوشت. عبارات import برای اضافه کردن کتابخانه های مختلف به داخل برنامه به کار می روند.

کلاس چندین سطح دسترسی دارند و انواع کلاس های متفاوتی وجود دارد مانند کلاس های final و کلاس های abstract و ... که در بخش های بعدی هرکدام از این نوع ها را شرح خواهیم داد.

پکیج های جاوا

اگر بخواهیم اینترفیس ها و کلاس های جاوا را در زمان برنامه نویسی دسته بندی کنیم. در پروژه های بزرگ ممکن است که صدها کلاس در پروژه ما وجود داشته باشد که بدون دسته بندی بسیار نامنظم خواهد بود. بنابراین باید این فایل ها را با استفاده از پکیج ها دسته بندی کرد.

عبارات import

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

import java.io.*;

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

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

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

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

#برنامه_نویسی_شیء_گرا_در_جاوا #استفاده_از_کلاس_ها_در_جاوا #آموزش_برنامه_نویسی_جاوا #ارتباط_بین_کلاس_ها_در_جاوا #آموزش_برنامه_نویسی_شئ_گرا #مفاهیم_شیء_گرایی_در_جاوا #آموزش_شیء_گرایی_در_جاوا #معرفی_کلاس_های_جاوا #شیء_گرایی_در_جاوا #دوره_آموزشی_جاوا
عنوان
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
2 نظر
مرتضی عباسی

ممنونم فقط کاش کمی درباره تفاوت method و constructor بیشتر توضیح می دادید ... و کلیه خطهای فرمان مثل جلسات قبل کامل توضیح داده میشد ... سپاس ...

amaki

خیلی ممنون به خاطر آموزشتون . عالی بود .

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

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