Searching...
فارسی
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Head First Java

Head First Java

توسط Kathy Sierra 2006 688 صفحات
4.24
4k+ امتیازها
گوش دادن
Try Full Access for 7 Days
Unlock listening & more!
Continue

نکات کلیدی

۱. بنیان جاوا: کلاس‌ها، اشیاء و ماشین مجازی جاوا (JVM)

کتاب «Head First Java» نوشته کتی و برت، صفحه‌های چاپی را به نزدیک‌ترین شکل ممکن به یک رابط گرافیکی تبدیل می‌کند.

کلاس‌ها و اشیاء. جاوا اساساً یک زبان شیءگرا است؛ یعنی همه چیز حول کلاس‌ها و اشیاء می‌چرخد. کلاس به‌عنوان یک الگو عمل می‌کند که ساختار و رفتار اشیاء را تعریف می‌کند. اشیاء نمونه‌هایی از یک کلاس هستند که هرکدام دارای وضعیت (داده) منحصر به فرد و قابلیت انجام عملیات (متدها) می‌باشند.

ماشین مجازی جاوا. JVM موتور اجرای بایت‌کد جاوا است؛ بایت‌کدی که از کد منبع جاوا کامپایل شده و مستقل از پلتفرم است. این ویژگی امکان اجرای برنامه‌های جاوا را روی هر دستگاهی که JVM داشته باشد فراهم می‌کند. JVM همچنین مسئول مدیریت حافظه است، از جمله جمع‌آوری زباله که به‌صورت خودکار حافظه اشیاء بلااستفاده را آزاد می‌کند.

کامپایل و اجرا. فرآیند توسعه جاوا شامل نوشتن کد منبع در فایل‌های .java، کامپایل آن به بایت‌کد با استفاده از کامپایلر javac و سپس اجرای بایت‌کد روی JVM با دستور java است. JVM بایت‌کد را تفسیر کرده و آن را به کد ماشین تبدیل می‌کند تا سیستم‌عامل بتواند آن را اجرا کند.

۲. متغیرها: نوع‌های اولیه، مراجع و حافظه

متغیرها دو نوع اصلی دارند: اولیه و مرجع.

نوع‌های اولیه. جاوا هشت نوع داده اولیه برای ذخیره مقادیر پایه ارائه می‌دهد: boolean، char، byte، short، int، long، float و double. هر نوع اولیه اندازه و دامنه خاصی دارد و مقادیر را مستقیماً در حافظه ذخیره می‌کند.

متغیرهای مرجع. متغیرهای مرجع خود شیء را ذخیره نمی‌کنند، بلکه اشاره‌گری به محل قرارگیری شیء در حافظه (heap) هستند. چندین متغیر مرجع می‌توانند به یک شیء واحد اشاره کنند.

Heap و Stack. اشیاء در حافظه heap ایجاد و ذخیره می‌شوند که توسط جمع‌آورنده زباله JVM مدیریت می‌شود. متغیرهای محلی و پارامترهای متدها در حافظه stack ذخیره می‌شوند که برای فراخوانی متدها و داده‌های موقتی استفاده می‌شود. درک تفاوت بین heap و stack برای فهم مدیریت حافظه و چرخه عمر اشیاء در جاوا ضروری است.

۳. متدها: رفتار، آرگومان‌ها و نوع بازگشتی

متدها از وضعیت شیء استفاده می‌کنند (مثلاً صدای پارس کردن متفاوت است).

متدها و رفتار شیء. متدها عملیاتی هستند که یک شیء می‌تواند انجام دهد و بر وضعیت شیء که توسط متغیرهای نمونه نمایش داده می‌شود، تأثیر می‌گذارند. رفتار متد می‌تواند بسته به وضعیت شیء متفاوت باشد.

آرگومان‌ها و پارامترها. متدها می‌توانند آرگومان‌هایی دریافت کنند که هنگام فراخوانی به آن‌ها داده می‌شود. پارامترها متغیرهای محلی متد هستند که این مقادیر را دریافت می‌کنند. جاوا از روش پاس دادن مقدار (pass-by-value) استفاده می‌کند، یعنی مقدار آرگومان در پارامتر کپی می‌شود.

