معرفی کتاب «مبانی جاوا ۱۷: برنامهنویسی شیءگرا در جاوا ۱۷» (با عنوان لاتین Beginning Java 17 Fundamentals : Object-Oriented Programming in Java 17) نوشتهٔ Kishori Sharan و Adam L. Davis، منتشرشده توسط نشر Apress L. P.; Apress در سال 2021. این کتاب در 1033 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «مبانی جاوا ۱۷: برنامهنویسی شیءگرا در جاوا ۱۷» در دستهٔ برنامهنویسی قرار دارد.
یادگیری برنامهنویسی شیءگرا با جاوا، پلهای اساسی برای ورود به دنیای حرفهای توسعه نرمافزار است. کتاب «Beginning Java 17 Fundamentals» نوشتهی کیشوری شاران و آدام ال. دیویس، با رویکردی گامبهگام و ارائهی مثالهای عملی متعدد، مسیری روشن برای درک مفاهیم بنیادین این زبان قدرتمند فراهم میکند.
دربارهٔ کتاب مبانی جاوا: برنامهنویسی شیءگرا در جاوا
کتاب «مبانی جاوا: برنامهنویسی شیءگرا در جاوا ۱۷» که توسط انتشارات معتبر Apress در سال ۲۰۲۱ منتشر شده، منبعی جامع برای یادگیری نسخهٔ ۱۷ جاوا (Java SE 17) است که یک نسخهٔ با پشتیبانی طولانیمدت (LTS) محسوب میشود. این کتاب با بیش از ۹۰ نمودار و ۲۴۰ برنامهٔ کامل، مفاهیم پایهای برنامهنویسی و اصول بنیادین برنامهنویسی شیءگرا را پوشش میدهد تا خواننده را برای توسعه در تمام سطوح این زبان آماده کند. ساختار کتاب بهگونهای طراحی شده است که ابتدا خواننده را با مفاهیم اولیه برنامهنویسی و نحوهٔ نوشتن نخستین برنامههای جاوا آشنا میکند. پس از آن، مباحث پایهای مانند انواع داده، عملگرها و دستورات در جاوا بهتفصیل شرح داده میشوند. قلب این کتاب به برنامهنویسی شیءگرا اختصاص دارد؛ جایی که مفاهیم کلیدی کلاسها، اشیاء، رابطها (اینترفیس) و وراثت با زبانی شیوا و مثالهای عینی توضیح داده شدهاند. همچنین، این کتاب با پوشش جدیدترین ویژگیهای جاوا، از جمله نوعهای مقداری (رکوردها)، استنتاج نوع متغیر محلی (var)، تطابق الگو (pattern matching) برای دستور switch، نوعهای مهر و مومشده (sealed types) و عبارات متنی چندخطی، بهروزترین مطالب را در اختیار مخاطب قرار میدهد.
دربارهٔ نویسنده
کیشوری شاران (Kishori Sharan) دارای مدرک کارشناسی ارشد در سیستمهای اطلاعاتی کامپیوتر از دانشگاه ایالتی تروی، آلاباما است و یک برنامهنویس معتبر جاوا ۲ (Sun Certified Java 2 programmer) بهشمار میرود. او تجربهای گسترده در زمینهٔ آموزش حرفهای به توسعهدهندگان در حوزههای جاوا، JSP، EJB و فناوری وب دارد و بیش از ده سال سابقهٔ پیادهسازی برنامههای سطح سازمانی با جاوا را در کارنامهٔ خود دارد. آدام ال. دیویس (Adam L. Davis) دارای مدرک کارشناسی ارشد و کارشناسی در علوم کامپیوتر از موسسهٔ فناوری جورجیا است. او سالهاست که با جاوا (از نسخهٔ.۲) توسعه نرمافزار انجام میدهد و بیش از یک دهه از فریمورکهای Spring و Hibernate استفاده کرده است. دیویس نویسندهٔ کتابهای «Reactive Streams in Java»، «Learning Groovy 3» و «Modern Programming Made Easy» نیز هست و تجربهٔ ساخت برنامههای وب SaaS را در کارنامه دارد.
چرا باید مبانی جاوا: برنامهنویسی شیءگرا در جاوا ۱۷ را بخوانید؟
مطالعهٔ این کتاب، دریچهای به سوی درک عمیق و حرفهای از زبان جاوا میگشاید و دستاوردهای زیر را برای خواننده به ارمغان میآورد:
- شروع قدمبهقدم و بدون پیشنیاز: کتاب با فرض ناآشنایی کامل خواننده با برنامهنویسی، او را گامبهگام با مفاهیم پایه تا نوشتن اولین برنامههای جاوا همراهی میکند.
- تسلط بر برنامهنویسی شیءگرا: با مطالعهٔ مباحث کلاسها، اشیاء، وراثت و چندریختی (پلیمورفیسم)، بنیان اصلی تفکر شیءگرا در جاوا را محکم میسازید و برای درک پروژههای بزرگ آماده میشوید.
- آشنایی با آخرین ویژگیهای جاوا: کتاب بهروز است و قابلیتهای مدرنی مانند رکوردها (record)، تطابق الگو در switch و استنتاج نوع متغیر محلی (var) را بهصورت عملی آموزش میدهد تا کدهایی کارآمدتر و خوانا بنویسید.
- یادگیری مهارتهای ضروری یک برنامهنویس حرفهای: مباحث مهمی مانند مدیریت خطاها و استثناها، کار با رشتهها و تاریخ، فرمتبندی دادهها و کار با آرایهها، شما را برای مواجهه با چالشهای واقعی در دنیای توسعه نرمافزار آماده میسازد.
- استفاده از ابزارهای مدرن مانند JShell: کتاب با معرفی ابزار JShell، محیطی تعاملی برای آزمایش سریع کدهای جاوا فراهم میآورد که فرایند یادگیری را پویاتر و لذتبخشتر میکند.
این کتاب برای چه کسانی مناسب است؟
این کتاب بهطور خاص برای کسانی نوشته شده است که تازهکار هستند و ممکن است هیچگونه تجربهٔ قبلی در برنامهنویسی نداشته باشند. همچنین برای افرادی که دانش پایهای از زبانهای دیگر دارند و میخواهند بهصورت اصولی و ساختاریافته، برنامهنویسی شیءگرا با جاوا را آغاز کنند، منبعی ایدهآل بهشمار میرود. دانشجویان رشتههای کامپیوتر، علاقهمندان به ورود به بازار کار برنامهنویسی و حتی توسعهدهندگانی که قصد مهاجرت به جاوا ۱۷ را دارند، مخاطبان اصلی این اثر هستند.
سوالات متداول
آیا برای مطالعهٔ این کتاب به دانش قبلی برنامهنویسی نیاز دارم؟
خیر، این کتاب برای افراد مبتدی طراحی شده است و با مفاهیم بسیار پایه شروع میشود. نویسندگان فرض را بر این گذاشتهاند که خواننده هیچ دانشی از برنامهنویسی ندارد و او را قدمبهقدم با اصول اولیه آشنا میکنند.
آیا کتاب صرفاً بر تئوری متمرکز است یا مثالهای عملی هم دارد؟
کتاب تأکید زیادی بر جنبهٔ عملی دارد و شامل بیش از ۹۰ نمودار و ۲۴۰ برنامهٔ کامل و اجرایی است. این مثالها به درک بهتر مفاهیم و یادگیری سریعتر کمک شایانی میکنند.
آیا محتوای کتاب منحصراً به نسخهٔ ۱۷ جاوا محدود است یا برای نسخههای جدیدتر هم قابل استفاده است؟
اگرچه کتاب بر روی نسخهٔ ۱۷ (یک نسخهٔ LTS) متمرکز است، اما مفاهیم بنیادین برنامهنویسی شیءگرا و اکثر مباحث پایهای در تمام نسخههای جدیدتر جاوا مشترک هستند و این دانش برای کار با نسخههای آینده نیز پایهای محکم فراهم میکند.
Learn the fundamentals of the Java 17 LTS or Java Standard Edition version 17 Long Term Support release, including basic programming concepts and the object-oriented fundamentals necessary at all levels of Java development. Authors Kishori Sharan and Adam L. Davis walk you through writing your first Java program step-by-step. Armed with that practical experience, you'll be ready to learn the core of the Java language. __Beginning Java 17 Fundamentals__ provides over 90 diagrams and 240 complete programs to help you learn the topics faster. While this book teaches you the basics, it also has been revised to include the latest from Java 17 including the following: value types (records), immutable objects with an efficient memory layout; local variable type inference (var); pattern matching, a mechanism for testing and deconstructing values; sealed types, a mechanism for declaring all possible subclasses of a class; multiline text values; and switch expressions. The book continues with a series of foundation topics, including using data types, working with operators, and writing statements in Java. These basics lead onto the heart of the Java language: object-oriented programming. By learning topics such as classes, objects, interfaces, and inheritance you'll have a good understanding of Java's object-oriented model. The final collection of topics takes what you've learned and turns you into a real Java programmer. You'll see how to take the power of object-oriented programming and write programs that can handle errors and exceptions, process strings and dates, format data, and work with arrays to manipulate data. **What You Will Learn** * Write your first Java programs with emphasis on learning object-oriented programming * How to work with switch expressions, value types (records), local variable type inference, pattern matching switch and more from Java 17 * Handle exceptions, assertions, strings and dates, and object formatting * Learn about how to define and use modules * Dive in depth into classes, interfaces, and inheritance in Java * Use regular expressions * Take advantage of the JShell REPL tool **Who This Book Is For** Those who are new to Java programming, who may have some or even no prior programming experience. Table of Contents About the Authors About the Technical Reviewer Acknowledgments Introduction Chapter 1: Programming Concepts What Is Programming? Components of a Programming Language Programming Paradigms Imperative Paradigm Procedural Paradigm Declarative Paradigm Functional Paradigm Logic Paradigm Object-Oriented Paradigm What Is Java? The Object-Oriented Paradigm and Java Abstraction Abstraction for Hiding Complexities Data Abstraction Encapsulation and Information Hiding Inheritance Polymorphism Overloading Polymorphism Coercion Polymorphism Inclusion Polymorphism Parametric Polymorphism Summary Chapter 2: Setting Up the Environment System Requirements Installing JDK 17 The JDK Directory Structure Verifying the JDK Installation Starting the JShell Tool Installing NetBeans 12 Configuring NetBeans Summary Chapter 3: Writing Java Programs The Goal Statement Using the JShell Tool What Is a Java Program? Writing the Source Code Writing Comments Declaring a Module Declaring Types Package Declaration Import Declarations Class Declaration Types Have Two Names Compiling the Source Code Packaging the Compiled Code Running a Java Program Playing with Module Options Listing Observable Modules Limiting the Observable Modules Describing a Module Printing Module Resolution Details Dry-Running Your Program Enhancing a Module Descriptor Running Java Programs in Legacy Mode Duplicate Modules on a Module Path Syntax for Command-Line Options Writing Java Programs Using the NetBeans IDE Creating a Java Project Creating Modular JARs in NetBeans NetBeans Project Directory Structure Adding Classes to a Module Customizing NetBeans Project Properties Opening an Existing NetBeans Project Behind the Scenes Summary Chapter 4: Data Types What Is a Data Type What Is an Identifier? Keywords Data Types in Java Local Variable Type Inference Primitive Data Types in Java Integral Data Types The int Data Type The long Data Type The byte Data Type The short Data Type The char Data Type Character Literals in Single Quotes Character Escape Sequence Unicode Character Escape Sequence Octal Character Escape Sequence The boolean Data Type Floating-Point Data Types The float Data Type The double Data Type Underscores in Numeric Literals Java Compiler and Unicode Escape Sequence A Short Break Binary Representation of Integers Diminished Radix Complement Radix Complement Binary Representation of Floating-Point Numbers 32-Bit Single-Precision Floating-Point Format Sign Exponent Significand Special Floating-Point Numbers Signed Zeros Signed Infinities NaN Denormals Rounding Modes Rounding Toward Zero Rounding Toward Positive Infinity Rounding Toward Negative Infinity Rounding Toward Nearest IEEE Floating-Point Exceptions Division by Zero Exception Invalid Operation Exception Overflow Exception Underflow Exception Inexact Exception Java and IEEE Floating-Point Standards Little-Endian and Big-Endian Summary Chapter 5: Operators What Is an Operator? Assignment Operator Declaration, Initialization, and Assignment Arithmetic Operators Addition Operator (+) Subtraction Operator (-) Multiplication Operator (*) Division Operator (/) Modulus Operator (%) Rule #1 Rule #2 Rule #1 Rule #2 Rule #3 Rule #4 Rule #5 Unary Plus Operator (+) Unary Minus Operator (-) Compound Arithmetic Assignment Operators Increment (++) and Decrement (--) Operators String Concatenation Operator (+) Relational Operators Equality Operator (==) Rule #1 Rule #2 Rule #3 Inequality Operator (!=) Greater Than Operator (>) Greater Than or Equal to Operator (>=) Less Than Operator (