آموزش رایگان صفر تا صد جاوا (Java) به زبان ساده
-
معرفی جاوا
-
ساخت اولین برنامه: Hello World
-
چاپ متن در جاوا
-
چاپ عدد در جاوا
-
نظرات (Comments) در جاوا
-
متغیرها جاوا
-
نمایش متغیرها (Display Variables) در جاوا
-
تعریف چند متغیر در جاوا (Java)
-
شناسایی متغیرها (Identifiers)
-
معرفی متغیرها با مثالهای واقعی
-
آشنایی با انواع دادهها (Data Types) در جاوا
-
آشنایی با اعداد (Numbers) در جاوا
-
آشنایی با نوع داده بولین (Boolean)
-
کار با کاراکترها و رشتهها در جاوا (Characters and Strings in Java)
-
مثال واقعی برای استفاده از انواع داده در جاوا
-
آشنایی با انواع دادههای غیرابتدایی (Non-Primitive Data Types)
-
آموزش مفهوم Type Casting در جاوا
-
آموزش عملگرها (Operators) در جاوا
-
آشنایی با رشتهها (Strings) در جاوا
-
آشنایی با الحاق رشتهها (String Concatenation)
-
اضافه کردن اعداد و رشتهها در جاوا
-
رشتهها و کاراکترهای خاص در جاوا
-
آشنایی با کلاس Math در جاوا
-
آشنایی با Boolean در جاوا
-
آشنایی با شرطها (Conditions) و دستورات شرطی (If Statements) در جاوا
-
آشنایی با دستور else در برنامهنویسی
-
آموزش عبارت else if در برنامهنویسی
-
آشنایی با عملگر شرطی کوتاه در جاوا (Ternary Operator)
-
آموزش شرطها (If..Else) در برنامهنویسی با مثالهای واقعی
-
آشنایی با Switch Statement در جاوا
-
آشنایی با حلقه While در جاوا
-
حلقه Do/While در جاوا
-
آشنایی با حلقه For در جاوا
-
حلقههای تودرتو (Nested Loops) در جاوا
-
حلقه For-Each در جاوا
-
آموزش دستورات Break و Continue در جاوا
-
آشنایی با آرایهها در جاوا (Java Arrays)
-
آموزش ساده استفاده از حلقهها برای پیمایش آرایهها در جاوا (Java Arrays Loop)
-
آرایههای چندبعدی در جاوا (Java Multi-Dimensional Arrays)
-
معرفی متدها در جاوا (Java Methods)
-
آموزش ساده: پارامترها و آرگومانها در متدهای جاوا (Java Method Parameters)
-
مفهوم بازگشت مقدار در جاوا (Java Return)
-
روش بارگذاری مجدد متدها در جاوا (Java Method Overloading)
-
آشنایی با محدوده متغیرها در جاوا (Java Scope)
-
بازگشت در جاوا (Java Recursion)
-
آشنایی با برنامهنویسی شیءگرا (Object-Oriented Programming یا OOP)
-
برنامهنویسی شیءگرا در جاوا (Java Classes/Objects)
-
آشنایی با ویژگیهای کلاس در جاوا (Java Class Attributes)
-
متدها در جاوا (Java Methods)
-
Constructor در جاوا
-
آشنایی با Modifiers در جاوا (Java Modifiers)
-
مفهوم کپسولهسازی (Encapsulation) در جاوا
-
راهنمای جامع پکیجها (Packages) و API در جاوا
-
وراثت (Inheritance) در جاوا – ساده و قابل فهم
-
پلیمورفیسم (Polymorphism) در جاوا به زبان ساده
-
کلاسهای داخلی (Inner Classes) در جاوا
-
کلاسها و متدهای انتزاعی (Abstract Classes and Methods) در جاوا
-
رابطها (Interfaces) در جاوا
-
آشنایی با Enum در جاوا
-
دریافت ورودی از کاربر در جاوا (Scanner)
-
تاریخ و زمان در جاوا (Java Date and Time)
-
آشنایی با ArrayList در جاوا
-
آشنایی با LinkedList در جاوا
-
مرتبسازی لیست در جاوا (Java List Sorting)
-
آشنایی با HashMap در جاوا
-
آشنایی با HashSet در جاوا
-
آشنایی با Iterator در جاوا
-
کلاسهای بستهبندی (Wrapper Classes) در جاوا
-
استفاده از try...catch برای مدیریت خطاها
-
آشنایی با عبارات منظم (Regular Expressions) در جاوا
-
آشنایی با Threads در جاوا 🚀
-
آشنایی با Lambda Expressions در جاوا
-
مرتبسازی پیشرفته در جاوا
-
آشنایی با کلمه کلیدی assert در جاوا
-
آشنایی با کلمه کلیدی abstract در جاوا
-
آشنایی با کلمه کلیدی boolean در جاوا
-
آشنایی با کلمه کلیدی break در جاوا
-
آشنایی با کلمه کلیدی byte در جاوا
-
آشنایی با کلمه کلیدی case در جاوا
-
آشنایی با کلمه کلیدی catch در جاوا
-
آشنایی با کلمه کلیدی char در جاوا
-
آشنایی با کلمه کلیدی class در جاوا
-
آشنایی با کلمه کلیدی continue در جاوا
-
آشنایی با کلمه کلیدی default در جاوا
-
آشنایی با کلمه کلیدی do در جاوا
-
آشنایی با کلمه کلیدی double در جاوا
-
آشنایی با کلمه کلیدی else در جاوا
-
آشنایی با کلمه کلیدی enum در جاوا
-
آشنایی با کلمه کلیدی exports در جاوا
-
آشنایی با کلمه کلیدی Inheritance در جاوا
-
آشنایی با کلمه کلیدی final در جاوا
-
آشنایی با کلمه کلیدی finally در جاوا
-
آشنایی با کلمه کلیدی float در جاوا
-
آشنایی با کلمه کلیدی for در جاوا
-
آشنایی با کلمه کلیدی if در جاوا
-
آشنایی با کلمه کلیدی implements در جاوا
-
آشنایی با کلمه کلیدی import در جاوا
-
آشنایی با کلمه کلیدی instanceof در جاوا
-
آشنایی با کلمه کلیدی int در جاوا
-
آشنایی با کلمه کلیدی Interface در جاوا
-
آشنایی با کلمه کلیدی long در جاوا
-
آشنایی با کلمه کلیدی module در جاوا
-
آشنایی با کلمه کلیدی native در جاوا
-
آشنایی با کلمه کلیدی new در جاوا
-
آشنایی با کلمه کلیدی package در جاوا
-
آشنایی با کلمه کلیدی private در جاوا
-
آشنایی با کلمه کلیدی protected در جاوا
-
آشنایی با کلمه کلیدی public در جاوا
-
آشنایی با کلمه کلیدی return در جاوا
-
آشنایی با کلمه کلیدی requires در جاوا
-
آشنایی با کلمه کلیدی short در جاوا
-
آشنایی با کلمه کلیدی static در جاوا
-
آشنایی با کلمه کلیدی super در جاوا
-
آشنایی با کلمه کلیدی switch در جاوا
-
آشنایی با کلمه کلیدی synchronized در جاوا
-
آشنایی با کلمه کلیدی this در جاوا
-
آشنایی با کلمه کلیدی throw در جاوا
-
آشنایی با کلمه کلیدی throws در جاوا
-
آشنایی با کلمه کلیدی transient در جاوا
-
آشنایی با کلمه کلیدی try...catch در جاوا
-
آشنایی با کلمه کلیدی var در جاوا
-
آشنایی با کلمه کلیدی void در جاوا
-
آشنایی با کلمه کلیدی volatile در جاوا
-
آشنایی با کلمه کلیدی while در جاوا
-
متد charAt() در جاوا
-
متد codePointAt() در جاوا
-
متد codePointBefore() در جاوا
-
متد codePointCount() در جاوا
-
متد compareTo() در جاوا
-
متد compareToIgnoreCase() در جاوا
-
متد concat() در جاوا
-
متد contains() در جاوا
-
متد contentEquals() در جاوا
-
متد copyValueOf() در جاوا
-
متد endsWith() در جاوا
-
متد equals() در جاوا
-
متد equalsIgnoreCase() در جاوا
-
متد format() در جاوا
-
متد getBytes() در جاوا
-
متد getChars() در جاوا
-
متد hashCode() در جاوا
-
متد indexOf() در جاوا
-
متد isEmpty() در جاوا
-
متد join() در جاوا
-
متد lastIndexOf() در جاوا
-
متد length() در جاوا
-
متد matches() در جاوا
-
متد offsetByCodePoints() در جاوا
-
متد regionMatches() در جاوا
-
متد replace() در جاوا
-
متد replaceAll() در جاوا
-
متد replaceFirst() در جاوا
-
متد split() در جاوا
-
متد startsWith() در جاوا
-
متد subSequence() در جاوا
-
متد substring() در جاوا
-
متد toCharArray() در جاوا
-
متد toLowerCase() در جاوا
-
متد toString() در جاوا
-
متد toUpperCase() در جاوا
-
متد trim() در جاوا
-
متد valueOf() در جاوا
-
متد abs() در جاوا
-
متد acos() در جاوا
آشنایی با کلمه کلیدی static در جاوا
کلمه کلیدی static در جاوا یک غیر-دسترسیدهنده (non-access modifier) است که برای متدها (methods) و متغیرها (attributes) استفاده میشود. وقتی از static استفاده کنیم، نیازی به ایجاد شیء (object) برای دسترسی به متد یا متغیر نداریم!
🎯 چرا از static استفاده کنیم؟
✔️ برای دسترسی مستقیم به متدها و متغیرهای کلاس بدون نیاز به ایجاد شیء
✔️ افزایش کارایی و بهینهسازی حافظه
✔️ مناسب برای متدهایی که مستقل از اشیاء کلاس هستند
📝 یک مثال ساده از static
public class Main {
// متد استاتیک (static method)
static void myStaticMethod() {
System.out.println("متدهای استاتیک بدون نیاز به ایجاد شیء اجرا میشوند!");
}
// متد عمومی (public method)
public void myPublicMethod() {
System.out.println("برای اجرای این متد باید یک شیء از کلاس ایجاد کنید.");
}
public static void main(String[] args) {
myStaticMethod(); // اجرای متد استاتیک بدون نیاز به شیء
// ایجاد یک شیء برای دسترسی به متد عمومی
Main myObj = new Main();
myObj.myPublicMethod();
}
}
📌 خروجی:
متدهای استاتیک بدون نیاز به ایجاد شیء اجرا میشوند!
برای اجرای این متد باید یک شیء از کلاس ایجاد کنید.
✨ جمعبندی
✅ static برای متدها و متغیرهایی استفاده میشود که نیازی به شیء ندارند.
✅ متدهای static مستقیماً از طریق نام کلاس قابلدسترسی هستند.
✅ متدهای استاتیک نمیتوانند متغیرهای غیر استاتیک را مستقیماً استفاده کنند.
📌 تمرین: یک کلاس بسازید که شامل یک متغیر استاتیک و یک متغیر غیر استاتیک باشد. سپس ببینید چطور میتوانید از آنها در متدهای استاتیک و غیر استاتیک استفاده کنید! 🚀
حیوان یک صدایی ایجاد میکند!
سگ میگوید: هاپ هاپ!
🚀 چرا super
مهم است؟
بدون super.animalSound()
فقط صدای سگ نمایش داده میشد و صدای عمومی حیوانات حذف میشد.
🔹 استفاده از super
برای دسترسی به سازنده کلاس والد
در جاوا، میتوان از super()
برای فراخوانی سازنده کلاس والد در کلاس فرزند استفاده کرد. این کار زمانی مفید است که بخواهید ویژگیهای اولیه والد را حفظ کنید و سپس ویژگیهای جدیدی اضافه کنید.
✅ مثال: اطلاعات خودروها 🚗
در این مثال، کلاس Car
دارای یک سازنده است که نام خودرو را دریافت میکند. سپس کلاس ElectricCar
این ویژگی را گسترش داده و ظرفیت باتری را اضافه میکند.
class Car { // کلاس والد
String brand;
public Car(String brand) {
this.brand = brand;
System.out.println("برند خودرو: " + brand);
}
}
class ElectricCar extends Car { // کلاس فرزند
int batteryCapacity;
public ElectricCar(String brand, int batteryCapacity) {
super(brand); // صدا زدن سازنده کلاس والد
this.batteryCapacity = batteryCapacity;
System.out.println("ظرفیت باتری: " + batteryCapacity + " کیلووات ساعت ");
}
}
public class Main {
public static void main(String[] args) {
ElectricCar tesla = new ElectricCar("تسلا", 100);
}
}
🔍 خروجی کد:
برند خودرو: تسلا
ظرفیت باتری: 100 کیلووات ساعت
🚀 چرا super(brand)
لازم است؟
اگر super(brand);
را حذف کنیم، برنامه دیگر مقدار برند خودرو را تنظیم نمیکند!
🔹 چرا super
کاربردی است؟
کلمه کلیدی super
برای جلوگیری از تداخل بین متدهای والد و فرزند مفید است. وقتی یک کلاس فرزند متدی با نامی مشابه متد کلاس والد داشته باشد، super
کمک میکند که همچنان به متد والد دسترسی داشته باشیم.
💡 تمرین برای شما:
یک کلاس Person
ایجاد کنید که یک متد introduce()
داشته باشد و نام فرد را چاپ کند. سپس یک کلاس Student
که از Person
ارثبری کند و introduce()
را گسترش دهد تا علاوه بر نام، رشته تحصیلی را نیز چاپ کند. از super
استفاده کنید! 🔥
❓ سؤال:super
را میتوان در متدهای استاتیک (static) استفاده کرد؟ چرا؟ 🧐
💬 پاسخ را در بخش کامنتها برای من بنویسید! 😃
🔹 جمعبندی:
✅ super
برای ارجاع به کلاس والد استفاده میشود.
✅ میتوان از super
برای صدا زدن متدها و سازنده کلاس والد استفاده کرد.
✅ super
برای جلوگیری از تداخل متدهای والد و فرزند مفید است.
✅ در ارثبری و چندریختی (Polymorphism) نقش مهمی دارد.