نوع بازگشتی. متدها می‌توانند مقداری را به فراخواننده بازگردانند که نوع آن باید در امضای متد مشخص شود. اگر متدی مقداری بازنگرداند، نوع بازگشتی آن void است.

۴. بهره‌گیری از API جاوا: کلاس‌ها و بسته‌های آماده

لازم نیست چرخ را دوباره اختراع کنید اگر بدانید چگونه از کتابخانه جاوا (Java API) استفاده کنید.

API جاوا. API جاوا مجموعه‌ای گسترده از کلاس‌ها و رابط‌های آماده است که امکانات متنوعی از ساختارهای داده پایه تا شبکه و اجزای رابط کاربری گرافیکی را فراهم می‌کند. با استفاده از API، توسعه‌دهندگان می‌توانند از نوشتن کدهای تکراری اجتناب کرده و بر توسعه ویژگی‌های اختصاصی تمرکز کنند.

بسته‌ها. کلاس‌های API جاوا در بسته‌ها سازماندهی شده‌اند که فضای نام ایجاد می‌کنند و از برخورد نام‌ها جلوگیری می‌کنند و ساختار منطقی کتابخانه را شکل می‌دهند. برای استفاده از یک کلاس، باید بسته مربوطه را وارد (import) کنید یا نام کامل کلاس را به کار ببرید.

کاوش API. مستندات API جاوا منبعی ارزشمند برای یادگیری درباره کلاس‌ها و متدهای موجود است و اطلاعات دقیق درباره هدف، متدها و نمونه‌های کاربردی هر کلاس را ارائه می‌دهد. کتاب‌های مرجع و منابع آنلاین نیز در این زمینه مفید هستند.

۵. طراحی شیءگرا: وراثت و چندریختی

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

وراثت. وراثت به شما امکان می‌دهد کلاس‌های جدیدی (زیرکلاس‌ها) بسازید که ویژگی‌ها و رفتارهای کلاس‌های موجود (ابرکلاس‌ها) را به ارث می‌برند. این کار باعث استفاده مجدد از کد و کاهش تکرار می‌شود. زیرکلاس‌ها می‌توانند متدها و متغیرهای نمونه جدید اضافه کنند و متدهای به ارث رسیده را بازنویسی کنند.

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

رابط IS-A. آزمون IS-A راهنمایی برای تشخیص مناسب بودن وراثت است. اگر بتوان گفت «A یک B است»، آنگاه کلاس A باید از کلاس B ارث ببرد. برای مثال، «سگ» یک «حیوان» است، پس کلاس Dog باید از Animal ارث ببرد.

۶. کلاس‌های انتزاعی و رابط‌ها: دستیابی به انعطاف‌پذیری

وراثت تنها آغاز راه است.

کلاس‌های انتزاعی. کلاس‌های انتزاعی قابل نمونه‌سازی مستقیم نیستند و به‌عنوان الگو برای زیرکلاس‌ها عمل می‌کنند و ویژگی‌ها و رفتارهای مشترک را تعریف می‌کنند. این کلاس‌ها می‌توانند متدهای انتزاعی (بدون پیاده‌سازی) و متدهای عادی (با پیاده‌سازی) داشته باشند.

رابط‌ها. رابط‌ها قراردادی را تعریف می‌کنند که کلاس‌ها باید آن را پیاده‌سازی کنند. یک رابط مجموعه‌ای از متدها را مشخص می‌کند که کلاس موظف به پیاده‌سازی آن‌ها است. رابط‌ها نمی‌توانند متغیر نمونه یا متدهای عادی (به جز متدهای پیش‌فرض معرفی شده در جاوا ۸) داشته باشند.

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

۷. مدیریت استثناها: کنترل عملیات پرخطر

استثناها می‌گویند «ممکن است اتفاق بدی افتاده باشد...»

استثناها. استثناها رویدادهایی هستند که جریان عادی اجرای برنامه را مختل می‌کنند و معمولاً نشان‌دهنده خطاها یا شرایط استثنایی هستند که برنامه نمی‌تواند به روش معمول با آن‌ها برخورد کند. جاوا مکانیزم قدرتمندی برای مدیریت استثناها ارائه می‌دهد.

