Persian Software Engineers – Telegram
Persian Software Engineers
1.9K subscribers
353 photos
14 videos
84 files
303 links
تجربیات شخصی یک مهندس نرم افزار در آلمان‌.
کانال یوتیوب:
https://www.youtube.com/@Dev_Germany
ادمین کانال :
@mohamad_germany
Download Telegram
#custom_library
با عرض سلام سه پیام قبلی تبادل بودند
و فقط برای آشنا شدن افراد جدید و ما تبلیغ نداریم 😊 شرمنده دوستان
محمد غفاری فر(@mohamadghaffari)
هستم و میخوام شما رو با custom libraries آشنا کنم ! تا الان مباحث زیادی رو از آموزش های خانم مقاری یاد گرفتین اما خود اندروید ویجت هاش یه سری ویژگی ها دارن و دیفالت هستن اما می بینین برنامه هایی که گرافیک خیلی بالایی رو دارند یا میخواین برنامتونو شبیه یه برنامه مانند برنامه gmail یا غیره از لحاظ گرافیگی بکنین اینجا دو حالت دارین یا خودتون بیاین شبیهش طراحی کنین ! یا یه سری افراد حرفه ای اینا رو قبلا نوشتن و به رایگان روی اینترنت قرار دادن ! چرا ؟ چون اندروید open source هست و خیلی از طرفداران open source میان رایگان سورساشونو منتشر می کنند ! برای مثال برای Progress Bar که وقتی یه عملیاتی زمان زیادی رو میبره یا از طریق برنامه می خواین دانلودی چیزی انجام بدین ازش استفاده می کنند دیفالت خود اندروید ظاهر خیلی زیبایی نداره می تونین از یه لایبرری که در پیام بعدی معرفی می کنم بهتون استفاده کنین و برنامه خودتونو زیبا تر و جذاب تر کنین ! این لایبرری قابلیت این رو داره که خودتون می تونین مشخصاتشو تنظیم کنین :) لایبرری های خیلی زیاد دیگه ای هست که با یه سرچ کوچیک در نت و با عبارت
Custom Library for ....
به راحتی می تونین پیداش کنین ... موفق باشین
جلسه ی ششم آموزش اندروید توسط خانم مقاری تا دقایقی دیگر
@androiddevelop
سلام مقاری هستم و با جلسه ششم اموزش برنامه نویسی اندروید در خدمت شما دوستان میباشم📱
جلسه قبل با یک سری از مفاهیم مهم در جاوا آشنا شدیم و سپس به یک سری نکات در مورد دیزاین نرم افزارهای اندروید پرداختیم.
این جلسه طبق روال چند جلسه قبل یکی دو نکته از جاوا رو خواهیم داشت و بعد از آن دوباره وارد مبحث اندروید میشویم
از چند جلسه بعد سبک درس دادن کمی تغییر خواهد کرد چون مقدمات کار را خواهید آموخت. و کم کم با تعریف یک پروژه سعی خواهیم کرد که آموزش¬ها بصورت عملی پیاده شود.
مثال معروفه کلاس انسان که زدم را به یاد بیارید... گفتم نمیتونم من بگم انسان بیا... باید ازش نمونه بگیرم. خب برای انسان همه ی اعمال همینجوری هست. قابل بیان نیست که چیزی رو مستقیم از انسان خواست، راه رفتن، خوابیدن، آمدن و.... و باید نمونه گرفت
اما همیشه اینطور نیست. گاها رفتارهایی به اشیا و موجوداتی نسبت داده میشود که نیاز به نمونه گرفتن ندارد.
مثلا فک کنید کلاسی دارم به اسم ریاضی. حالا میخواهم بگم ریاضی برای من سینوس بگیر. واقعا نمونه گرفتن لازم هست؟؟؟ مسلما اینطور نیست.
اینجور مواقع که نیازی به نمونه گرفتن نمیبینیم از واژه ی static استفاده میکنیم.
این واژه در مفهوم یعنی ایستا یعنی چیزی که ثابت هست.
"به این معنی که برای صدا زدن متد ، نیازی به ساختن شی از کلاس نمی باشد و این متد مستقیما از روی کلاس صدا زده می شود "
خب بیاید مثال را عملی کنیم. مثلا یک کلاس بسازید به نام myMath (Math نگذاریدا!!!)
حالا توی کلاس یک تابع بسازید به اسم Sum که دوتا ورودی میگیرد. میخواهم این تابع دوتا ورودی صحیح داشته باشد و جمع آنها را برگرداند.
تا ایجا را که بلدید:
public class myMath {

public int Sum(int Input1, int Input2){

int TheSum = Input1+Input2;

}

}
یک بررسی بکنیم. اول از همه public تعریفش کردم چون میخواهم از یک کلاس دیگری صدا بزنمش (که البته می¬شد protected تعریف کنید چون از کلاس هم پکیجش باز هم قابل خوندن خواهد بود).
مورد بعدی int هست به معنای عدد صحیح که همانطور که یادتون دادم در تعریف توابع در این قسمت نوع خروجی را مشخص میکنیم.
بعد از آن Sum را آوردم که نام تابعم هست.
سپس داخل پرانتز دوتا ورودی را مشخص کردم. و تعیین کردم دوتا ورودی که به تابع فرستاده میشود باید نوعش int باشه و داخل تابع بخواهم با آنها کار کنم با اسم Input1 و Input2 صدا میزنمشان
بعد داخل تابع یک متغیر تعریف کردم به اسم TheSum که مقدار جمع ورودیها را داخلش ذخیره کردم
🚫خب ایراد میگیره ازتون! آخر تابع میبینید که یک خط قرمز کشیده شده. موس رو ببرید روش نوشته شده Missung Return
حالا Return چی هست و چرا تاحالا استفادش نکردیم. تا الان توابعی که نوشتیم هیچوقت خروجی نداشتن و از نوع void بودن. اندفعه تابعی نوشتیم که میخواهیم محاسبه کند و از هرجا که صدا زده شده به همانجا یک مقداری را برگرداند. برای برگرداندن مقدار توی توابع از return استفاده میکنیم. اینطوری:
return *some value*;
پس کلا کلاسمان تا اینجا میشود:
public class myMath {



public int Sum(int Input1, int Input2){

int TheSum = Input1+Input2;

return TheSum;

}

}
حالا برید یک کلاس دیگری بسازید و داخلش متد main بسازید (در کلاس قبلی هم میشد اما میخوام بیشتر درکش کنیدش)
اینبار میخوام دوتا عدد 4 و 5 را باهم جمع کنم و خروجی را چاپ کنم. پس دارم:



public class myClass {



public static void main(String args[]){

myMath m = new myMath();

int result = m.Sum(4,5);

System.out.print(result);

}

}
مشخص هست از کلاس ریاضیم نمونه گرفتم، بعد تابعش را با دو ورودیه 4 و 5 صدا زدم.
خروجی برمیگرداند (return) که درجا در متغیری بنام result ذخیره کردم.
و در اخر چاپ کردم متغیرم را. که اگه از منوی بالا Run را بزنید میبینید خروجیش رو.
خب بنظر شما بی معنی نیست؟ هربار بیایم ازین کلاس نمونه بگیریم؟؟ مسلما کار جالبی نی!
اما چکار کنیم که جای نمونه گرفتن یک myMath.Sum که بزنیم قابل استفاده باشد؟ اگر الان این را بزنید میبینید که اصلا نمیخونه کد شما را.
برید داخل کلاس ریاضیتان و متدی که نوشتید را استاتیک کنید. اینطوری: