شما می توانید با عضویت در انجمن پرسش و پاسخ درسمن هرگونه سوالی دارید را مطرح کنید


شی گرایی در زبان جاوا (interface)


شی گرایی در زبان جاوا (interface)
برای دانلود و دیدن آنلاین این درس نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

اینترفیس |Interface 
اینترفیس ها دو ویژگی خیلی بزرگ به ما  میدهند:
انتزاعی سازی 100%
امکان ارث بری چند گانه
یعنی در مبحث کلاس ها اجازه نداشتیم که یک کلاس را به صورت همزمان فرزند دو کلاس کنیم، اما ما میتوانیم در این مبحث یک کلاس را فرزند دو اینترفیس کنیم.
برای تعریف اینترفیس لازم نیست از ایجاد کلاس ها استفاده کنیم؛ در همان پنجره ای که کلاس ایجاد میکردیم از گزینه interface استفاده میکنیم.
در اینترفیس ها یا متد داریم یا فیلد؛ اگر ما فیلدی را تعریف کنیم فیلد ما به صورت پیشفرض استاتیک و final و public میباشد.
متدی که در اینترفیس تعریف میکنیم نباید بدنه داشته باشد؛ متد هایی که در اینترفیس تعریف میشوند به صورت پیشفرض public وAbstract هستند یعنی اگر بخواهیم برای اینترفیس ها فرزند تعریف کنیم باید تابع ها را در فرزندان دوباره نویسی کنیم و بدنه تابع را مشخص کنیم.
اگر بخواهیم یک کلاس را فرزند یک اینترفیس کنیم باید بعد از نام کلاس فرزند، از کلمه implements استفاده کنیم.

 

package package1;

public class ChildClass1 implements IA{

	@Override
	public void Print() {

		
	}

}


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

package package1;

public class MainClass {

	public static void main(String[] args) {
		IA obj1=new ChildClass1();
		IA obj2=new ChildClass2();

	}

}


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

package package1;

public class MainClass {

	public static void main(String[] args) {
		IA obj1=new ChildClass1();
		IA obj2=new ChildClass2();
		
		obj1.Print();
		obj2.Print();

	}

}


اما از جاوای 8 به بعد دو اتفاق جالب افتاد، یکی این که ما میتوانیم داخل اینترفیس ها متد های default تعریف کنیم و این متد ها میتوانند بدنه داشته باشند:
 

 package package1;

public interface IA {
	float PI=3.14f;
	
	void Print();
	default void TestPrint() {
		System.out.println("Hello...");
	}
}


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

package package1;

public interface IA {
	float PI=3.14f;
	
	void Print();
	default void TestPrint() {
		System.out.println("Hello...");
	}
	
	static int Sum(int a,int b) {
		return a+b;
	}
}


برای استفاده از این کد ها به شکل زیر عمل میکنیم:
 

package package1;

public class MainClass {

	public static void main(String[] args) {
		IA obj1=new ChildClass1();
		IA obj2=new ChildClass2();
		
		obj1.Print();
		obj2.Print();
		
		obj1.TestPrint();
		obj2.TestPrint();
		
		System.out.println(IA.Sum(23, 45));
		System.out.println(IA.PI);
	}

}


همانطور که در اول این جلسه توضیح دادیم یک کلاس معمولی نمیتواند از دو کلاس همزمان ارث بری کند اما میتواند از دو اینترفیس ارث بری کند
در اینجا ما میخواهیم کلاس ChildClass3 از دو اینترفیس IA و IB ارث بری کند:

 

package package1;

public class ChildClass3 implements IA,IB{

	@Override
	public void Show() {
		
		
	}

	@Override
	public void Print() {
		
	}

}


خود اینترفیس ها نیز میتوانند از هم ارث بری کنند؛ مثلا اگر یک اینترفیس دیگر داشته باشیم که قرار است فرزند یک اینترفیس باشد از کلمه extends استفاده میکنیم به شکل زیر:
 

package package1;

public interface IC extends IB{

}


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

package package1;

public class ChildClass4 implements IC{

	@Override
	public void Show() {
		
	}

	@Override
	public void Message() {
		
	}

}

 


برچسب ها :

اینترفیس ها در جاوا شی گرایی در جاوا

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.
26 جلسه برای دوره رایگان آموزش جاوا - مقدماتی تا متوسط

درس 1
مقدمه ای بر زبان برنامه نویسی جاوا
28 دقیقه / رایگان

درس 2
نصب و راه اندازی و ایجاد اولین برنامه در eclipse
30 دقیقه / رایگان

