برنامه سازی پیشرفته
درس متنی
جلسه 1 آشنایی با زبان جاوا
خلاصه نکات کلیدی دوره:
جاوا یک زبان شیءگرا، مستقل از پلتفرم و قدرتمند است.
JVM نقش حیاتی در اجرای کدهای جاوا دارد.
ساختارهای کنترلی (if, for, while) و انواع دادهها اساس برنامهنویسی هستند.
مفاهیم OOP (کلاس، شیء، کپسولهسازی، وراثت، پلیمورفیسم) برای نوشتن کدهای ماژولار و قابل نگهداری ضروریاند.
Collections Framework ابزارهای کارآمدی برای مدیریت مجموعهای از دادهها فراهم میکند.
مدیریت استثناها برای نوشتن برنامههای پایدار و مقاوم در برابر خطا الزامی است.
توانایی کار با فایلها برای ذخیره و بازیابی دادهها کاربرد فراوانی دارد.
مقدمه و تاریخچه جاوا
- تیتر: جاوا چیست و چرا اهمیت دارد؟
- تاریخچه مختصر جاوا (پیدایش، اهداف اولیه).
- ویژگیهای کلیدی جاوا: شیءگرایی، مستقل از پلتفرم (Write Once, Run Anywhere)، امنیت، کارایی.
- کاربردهای جاوا: توسعه وب (سمت سرور)، اپلیکیشنهای موبایل (اندروید)، نرمافزارهای دسکتاپ، بازیها، سیستمهای بزرگ سازمانی.
- مثال: مقایسه جاوا با زبانهای دیگر (مثل C++ یا Python) از نظر سینتکس، فلسفه و کاربرد.
- نکات کلیدی:
- JVM (Java Virtual Machine) و نقش آن در استقلال از پلتفرم.
- JDK (Java Development Kit) و JRE (Java Runtime Environment).
بخش ۲: نصب و راهاندازی محیط توسعه
- تیتر: آمادهسازی محیط برنامهنویسی جاوا
- نصب JDK.
- معرفی IDEهای محبوب (مانند IntelliJ IDEA, Eclipse, VS Code) و نحوه نصب یکی از آنها.
- نوشتن اولین برنامه جاوا (“Hello, World!”).
- مثال:
java public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
- تمرین پایان فصل:
- JDK را نصب کنید و از نصب صحیح آن اطمینان حاصل کنید.
- یک IDE انتخاب کرده و نصب کنید.
- برنامه “Hello, World!” را با نام خودتان اجرا کنید (مثلاً “Hello, [Your Name]!”).
بخش ۳: مبانی زبان جاوا
- تیتر: ساختار اولیه برنامهها و انواع دادهها
- قواعد نامگذاری (کلاسها، متغیرها، متدها).
- انواع دادههای اولیه (Primitive Data Types):
int,float,double,boolean,char,byte,short,long. - متغیرها (Variables) و ثابتها (Constants).
- عملگرها (Operators): حسابی، رابطهای، منطقی، انتساب.
- ساختارهای کنترلی جریان (Control Flow Statements):
- شرطی:
if,else if,else,switch. - تکرار:
for,while,do-while. - مثال:
java public class BasicJava {
public static void main(String[] args) {
int age = 25;
double salary = 50000.50;
boolean isStudent = true;
if (age >= 18 && salary > 30000) {
System.out.println("Eligible for loan.");
} else {
System.out.println("Not eligible.");
}
for (int i = 0; i < 5; i++) {
System.out.println("Count: " + i);
}
}
}
- تمرین پایان فصل:
- برنامهای بنویسید که دو عدد را از ورودی گرفته و حاصل جمع، تفریق، ضرب و تقسیم آنها را نمایش دهد.
- برنامهای بنویسید که یک عدد را به عنوان ورودی گرفته و تشخیص دهد زوج است یا فرد.
- با استفاده از حلقه
for، اعداد ۱ تا ۱۰ را به همراه مربعشان نمایش دهید.
بخش ۴: برنامهنویسی شیءگرا در جاوا (مفاهیم پایه)
- تیتر: کلاسها، اشیاء و ویژگیهای اصلی OOP
- مفهوم کلاس (Class) و شیء (Object).
- تعریف کلاس: فیلدها (Fields) و متدها (Methods).
- ایجاد شیء از روی کلاس (Instantiation).
- سازندهها (Constructors): نقش و انواع آن.
- کلمه کلیدی
this. - مفاهیم کپسولهسازی (Encapsulation):
public,private,protected. - Getter و Setter ها.
- مثال:
java class Dog {
String name;
String breed;
// Constructor
public Dog(String name, String breed) {
this.name = name;
this.breed = breed;
}
// Method
public void bark() {
System.out.println(name + " says Woof!");
}
public String getName() {
return name;
}
}
public class OOPBasics {
public static void main(String[] args) {
Dog myDog = new Dog("Buddy", "Golden Retriever");
myDog.bark();
System.out.println("My dog's name is: " + myDog.getName());
}
}
- تمرین پایان فصل:
- کلاسی به نام
Bookبا فیلدهایtitle(String)،author(String) وpages(int) تعریف کنید. یک سازنده برای مقداردهی اولیه این فیلدها بنویسید. - متدهایی برای نمایش اطلاعات کتاب (
displayInfo) و دریافت تعداد صفحات (getPages) اضافه کنید. - در متد
main، یک شیء از کلاسBookساخته و اطلاعات آن را نمایش دهید.
بخش ۵: مفاهیم پیشرفتهتر OOP
- تیتر: وراثت، پلیمورفیسم و انتزاع
- وراثت (Inheritance): کلمه کلیدی
extends. کلاس والد (Superclass) و کلاس فرزند (Subclass). superkeyword.- پلیمورفیسم (Polymorphism): Overloading و Overriding متدها.
- کلاسهای انتزاعی (Abstract Classes) و متدهای انتزاعی (Abstract Methods).
- واسطها (Interfaces): تعریف و پیادهسازی.
- مثال:
java // Superclass
class Animal {
public void makeSound() {
System.out.println("The animal makes a sound");
}
}
// Subclass
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("The cat meows");
}
}
public class PolymorphismDemo {
public static void main(String[] args) {
Animal myAnimal = new Animal();
Animal myCat = new Cat(); // Polymorphism
myAnimal.makeSound(); // Output: The animal makes a sound
myCat.makeSound(); // Output: The cat meows
}
}
- تمرین پایان فصل:
- یک کلاس انتزاعی به نام
Shapeبا یک متد انتزاعیcalculateArea()تعریف کنید. - دو کلاس
CircleوRectangleبسازید که ازShapeارثبری کنند و متدcalculateArea()را برای هر کدام پیادهسازی کنید. - در متد
main، نمونههایی ازCircleوRectangleساخته و مساحت آنها را محاسبه و نمایش دهید.
بخش ۶: مجموعهها (Collections) و استثناها (Exceptions)
- تیتر: کار با دادههای ساختاریافته و مدیریت خطا
- مجموعههای جاوا (Java Collections Framework):
List(مثلArrayList,LinkedList).Set(مثلHashSet,TreeSet).Map(مثلHashMap,TreeMap).- مدیریت استثناها (Exception Handling):
try,catch,finally.- استثناهای Checkable و Uncheckable.
- کلمه کلیدی
throw. - مثال:
java import java.util.ArrayList;
import java.util.List;
public class CollectionsAndExceptions {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
try {
System.out.println("Second name: " + names.get(1));
System.out.println("Fourth name: " + names.get(3)); // This will cause an IndexOutOfBoundsException
} catch (IndexOutOfBoundsException e) {
System.err.println("Error: Index out of bounds. " + e.getMessage());
} finally {
System.out.println("List processing finished.");
}
}
}
- تمرین پایان فصل:
- یک
ArrayListاز اعداد صحیح بسازید و ۱۰ عدد تصادفی را به آن اضافه کنید. سپس مجموع اعداد موجود در لیست را محاسبه و نمایش دهید. - برنامهای بنویسید که سعی کند یک عدد را بر صفر تقسیم کند و با استفاده از
try-catch، خطایArithmeticExceptionرا مدیریت کند.
بخش ۷: مقدمهای بر برنامهنویسی فایل (File I/O)
- تیتر: خواندن و نوشتن اطلاعات در فایلها
- مفاهیم اولیه کار با فایلها در جاوا.
- کلاسهای
File,FileReader,FileWriter,BufferedReader,BufferedWriter. - خواندن اطلاعات از یک فایل متنی.
- نوشتن اطلاعات در یک فایل متنی.
- مثال:
java import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class FileIOExample {
public static void main(String[] args) {
// Writing to a file
try (PrintWriter writer = new PrintWriter(new FileWriter("output.txt"))) {
writer.println("This is the first line.");
writer.println("This is the second line.");
} catch (IOException e) {
System.err.println("Error writing to file: " + e.getMessage());
}
// Reading from a file
try (BufferedReader reader = new BufferedReader(new FileReader("output.txt"))) {
String line;
System.out.println("Reading from output.txt:");
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.err.println("Error reading from file: " + e.getMessage());
}
}
}
- تمرین پایان فصل:
- برنامهای بنویسید که لیستی از نام دانشجوها را از یک فایل متنی (
students.txt) بخواند و آنها را به ترتیب الفبا مرتب کرده و در فایل دیگری (sorted_students.txt) ذخیره کند.
خلاصه نکات کلیدی دوره:
- جاوا یک زبان شیءگرا، مستقل از پلتفرم و قدرتمند است.
- JVM نقش حیاتی در اجرای کدهای جاوا دارد.
- ساختارهای کنترلی (
if,for,while) و انواع دادهها اساس برنامهنویسی هستند. - مفاهیم OOP (کلاس، شیء، کپسولهسازی، وراثت، پلیمورفیسم) برای نوشتن کدهای ماژولار و قابل نگهداری ضروریاند.
- Collections Framework ابزارهای کارآمدی برای مدیریت مجموعهای از دادهها فراهم میکند.
- مدیریت استثناها برای نوشتن برنامههای پایدار و مقاوم در برابر خطا الزامی است.
- توانایی کار با فایلها برای ذخیره و بازیابی دادهها کاربرد فراوانی دارد.
دروس متنی
#1
جلسه 1 آشنایی با زبان جاوا
#2
جلسه 2ویژگی هاي زبان جاوا ◦
#3
جلسه 3 اولین برنامه در جاوا ◦
#4
جلسه 4 مفاهیم اولیه برنامه سازي در جاوا
#5
جلسه 5 مقدمه اي بر طراحی و برنامه سازي شیءگرا
#6
جلسه 6 برنامه سازي شیءگرا در جاوا
#7
جلسه 7وراثت
#8
جلسه 8چندریختی
#9
جلسه 9(interface) واسط
#10
جلسه 10آزمون نرم افزار
#11
جلسه 11الگوهاي طراحی
#12
جلسه 12 (Refactoring) بازآرایی کد
#13
جلسه 13مدیریت خطا و استثنا
#14
جلسه 14 (Generics) داده هاي عام
#15
جلسه 15 (Containers) مجموعه ها و ظرف ها
#16
جلسه 16فایل، جویبار و شبکه
#17
جلسه 17برنامه سازي همروند
#18
جلسه 18 Reflection
#19
جلسه 19مفاهیم پیشرفته و تکمیلی
مشاهده دروس کامل
بررسی صفحه یادگیری دوره