سوال درباره ی مفاهیم شیء گرایی و خود پارادایم شیء گرایی

با سلام دوستان

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

اینم لینک دانلود پی دی اف:

http://wzk.ir/rBjj

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 6 سال پیش

ممنون

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

sokanacademy forum
کاربر سکان آکادمی 6 سال پیش

دوست عزیز اگه زبان جاوا سر در میاری یا زبان های شبیه به اون مثل c#  و c++ به اموزش های اقای علی اکبری تو سایت جاواکاپ مراجعه کن

sokanacademy forum
کاربر سکان آکادمی 6 سال پیش

سلام دوست عزیز

1.کپسوله سازی(encapsulation): هدف این کار اینه که دسترس فیلدهای(متغیر)یک کلاس رو از بیرون ببندیم تا اشیا بصورت مستقیم نتونن فیلدهارو تغییر بدن. و تنها راه ارتباط شی با فیلد از طریق متدها باشه.مثلا توی مثال زیر اگر فیلد name رو public میذاشتیم اونوقت شی p مستقیم میتونست name  رو تغییر بده و هیچ گونه کنترلی روی دیتایی که از طرف p میومد نمیتونست داشته باشه. ولی وقتی مثل اینجا تنها راه ارتباطی شی با فیلدها از طریق متدهای set و get  باشه اونوقت میتونیم چک کنیم دیتای ورودی معتبر باشه 

public class Person{
   private String name;
   
   
   public void setName(string n){

      name = n;
   }

   public String getName(){

      return name;
   }
}
class App{
   public static void main(Stirng[] args){
      Person p = new Person();
      p.setName("Mike");
   }
}
      
sokanacademy forum
کاربر سکان آکادمی 6 سال پیش

2.چند ریختی(polymorphism): چندریختی یعنی اینکه ما بتونیم با یک خط کد خروجی های متفاوتی ازش بگیریم. مثال زیر رو در نظر بگیر...تو حلقه فقط یه خط کد داریم ولی خروجی های مختلفی داره به ما میده.

public class A{
   public void Foo(){
     System.out.println("A.Foo");
   }
}
class B extends A{
   public void Foo(){
     System.out.println("B.Foo");
   }
}
class C extends A{
   public void Foo(){
     System.out.println("C.Foo");
   }
}
class Application{
    public static void main(String[] args){
       A[] array = new A[3];
       array[0] = new A();
       array[1] = new B();
       array[2] = new C();
       
       for(A a : array)
           a.Foo();
       }
}
//output:
//A.Foo
//B.Foo
//C.Foo
online-support-icon