درس 3
ساختار کلی برنامه در زبان جاوا
17 دقیقه / رایگان

درس 4
ساختار کلی برنامه در زبان جاوا (بخش دوم)
18 دقیقه / رایگان

درس 5
عملگر ها در زبان جاوا
49 دقیقه / رایگان

درس 6
چاپ اطلاعات در خروجی در زبان جاوا
30 دقیقه / رایگان

درس 7
دریافت داده از ورودی (کاربر) در زبان جاوا
29 دقیقه / رایگان

درس 8
تولید داده تصادفی و آشنایی با کلاس Random در زبان جاوا
19 دقیقه / رایگان

درس 9
دستورات کنترل اجرای برنامه (if, if-else) در زبان جاوا
23 دقیقه / رایگان

درس 10
دستور کنترلی switch-case در زبان جاوا
21 دقیقه / رایگان

درس 11
حلقه تکرار for در زبان جاوا
22 دقیقه / رایگان

درس 12
دستورات While و Do-While در زبان جاوا
27 دقیقه / رایگان

درس 13
شی گرایی در زبان جاوا (مفاهیم پایه)
33 دقیقه / رایگان

درس 14
شی گرایی در زبان جاوا (سطوح دسترسی به اعضای کلاس)
30 دقیقه / رایگان

درس 15
شی گرایی در زبان جاوا (Getter-setter)
40 دقیقه / رایگان

درس 16
شی گرایی در زبان جاوا (متدهای سازنده و اعضای استاتیک)
29 دقیقه / رایگان

درس 17
شی گرایی در زبان جاوا (وراثت)
25 دقیقه / رایگان

درس 18
شی گرایی در زبان جاوا (چند ریختی یا پلی مورفیسم Polymorphism)
29 دقیقه / رایگان

درس 19
شی گرایی در زبان جاوا (کلاس abstract )
25 دقیقه / رایگان

درس 20
شی گرایی در زبان جاوا (interface)
21 دقیقه / رایگان

درس 21
آرایه های یک بعدی در زبان جاوا
40 دقیقه / رایگان

درس 22
آرایه های دو بعدی و لیست ها در زبان جاوا
34 دقیقه / رایگان

درس 23
HashMap و Enum ها در زبان جاوا
28 دقیقه / رایگان

درس 24
آموزش رشته ها در جاوا
38 دقیقه / رایگان

درس 25
کنترل خطا و استثنا ها در جاوا
30 دقیقه / رایگان

درس 26
برخورد با استثناها در جاوا
27 دقیقه / رایگان

دوره رایگان آموزش جاوا - مقدماتی تا متوسط


تعداد جلسات 26 جلسه
مدت زمان 685 دقیقه
سطح مهارت مقدماتی
زبان فارسی
دانشجو 265 دانشجو
گواهی نامه ندارد
قیمت دوره : 0 تومان
رایگان
مهدی عباسی
مهدی عباسی

درباره مدرس :

مدیر‌ عامل‌ شرکت آریا‌ نرم‌‌ افزار دارنده مدرک کارشناسی‌ ارشد مهندسی کامپیوتر 12‌ سال سابقه تدریس دروس کامپیوتر را در دانشگاههای دولتی، آزاد، پیام‌نور ملایر، شهیدشمسی‌پور تهران و تدریس برنامه‌نویسی در انیستیتو ایزایران، مجتمع فنی و موسسه راه‌آینده تهران دارا میباشد و تا به حال راهنمایی انجمنهای علمی دانشگاه و صدها پروژه دانشجویی را برعهده داشته است. تخصص اصلی: با داشتن گواهی‌نامه‌های معتبر تدریس از انیستیتو‌ ایزایران، راه آینده‌تهران و سازمان‌فنی‌حرفه‌ای، تدریس و آموزش‌ دروس کامپیوتر، ‌برنامه‌نویسی کامپیوتر و کلاسهای کنکور کارشناسی و کارشناسی‌ارشد میباشد.همچنین تجربه داوری و نظارت مسابقات برنامه‌نویسی کشوری‌ACM را در سالهای متعدد داشته و تیم مورد رهبری ایشان در 3سال متوالی مقام اول مسابقات کشوری را از آن خود کرده است.ایشان مقالاتی در زمینه شبکه‌های کامپیوتری، تکنیک‌های وزارت دفاع و ... به ثبت رسانده و مشاور و کارشناس در طراحی و برنامه نویسی بیش از 50‌برنامه کاربردی تحت وب و ویندوز و موبایل میباشد. افتخارات دیگر:کسب مقام دوم ایده‌های برتر در مسابقات استارت‌آپ و بکند کشوری را نام برد.