بلوک‌های try-catch. برای مدیریت استثناها، می‌توانید کد پرخطر را در بلوک try قرار دهید. اگر استثنایی در این بلوک رخ دهد، برنامه به بلوک catch مربوطه می‌رود تا اقدامات لازم مانند ثبت خطا، نمایش پیام به کاربر یا تلاش برای بازیابی انجام شود.

استثناهای بررسی‌شده و بررسی‌نشده. جاوا بین استثناهای بررسی‌شده و بررسی‌نشده تمایز قائل می‌شود. استثناهای بررسی‌شده باید یا در بلوک catch مدیریت شوند یا در امضای متد با کلیدواژه throws اعلام شوند. استثناهای بررسی‌نشده که زیرکلاس‌های RuntimeException هستند، نیازی به مدیریت یا اعلام صریح ندارند.

۸. Swing و رابط‌های گرافیکی: ساخت برنامه‌های تعاملی

باید قبول کنید که به رابط‌های گرافیکی نیاز دارید.

کامپوننت‌های Swing. Swing یک جعبه‌ابزار رابط کاربری گرافیکی است که مجموعه‌ای غنی از کامپوننت‌ها برای ساخت برنامه‌های تعاملی فراهم می‌کند. کامپوننت‌های Swing سبک، مستقل از پلتفرم و بسیار قابل تنظیم هستند.

مدیران چیدمان. مدیران چیدمان مسئول سازماندهی کامپوننت‌ها درون یک کانتینر مانند JFrame یا JPanel هستند. هر مدیر چیدمان سیاست خاصی برای تعیین اندازه و موقعیت کامپوننت‌ها دارد. مدیران چیدمان رایج شامل BorderLayout، FlowLayout و BoxLayout هستند.

مدیریت رویدادها. مدیریت رویداد فرآیند پاسخ به اقدامات کاربر مانند کلیک دکمه، حرکت ماوس و ورودی صفحه‌کلید است. برای مدیریت رویدادها باید یک رابط شنونده (listener) را پیاده‌سازی، آن را به منبع رویداد ثبت و متد مدیریت رویداد را تعریف کنید.

۹. ساختارهای داده: مجموعه‌ها و جنریک‌ها

مرتب‌سازی در جاوا بسیار ساده است.

چارچوب مجموعه‌ها. چارچوب مجموعه‌های جاوا مجموعه‌ای از رابط‌ها و کلاس‌ها برای ذخیره و دستکاری گروهی از اشیاء فراهم می‌کند. انواع رایج مجموعه‌ها شامل List، Set و Map هستند.

جنریک‌ها. جنریک‌ها به شما امکان می‌دهند نوع اشیائی که یک مجموعه می‌تواند نگه دارد را مشخص کنید. این کار ایمنی نوع را افزایش داده و نیاز به تبدیل نوع را کاهش می‌دهد. برای مثال، ArrayList<String> لیستی است که فقط اشیاء رشته‌ای را نگه می‌دارد.

مرتب‌سازی. متد Collections.sort() راهی آسان برای مرتب‌سازی لیست‌ها فراهم می‌کند. برای مرتب‌سازی اشیاء کلاس‌های سفارشی، کلاس باید رابط Comparable را پیاده‌سازی کند یا باید یک Comparator سفارشی ارائه دهید.

۱۰. بسته‌بندی و استقرار: انتشار کد شما

وقت رها کردن فرا رسیده است.

فایل‌های JAR. فایل JAR (Java Archive) یک آرشیو فشرده است که تمام فایل‌های کلاس، منابع و متادیتاهای یک برنامه جاوا را در یک فایل جمع می‌کند. فایل‌های JAR توزیع و استقرار برنامه‌های جاوا را آسان‌تر می‌کنند.

JARهای اجرایی. برای اینکه یک فایل JAR اجرایی باشد، باید یک فایل manifest شامل کلاس اصلی برنامه در آن قرار گیرد. فایل manifest یک فایل متنی ساده است که جفت‌های کلید-مقدار را در بر دارد.

