موضوعات و کلاس‌ها در جاوا

موضوعات و کلاس‌ها در جاوا
خرداد ۹, ۱۳۹۸ No Comments javascript زهرا ابراهیمی

همانطور که در پست قبلی توضیح داده شد در این مطلب قرار است در مورد موضوعات و کلاس‌ها در برنامه‌نویسی جاوا صحبت کنیم در این آموزش مثال های ساده‌ای مربوط به موضوعات و کلاس‌ها ذکر کرده‌ایم  امید است با خواندن کامل این مقاله، شما قادر باشید تصویری واضح از آنچه که موضوعات و کلاس‌ها در جاوا هستند را تجسم کنید. پس در ادامه با ما همراه باشید.

 به شما پیشنهاد میکنیم قبل از مطالعه این پست، نگاهی هم به مطلب دستور زبان جاوا بیندازید.

جاوا یک‌زبان موضوع گرا است. به عنوان یک‌زبان که دارای ویژگی موضوع گرایی است، جاوا از مفاهیم اساسی زیر پشتیبانی می‌کند.

  • پلی مورفیسم
  • وراثت
  • کپسوله سازی
  • چکیدگی
  • کلاس‌ها
  • موضوعات
  • نمونه
  • روش
  • تجزیه‌وتحلیل پیام

در این فصل، ما به مفاهیم موضوعات و کلاس‌ها نگاهی خواهیم داشت.

  • موضوع: موضوعات دارای حالت و رفتار هستند. به عنوان مثال: سگ دارای حالت‌هایی است – رنگ، نام، نژاد و همچنین رفتارهایی مانند تکان دادن دم، پارس کردن ، خوردن. یک موضوع یک نمونه از یک کلاس است.
  • کلاس : یک کلاس می‌تواند به عنوان یک قالب / طرح تعریف شود که رفتار / حالت را مشخص می‌کند که از نوع موضوع آن پشتیبانی می‌کند.

موضوعات در جاوا

با ما همراه باشید تا نگاهی دقیق به موضوعات داشته باشیم. اگر ما دنیای واقعی را در نظر بگیریم، می‌توانیم بسیاری از اشیاء را در اطرافمان، اتومبیل‌ها، سگ‌ها، انسان‌ها و غیره پیدا کنیم. همه این اجسام دارای حالت و رفتار هستند.

اگر ما یک سگ را در نظر بگیریم، حالت و وضعیت آن شامل- نام، نژاد، رنگ، و رفتار آن مانند تکان دادن دم، پارس کردن و دویدن است.

اگر شما موضوع نرم‌افزار را با یک شیء دنیای واقعی مقایسه کنید، آن‌ها ویژگی‌های بسیار مشابه دارند.

موضوعات نرم‌افزاری نیز حالت و رفتار دارند. حالت شیء نرم‌افزاری در زمینه‌ها ذخیره می‌شود و رفتار از طریق روش‌ها نشان داده می‌شود.

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

کلاس‌های جاوا

کلاس یک طرح است که از موضوعات منحصربه‌فرد ایجاد می‌شود.

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

