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

ایمیل خود را وارد کنید:

اوراکل (ADF(Application Development Framework یک چارچوب(Framework)  کلی می باشد که برروی استانداردهای Java EE و تکنولوژی های Open Source جهت سادگی و پیاده سازی سریع تر برنامه های Java EE ایجاد شده است که کاملا توسعه پذیر و قابل تنظیم بوسیله افزودن یا اصلاح کتابخانه ها می باشد. ADF وظایف را از طریق ایجاد سرویس […]

CardLayout پنجره ای را در نظر بگیرید که شامل چندین پنل می باشد که در یک زمان فقط یکی از این پنل ها قابل مشاهده می باشد،با استفاده از کلاس java.awt.CardLayout شما می توانید کامپوننتی را ایجاد کنید که فقط یکی از این پنل ها را در یک زمان نمایش دهد، مانند شکل زیر: زمانی […]

اطلاعات سخت افزاری CPU اطلاعات CPU شامل جزئیاتی  مثل معماری ، نام سازنده ، مدل ، تعداد هسته ها ، سرعت هرکدام از هسته ها و غیره است. برای دسترسی به چنین جزئیاتی درباره سخت افزار CPU در لینوکس، تعداد بسیار اندکی کامند برای این منظور وجود دارد که ما در اینجا بطور مختصر تعدادی […]

مثال کاربردی از واسط(Interface) و ارث بری

در این بخش سعی داریم تا با مثالی ساده نحوه پیاده سازی واسط و ارث بری از کلاس را در یک مثال نمایش دهیم.

مثال قدم به قدم

۱_در Eclipse IDE یک پروژه بنام Lesson6 ایجاد کنید.

۲_واسط Payble را مانند زیر وارد نمایید :

public interface Payable {
	boolean increasePay(int percent);
}

در این واسط متغییری final بنام INCRESE_CAP را بصورت زیر وارد کنید:

public interface Payable {
	int INCREASE_CAP = 20;
	boolean increasePay(int percent);
}

۴_کلاسی بنام Person ایجاد کنید :

public class Person {
	private String name;
	public Person(String name){
	this.name=name;
	}
	public String getName(){
	return "Person’s name is " + name;
	}
}

۵_کلاس هایی بنام Employee و Contractor ایجاد کنید. هر کدام از کلاس ها بایستی کلاس Person را extend کند و همچنین واسط Payble را پیاده سازی کند.

متد increasePay() را در Employee پیاده سازی کنید، هیچ محدودیتی برای افزایش حقوق نگذارید:

public class Employee extends Person implements Payable {
	Employee(String name)
	{
		super(name);
	}

	public boolean increasePay(int percent)
	{
System.out.println("Increasing salary by "
 + percent + "%. "+ getName());
		return true;
	}

}

متد increasePay() را در Contractor پیاده سازی کنید، اگر درصد افزایش پایین از متغییر final در واسط Payble یعنی INCREASE_CAP است، یک پیام شبیه کد قبلی چاپ کند. در غیراینصورت پیامی مبنی براینکه شما نمی توانید نرخ پیمانکار را از ۲۰ درصد بیشتر کنید چاپ کند:

public class Contractor extends Person implements Payable {
	Contractor(String name)
	{
		super(name);
	}

	public boolean increasePay(int percent)
	{
		if(percent<INCREASE_CAP)
System.out.println("Increasing salary by "
+ percent + "%. "+ getName());
		else

System.out.println("Sorry, can’t increase hourly rate by more than "
+INCREASE_CAP+"%. "+getName());
			return true;

	}
}

۶_کلاسی بنام TestPayIncrease ایجاد کرده و کد زیر را در آن وارد نمایید:

public class TestPayIncrease {
	public static void main(String[] args) {

		Person workers[] = new Person[3];
		workers[0] = new Employee("Saeed");
		workers[1] = new Contractor("Amir");
		workers[2] = new Employee("Reza");
		Employee currentEmployee;
		Contractor currentContractor;
		for (Person p: workers)
		{
		if (p instanceof Employee)
		{
		currentEmployee = (Employee) p;
		currentEmployee.increasePay(30);
		}
		else if (p instanceof Contractor)
		{
		currentContractor = (Contractor) p;
		currentContractor.increasePay(30);
		}
	  }
	}
}

۷_ برنامه TestPayIncrease را اجرا کنید، بایستی خروجی زیر را تولید کند:

Increasing salary by 30%. Person’s name is Saeed

Sorry, can’t increase hourly rate by more than 20%. Person’s name is Amir

Increasing salary by 30%. Person’s name is Reza

کد پروژه Eclipse این مثال را می توانید از لینک زیر دانلود کنید:

یک دیدگاه نوشته شده است! می توانید دیدگاه خود را بنویسید

  1. حجت گفت:

    واقعا مفید بود.خیلی ممنون

دیدگاه خود را به ما بگویید.