Java Web Start. Java Web Start (JWS) فناوری‌ای است که امکان استقرار برنامه‌های مستقل جاوا را از طریق وب فراهم می‌کند. برنامه‌های JWS از مرورگر وب راه‌اندازی شده و خارج از محیط محدود مرورگر اجرا می‌شوند و به منابع سیستم دسترسی دارند.

۱۱. محاسبات توزیع‌شده: RMI و خدمات راه دور

دور بودن الزاماً چیز بدی نیست.

فراخوانی متد راه دور (RMI). RMI یک API جاوا است که امکان فراخوانی متد روی اشیائی که در JVM دیگری، احتمالاً روی ماشینی دیگر اجرا می‌شوند را فراهم می‌کند. RMI فرآیند ساخت برنامه‌های توزیع‌شده را ساده می‌کند.

معماری RMI. RMI شامل چند جزء کلیدی است: رابط راه دور، پیاده‌سازی راه دور، stub (نماینده سمت کلاینت) و skeleton (نماینده سمت سرور). کلاینت با stub تعامل دارد که ارتباط با سرور را مدیریت می‌کند. سرور درخواست را دریافت کرده و متد را روی پیاده‌سازی راه دور اجرا می‌کند.

ثبت RMI. ثبت RMI یک سرویس نام‌گذاری است که به کلاینت‌ها امکان می‌دهد اشیاء راه دور را پیدا کنند. سرور اشیاء راه دور خود را در این ثبت ثبت می‌کند و کلاینت‌ها می‌توانند آن‌ها را با نام جستجو کنند.

آخرین به‌روزرسانی::

نقد و بررسی

4.24 از 5
میانگین از 4k+ امتیازات از Goodreads و Amazon.

کتاب «هد فرست جاوا» با رویکردی منحصربه‌فرد و تصویری در آموزش برنامه‌نویسی جاوا، بازخوردهای بسیار مثبتی دریافت کرده است. خوانندگان سبک جذاب، توضیحات روشن و روش‌های مؤثر یادگیری آن را ستایش می‌کنند. بسیاری این کتاب را برای مبتدیان و کسانی که از زبان‌های برنامه‌نویسی دیگر به جاوا مهاجرت می‌کنند، بسیار مناسب می‌دانند. استفاده از طنز، تصاویر و روش‌های غیرمتعارف در این کتاب به تثبیت مفاهیم کمک شایانی می‌کند. اگرچه برخی منتقدان آن را بیش از حد ساده یا حواس‌پرت‌کننده می‌دانند، اما اکثریت توانایی کتاب در دسترس و لذت‌بخش کردن موضوعات پیچیده را تحسین می‌کنند. بررسی‌کنندگان اغلب به حفظ اطلاعات در مدت طولانی پس از مطالعه اشاره کرده و آن را به‌عنوان معرفی بسیار خوبی برای زبان جاوا توصیه می‌کنند.

Your rating:
4.64
23 امتیازها

درباره نویسنده

کیتی سیرا نویسنده و توسعه‌دهنده‌ای شناخته‌شده در صنعت نرم‌افزار است. او بیش از همه به‌خاطر همکاری در خلق مجموعه کتاب‌های Head First شناخته می‌شود که با رویکرد نوآورانه و سازگار با نحوه‌ی کارکرد مغز، انقلابی در آموزش‌های فنی به وجود آوردند. تخصص سیرا در علوم شناختی و نظریه یادگیری است که آن را به‌کار می‌گیرد تا مفاهیم پیچیده برنامه‌نویسی را به شکلی ساده‌تر و قابل‌فهم‌تر ارائه دهد. آثار او بر کمک به افراد برای یادگیری مؤثرتر و لذت‌بخش‌تر تمرکز دارد. علاوه بر نویسندگی، سیرا به‌عنوان مربی ارشد در شرکت Sun Microsystems فعالیت کرده و در کنفرانس‌های متعددی در حوزه فناوری سخنرانی داشته است. سبک آموزش منحصربه‌فرد و مشارکت‌های او در آموزش برنامه‌نویسی، او را به چهره‌ای محترم در جامعه فناوری تبدیل کرده است.

Listen
0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Personalized for you
Ratings: Rate books & see your ratings
100,000+ readers
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Jun 8,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Loading...