مثال

}public class Dog

  ; String breed

 ;  int age

  ; String color

  }()void barking

  {

}   ()void hungry

   {

}() void sleeping

  {

{

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

متغیرهای محلی – متغیرهایی که درون روش‌ها، سازندگان یا بلوک‌ها تعریف می‌شوند متغیرهای محلی نامیده می‌شوند. متغیر در این روش اعلام و راه‌اندازی خواهد شد و زمانی که روش کامل می‌شود، متغیر از بین می‌رود.

متغیرهای نمونه – متغیرهای نمونه متغیرهای درون یک کلاس هستند اما خارج از هر روش هستند. این متغیرها هنگامی‌که کلاسی معرفی می‌شود ، مقداردهی اولیه می‌شوند. از داخل هر روش، سازنده یا بلوک‌های یک کلاس خاص می‌توان به متغیرهای نمونه دسترسی پیدا کرد مشاهده کرد.

متغیرهای کلاس – متغیرهای کلاس متغیرهایی هستند که درون یک کلاس، بیرون از هر روش، با کلیدواژه استاتیک معرفی می‌شوند.

یک کلاس می‌تواند هر تعداد روش برای دسترسی به ارزش روش‌های مختلف را داشته باشد. در مثال بالا، barking()، hungry() و sleeping() روش‌ها هستند.

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

 

سازندگان

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

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

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

مثال

}public class Puppy

  } () public Puppy

   {

 }  public Puppy(String name)

      .This constructor has one parameter, name//

   {

{

جاوا همچنین از کلاسهای یگانه(Singleton) پشتیبانی می‌کند که در آن شما می‌توانید تنها یک نمونه از یک کلاس را ایجاد کنید.

توجه – ما دو نوع سازنده داریم. در بخش‌های بعدی جزئیات سازندگان را موردبحث قرار خواهیم داد.

ایجاد یک موضوع

همان‌طور که قبلاً ذکر شد، یک کلاس طرح‌هایی را برای موضوعات فراهم می‌کند. بنابراین اساساً یک موضوع از یک کلاس ایجاد می‌شود. در جاوا، کلمه کلیدی جدید برای ایجاد موضوع جدید استفاده می‌شود.

برای ایجاد یک موضوع از یک کلاس سه مرحله به شرح زیر وجود دارد

  • بیان کردن – اعلام متغیر با یک نام متغیر با نوع موضوع.
  • ایجاد یک نمونه واقعی – کلمه کلیدی ‘new’ برای ایجاد موضوع مورداستفاده قرار می‌گیرد.
  • مقداردهی اولیه- کلمه کلیدی “new” با فراخوانی یک سازنده دنبال می‌شود. این مقداردهی اولیه موضوع جدید را فرخوانی می‌کند.

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

مثال

  نسخه‌ی نمایشی زنده

}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”

   {

}

اگر ما برنامه فوق را کامپایل و اجرا کنیم، نتیجه زیر تولید خواهد شد:

خروجی

Passed Name is :tommy

دسترسی به متغیرها و روش‌های نمونه

دسترسی به متغیرها و روش‌های نمونه از طریق موضوعات ایجاد شده میسر می‌شود. برای دسترسی به یک متغیر نمونه، در ادامه یک مسیر بسیار عالی ارائه شده است.

 

/* First create an object */

()ObjectReference = new Constructor

/* Now call a variable as follows */

;ObjectReference.variableName

/* Now you can call a class method as follows */

()ObjectReference.MethodName

مثال

این مثال نحوه دسترسی به متغیرها و روش‌های یک کلاس را توضیح می‌دهد.

نسخه‌ی نمایشی زنده

 

}public class Puppy

