تو این پست، یه سری نکات مربوط به مفاهیم شی گرایی از منابع مختلف جمع آوری شدن:
وراثت:
وراثت در جاوا مکانیزمی است که توسط آن آبجکتی تمامی ویژگی (property) و قابلیت ها (behavior) آبجکت پدر را کسب کرده و در اصطلاح به ارث می برد.
برای ارث بری از کلمه کلیدی extends استفاده میشود و همانطور که میدانید حتی کلاس MainActivity پروژه اندروید نیز خود extends شده از کلاسی دیگر است. این کلاس را مشاهده کنید:
public class MainActivity extends AppCompatActivity {
}
کلیدواژه ی extend یک کلاس جدید ایجاد می کند که علاوه بر اعضای اختصاصی خود، فیلدها و متدهای کلاس پدر (کلاس دوم و درج شده پس از واژه ی extend) را به ارث می برد. واژه ی extend به معنای افزایش قابلیت های یک موجودیت است.
انواع وراثت:
مثالی از وراثت سطحی (Multilevel Inheritance):
class Animal{
void eat(){System.out.println("eating.");}
}
class Dog extends Animal{
void bark(){System.out.println("barking.");}
}
class BabyDog extends Dog{
void weep(){System.out.println("weeping.");}
}
class TestInheritance2{
public static void main(String args[]){
BabyDog d=new BabyDog();
d.weep();
d.bark();
d.eat();
}
}
abstract void printStatus();//no body and abstract
public abstract class AbstractCar {
public abstract void brake();
public abstract void stop();
public int max_speed(){
return 0;
}
}
AbstractCar car = new AbstractCar() {
@Override
public void brake() {
}
@Override
public void stop() {
}
};
public interface InterfaceCar {
abstract void speed();
}
interface Printable{
void print();
}
interface Showable{
void print();
}
class TestInterface3 implements Printable, Showable{
public void print(){System.out.println("Hello");}
public static void main(String args[]){
TestInterface3 obj = new TestInterface3();
obj.print();
}
}
//Program of changing the common property of all objects(static field).class Student9{ int rollno; String name; static String college = "ITS"; static void change(){ college = "BBDIT"; } Student9(int r, String n){ rollno = r; name = n; } void display (){System.out.println(rollno+" "+name+" "+college);} public static void main(String args[]){ Student9.change(); Student9 s1 = new Student9 (111,"Karan"); Student9 s2 = new Student9 (222,"Aryan"); s1.display(); s2.display(); } }خروجی:111 Karan BBDIT
222 Aryan BBDIT
class Animal{
void eat(){System.out.println("animal is eating.");}
}
class Dog extends Animal{
void eat(){System.out.println("dog is eating.");}
}
class BabyDog1 extends Dog{
public static void main(String args[]){
Animal a=new BabyDog1();
a.eat();
}}
Dog is eating
class Bike{
int speedlimit=90;
}
class Honda3 extends Bike{
int speedlimit=150;
public static void main(String args[]){
Bike obj=new Honda3();
System.out.println(obj.speedlimit);//90
}
class Dog{
private void eat(){System.out.println("dog is eating.");}
public static void main(String args[]){
Dog d1=new Dog();
d1.eat();
}
}
class Animal{
void eat(){System.out.println("animal is eating.");}
}
class Dog extends Animal{
void eat(){System.out.println("dog is eating.");}
public static void main(String args[]){
Animal a=new Dog();
a.eat();
}
}
بعضی مواقع لازمه تا تمام فایلهامون رو داخل یک فایل نگه داریم تا جابه جایی اونها راحت تر بشه. مثلن اگر کاربر کلی فایل با یک اپلیکیشن شما ساخته و نیاز داره تمام اون فایلها رو به کسی ایمیل کنه اگر تعداد فایلها زیاد باشه و یا حتی شامل فلدرهای داخلی هم باشه به اشتراک گذاری تک تک فایل ها کاری دشوار به نظر میاد و ممکنه نظم اون ها هم موقع ارسال به هم بریزه. بنابراین بهتره اون ها رو داخل یک فایل آرشیو کنیم مثلن اون ها رو zip کنیم. تو این پست نحوه ی انجام این کار رو بهتون آموزش میدیم. طوری که حتی فلدرهای داخلی هم با همون ترتیب داخل فایل zip شما قرار بگیرن.(به صورت بازگشتی تمام فلدرهای تو در تو رو بررسی میکنیم و با همون چیدمان داخل فایل zip قرار میدیم.)
ادامه مطلب- تهیه نسخه پشتیبان اطلاعات و بازیابی اون اطلاعات
کاربردش برای زمانهایی همچون مواقعی که یک ریست فکتوری انجام بگیره و تمام داده های شما از بین میرن هستش. یا مثلن کاربر اطلاعاتی که تو اپلیکیشن شما داشته رو بعد از تعویض موبایلش بتونه رو موبایل جدیدش هم همون اطلاعات رو داشته باشه!
ادامه مطلب
درباره این سایت