;   int puppyAge

 }public Puppy(String name)

      .This constructor has one parameter, name//

     ;( System.out.println(“Name chosen is :” + name

   {

}   public void setAge( int age )

      puppyAge = age;

   {

}() public int getAge

; ( System.out.println(“Puppy’s age is :” + puppyAge

    ; return puppyAge

   {

}   public static void main(String []args)

      /* Object creation */

 ; Puppy myPuppy = new Puppy( “tommy” )

      /* Call class method to set puppy’s age */

    ; myPuppy.setAge( 2 )

      /* Call another class method to get puppy’s age */

;  ( ) myPuppy.getAge

      /* You can access instance variable as follows as well */

  ; System.out.println(“Variable Value :” + myPuppy.puppyAge )

   {

{

اگر ما برنامه فوق را کامپایل و اجرا کنیم، نتیجه زیر ایجاد خواهد شد:

خروجی

Name chosen is :tommy

Puppy’s age is :2

Variable Value :2

قوانین بیان فایل منبع

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

  • در یک پرونده منبع تنها یک کلاس عمومی وجود دارد.
  • یک فایل منبع می‌تواند چندین کلاس غیر عمومی داشته باشد.
  • نام کلاس عمومی باید هم نام فایل منبع باشد و باید در انتهای آنjava. اضافه شود. به عنوان مثال: اگر نام کلاس کلاس {}Employee Public باشد، نام فایل منبع باید به صورت Employee.java تعریف گردد.
  • اگر کلاس در داخل یک پکیج تعریف شده باشد، شرح پکیج باید اولین عبارت در فایل منبع باشد.
  • اگر شرح فراخوانی وجود داشته باشد، آن‌ها باید بین شرح پکیج و کلاس بیان شوند. اگر بیان پکیج وجود نداشته باشد، شرح فراخوانی باید در خط اول فایل منبع آورده شود.
  • شرح فراخوانی و پکیج به تمام کلاس‌های موجود در فایل منبع اشاره دارد. شرح مختلف فراخوانی و / یا پکیج به کلاس‌های مختلف در فایل منبع امکان پذیر نیست.

کلاس‌ها دارای سطوح مختلف دسترسی هستند و انواع مختلفی از کلاس وجود دارد؛ کلاس‌های انتزاعی، کلاس‌های نهایی، و غیره. ما درباره تمامی این موارد در فصل اصلاحگرهای دسترسی توضیح خواهیم داد.

به غیر از کلاس‌های فوق ذکر شده، جاوا همچنین دارای برخی کلاس‌های ویژه ای است که کلاسهای داخلی و کلاسهای بی نام  نامیده می‌شوند.

پکیج جاوا

به عبارت ساده، این یک روش طبقه بندی کلاس‌ها و رابطها است. ضمن توسعه برنامه های کاربردی در جاوا، صدها کلاس و رابط نوشته شده است، بنابراین طبقه بندی این کلاس‌ها به منظور آسانتر شدن دسترسی امری ضروری است.

بیان های فراخوانی

در جاوا اگر یک نامگذاری کامل که شامل بسته و نام کلاس باشد انجام شود، کامپایلر به آسانی می‌تواند کد منبع یا کلاس‌ها را پیدا کند. بیان فراخوانی یک راه برای دادن مکان مناسب به کامپایلر برای پیدا کردن یک کلاس خاص است.

برای مثال، خط زیر از کامپایلر می خواهد تمام کلاس‌های موجود در فهرست راهنما را بارگذاری کند.

java_installation / java / io –

فراخوانی *java.io.؛

مطالعه موردی ساده

برای مطالعه موردی ما دو کلاس ایجاد خواهیم کرد. آن‌ها Employee & EmployeeTest هستند.

اولین قدم notepad را باز کنید و کد زیر را در آن ایجاد کنید. به یاد داشته باشید کلاس کارمند یک کلاس عمومی است. حالا این فایل منبع با نام Employee.java را ذخیره کنید.

کلاس کارمند دارای چهار متغیر نمونه – نام، سن، عنوان شغلی و حقوق می‌باشد. کلاس دارای یک سازنده است که به‌طور ضریح تعریف شده است و یک پارامتر را می‌گیرد.

مثال

 

;*.import java.io

}public class Employee

; String name

; int age

; String designation

; double salary

This is the constructor of the class Employee//

 } public Employee(String name)

;   this.name = name

   {

   .Assign the age of the Employee  to the variable age//

} public void empAge(int empAge)

    ; age = empAge

   {

   /* Assign the designation to the variable designation.*/

}   public void empDesignation(String empDesig)

; designation = empDesig

   {

   /* Assign the salary to the variable salary.*/

 }  public void empSalary(double empSalary)

;  salary = empSalary

   {

   /* Print the Employee details */

  }() public void printEmployee

     ; System.out.println(“Name:”+ name )

     ; System.out.println(“Age:” + age )

    ; System.out.println(“Designation:” + designation )

  ;  System.out.println(“Salary:” + salary)

   {

{

همان‌طور که قبلاً در این آموزش ذکر شد، پردازش از روش main شروع می‌شود. بنابراین، برای اینکه ما این کلاس کارمند را اجرا کنیم، باید یک روش main و موضوعات ایجاد شود. ما برای این وظایف یک کلاس جداگانه ایجاد خواهیم کرد.

در زیر کلاس EmployeeTest که دو نمونه از کلاس Employee و روش‌ها را برای هر موضوع برای اعلان مقادیر برای هر متغیر فراخوانی ایجاد می کنیم.

کد زیر را در فایل EmployeeTest.java ذخیره کنید.

;*.import java.io

}public class EmployeeTest

}   public static void main(String args[])

      /* Create two objects using constructor */

 ; Employee empOne = new Employee(“James Smith”)

 ;  Employee empTwo = new Employee(“Mary Anne”)

  Invoking methods for each object created//

;  empOne.empAge(26)

;  empOne.empDesignation(“Senior Software Engineer”)

     ; empOne.empSalary(1000)

; ()  empOne.printEmployee

    ;  empTwo.empAge(21)

  ; empTwo.empDesignation(“Software Engineer”)

 ; empTwo.empSalary(500)

;() empTwo.printEmployee

   {

{

حالا، هر دو کلاس را کامپایل کنید و سپس EmployeeTest را اجرا کنید تا نتیجه را به صورت زیر مشاهده کنید.

خروجی

C:> javac Employee.java

C:> javac EmployeeTest.java

C:> java EmployeeTest

Name:James Smith

Age:26

Designation:Senior Software Engineer

Salary:1000.0

Name:Mary Anne

Age:21

Designation:Software Engineer

Salary:500.0

موضوع مطلب بعدی چیست؟

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

tutorialspoint

Tags
درباره نویسنده

Leave a reply

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *