Programming and Java Fundamentals

Understanding the First Java Program

ReadingPreview

You are viewing a free preview lesson.

Lesson Overview

আগের lesson-এ আমরা IntelliJ IDEA ব্যবহার করে একটি Java project তৈরি করেছি এবং নিচের programটি run করেছি:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}

Programটি ছোট হলেও এর মধ্যে Java-এর কয়েকটি অত্যন্ত গুরুত্বপূর্ণ concept রয়েছে:

  • Class
  • Keyword
  • Method
  • Parameter
  • Statement
  • Code block
  • Method call
  • String
  • Console output

এই lesson-এ আমরা programটির প্রতিটি অংশ ধাপে ধাপে বুঝব।

সব concept এখনই গভীরভাবে ব্যবহার করতে হবে না। তবে একটি Java program-এর structure কীভাবে তৈরি হয় এবং execution কোথা থেকে শুরু হয়, তা পরিষ্কারভাবে বোঝা জরুরি।


Learning Objectives

এই lesson শেষ করার পর আপনি পারবেন:

  • একটি basic Java program-এর structure ব্যাখ্যা করতে
  • public class Main statement-এর অংশগুলো বুঝতে
  • main method-এর ভূমিকা ব্যাখ্যা করতে
  • public, static, void এবং String[] args সম্পর্কে প্রাথমিক ধারণা দিতে
  • Statement এবং code block শনাক্ত করতে
  • System.out.println() কীভাবে output দেখায়, তা ব্যাখ্যা করতে
  • Java program-এর execution order বুঝতে
  • Semicolon, braces এবং parentheses সঠিকভাবে ব্যবহার করতে
  • Common structural error শনাক্ত করতে

The Complete Program

আমরা যে programটি বিশ্লেষণ করব:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}

Programটি run করলে output:

Hello Java

এখন codeটি line by line দেখি।


Line 1: Class Declaration

public class Main {

এই line একটি class declare করে।

এখানে তিনটি গুরুত্বপূর্ণ অংশ আছে:

public
class
Main

শেষে আছে opening curly brace:

{

সম্পূর্ণ declaration:

public class Main {

What Is a Class?

Class হলো data এবং behaviour organize করার একটি structure।

Java application-এর code সাধারণত class-এর মধ্যে লেখা হয়।

Example:

public class Main {
}

এখানে Main একটি class।

ভবিষ্যতে আমরা আরও class তৈরি করব:

public class Student {
}
public class Course {
}
public class BankAccount {
}
public class GradeCalculator {
}

প্রতিটি class কোনো concept, responsibility বা application component represent করতে পারে।


Class as a Container

Beginner level-এ class-কে code রাখার একটি container হিসেবে ভাবতে পারেন।

Example:

public class Main {

    public static void main(String[] args) {
        System.out.println("Application started");
    }
}

এখানে main method Main class-এর মধ্যে রয়েছে।

Structure:

Main class
└── main method
    └── print statement

তবে class শুধু container নয়।

Object-oriented programming-এ class ব্যবহার করে আমরা object-এর structure এবং behaviour define করব।


The class Keyword

class

Java-এর একটি reserved keyword।

এটি compiler-কে জানায় যে আমরা একটি class declare করছি।

Example:

class Student {
}
class Product {
}
class Order {
}

Keyword-এর নির্দিষ্ট অর্থ থাকে এবং সাধারণত keyword variable বা class name হিসেবে ব্যবহার করা যায় না।

ভুল:

int class = 10;

কারণ class Java keyword।


The Class Name Main

Main

এটি class-এর নাম।

Complete declaration:

public class Main {
}

Java-তে class name সাধারণত PascalCase convention follow করে।

ভালো class name:

Main
Student
Course
BankAccount
GradeCalculator
PaymentService

Avoid:

main
student_info
gradecalculator
bank-account

Why Is the Class Named Main?

Main কোনো mandatory class name নয়।

Class-এর নাম অন্য কিছুও হতে পারে।

Example:

public class Application {

    public static void main(String[] args) {
        System.out.println("Application started");
    }
}

File name:

Application.java

Run command:

java Application

আরেকটি example:

public class CourseInfo {

    public static void main(String[] args) {
        System.out.println("Java Foundation");
    }
}

File name:

CourseInfo.java

Main একটি common name, কারণ এটি প্রায়ই application-এর starting class হিসেবে ব্যবহার করা হয়।


The public Keyword Before the Class

public class Main {
}

এখানে public একটি access modifier।

Access modifier নির্ধারণ করে কোনো class, method বা member কোথা থেকে accessible হবে।

public class অন্য class বা package থেকে accessible হতে পারে।

Beginner level-এ মনে রাখুন:

public class wider scope থেকে ব্যবহার করা যায়।

Access modifier আমরা OOP module-এ বিস্তারিত শিখব।


Public Class and File Name

যদি classটি public হয়:

public class Main {
}

তাহলে source file-এর নাম সাধারণত class name-এর সঙ্গে match করতে হবে:

Main.java

সঠিক:

File: Main.java
Class: public class Main

ভুল:

File: Application.java
Class: public class Main

Compiler error দিতে পারে:

class Main is public, should be declared in a file named Main.java

Opening and Closing Braces

Class declaration-এর শেষে opening brace:

{

Class-এর শেষে closing brace:

}

Example:

public class Main {

}

এই দুই brace-এর মধ্যের অংশ class body।

public class Main {
    Class body
}

Nested Structure

Java code-এর structure nested হতে পারে।

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}

এখানে:

  • বাইরের braces Main class-এর body define করে
  • ভেতরের braces main method-এর body define করে

Structure:

Class opening brace
    Method opening brace
        Statement
    Method closing brace
Class closing brace

Line 3: The Main Method

public static void main(String[] args) {

এটি main method declaration।

এই line-এর মধ্যে কয়েকটি অংশ আছে:

public
static
void
main
String[]
args

এবং:

(
)
{

Complete declaration:

public static void main(String[] args) {

What Is a Method?

Method হলো related instruction-এর একটি named block।

Method কোনো task perform করতে পারে।

Example:

public static void main(String[] args) {
    System.out.println("Hello Java");
}

এখানে method-এর নাম:

main

Method body-এর মধ্যে instruction:

System.out.println("Hello Java");

ভবিষ্যতে আমরা নিজেদের method তৈরি করব:

static void displayWelcomeMessage() {
    System.out.println("Welcome");
}
static int add(int firstNumber, int secondNumber) {
    return firstNumber + secondNumber;
}

Method নিয়ে Module 2-তে বিস্তারিত শেখা হবে।


Why Is main Special?

Basic standalone Java application run করার সময় Java launcher একটি suitable main method খোঁজে।

Traditional standard entry point:

public static void main(String[] args)

Program execution এই method থেকে শুরু হয়।

Example:

public class Main {

    public static void main(String[] args) {
        System.out.println("First instruction");
        System.out.println("Second instruction");
    }
}

Execution order:

  1. JVM Main class load করে
  2. JVM main method খুঁজে
  3. First statement execute করে
  4. Second statement execute করে
  5. Method শেষ হয়
  6. Program normally terminate করে

Output:

First instruction
Second instruction

Method Name: main

main

এটি method-এর নাম।

Java case-sensitive।

তাই নিচেরগুলো একই নয়:

main
Main
MAIN

Correct entry point:

public static void main(String[] args)

ভুল:

public static void Main(String[] args)

এখানে method-এর নাম Main, main নয়।

Java launcher এটিকে standard main method হিসেবে চিনবে না।


The public Keyword in the Main Method

public static void main(String[] args)

এখানে public method-এর access modifier।

public হওয়ার কারণে Java launcher বা JVM-related runtime mechanism methodটি access করতে পারে।

Beginner level-এ মনে রাখুন:

Standard main method সাধারণত public হয়, যাতে application বাইরে থেকে এটি invoke করে শুরু করা যায়।

Access modifier পরে বিস্তারিত শেখা হবে।


The static Keyword

public static void main(String[] args)

static বোঝায় methodটি class-এর সঙ্গে সম্পর্কিত।

এটি call করার জন্য প্রথমে Main class-এর object তৈরি করতে হয় না।

Conceptually runtime call করতে পারে:

Main.main(...)

Object তৈরি করে এমনভাবে call করতে হয় না:

Main mainObject = new Main();
mainObject.main(...);

Standard application startup-এর সময় runtime class-এর object তৈরি না করেই main method invoke করতে পারে।


Instance Method Versus Static Method

Static method:

static void displayMessage() {
    System.out.println("Hello");
}

Instance method:

void displayMessage() {
    System.out.println("Hello");
}

Instance method call করতে সাধারণত object প্রয়োজন।

Static method class-এর মাধ্যমে access করা যায়।

এই difference classes and objects module-এ বিস্তারিত শেখা হবে।


The void Keyword

public static void main(String[] args)

void হলো method-এর return type।

void বোঝায় methodটি কোনো value return করে না।

Example:

static void showMessage() {
    System.out.println("Hello");
}

এই method output print করে, কিন্তু caller-এর কাছে কোনো value return করে না।

অন্যদিকে:

static int getNumber() {
    return 10;
}

এই method একটি int value return করে।

Standard main method:

public static void main(String[] args)

কোনো value return করে না। তাই return type:

void

The Parentheses

Method name-এর পরে parentheses থাকে:

main(...)

Complete example:

main(String[] args)

Parentheses-এর মধ্যে method parameter থাকে।

কোনো parameter না থাকলে empty parentheses হতে পারে:

displayMessage()

Parameter থাকলে:

calculateTotal(int price, int quantity)

main method-এর parameter:

String[] args

What Is a Parameter?

Parameter হলো method-এর input গ্রহণ করার জন্য declaration।

Example:

static void greet(String name) {
    System.out.println("Hello " + name);
}

এখানে:

String name

একটি parameter।

main method-এ:

String[] args

একটি parameter।


Understanding String[] args

public static void main(String[] args)

এখানে:

String[]

parameter-এর type।

args

parameter-এর name।


String

String Java-তে text represent করার একটি class।

Example:

String name = "Sakib";
String course = "Java Foundation";

String নিয়ে পরবর্তী lesson-এ বিস্তারিত শেখা হবে।


[]

Square brackets:

[]

বোঝায় এটি একটি array।

তাই:

String[]

মানে:

একাধিক String value রাখার array।

Array হলো একই ধরনের একাধিক value organize করার structure।

Array পরবর্তী lesson-এ বিস্তারিত শেখা হবে।


args

String[] args

এখানে args parameter-এর নাম।

args সাধারণত arguments শব্দের short form।

Command line থেকে application-এ argument পাঠানো হলে values এই array-এর মধ্যে পাওয়া যায়।

Example command:

java Main Sakib Java

এখানে command-line arguments:

Sakib
Java

Program:

public class Main {

    public static void main(String[] args) {
        System.out.println(args[0]);
        System.out.println(args[1]);
    }
}

Output:

Sakib
Java

Array syntax এখনই পুরোপুরি বুঝতে না পারলেও সমস্যা নেই।


Can args Have Another Name?

হ্যাঁ।

args mandatory parameter name নয়।

নিচের code valid:

public static void main(String[] values) {
    System.out.println("Hello");
}

এটিও valid:

public static void main(String[] commandLineArguments) {
    System.out.println("Hello");
}

Parameter type এবং method structure গুরুত্বপূর্ণ।

তবে convention হিসেবে সাধারণত ব্যবহার করা হয়:

String[] args

Alternative Array Syntax

নিচের syntax-ও technically valid:

public static void main(String args[]) {
}

তবে recommended এবং widely used form:

public static void main(String[] args) {
}

Type-এর সঙ্গে brackets রাখলে code বেশি readable হয়।


Method Body

Opening brace-এর পরে method body শুরু হয়:

public static void main(String[] args) {

Method body শেষ হয় closing brace দিয়ে:

}

Complete method:

public static void main(String[] args) {
    System.out.println("Hello Java");
}

Method body-এর মধ্যে থাকে:

  • Statement
  • Variable declaration
  • Condition
  • Loop
  • Method call
  • Object creation
  • Other logic

Line 4: Output Statement

System.out.println("Hello Java");

এই statement console-এ text print করে।

Output:

Hello Java

Statementটি কয়েকটি অংশে ভাগ করা যায়:

System
.
out
.
println
(
"Hello Java"
)
;

What Is a Statement?

Statement হলো Java program-এর একটি complete instruction।

Example:

System.out.println("Hello Java");

আরেকটি statement:

int age = 30;

আরেকটি statement:

int total = 10 + 20;

বেশিরভাগ simple Java statement semicolon দিয়ে শেষ হয়:

;

Multiple Statements

public class Main {

    public static void main(String[] args) {
        System.out.println("First");
        System.out.println("Second");
        System.out.println("Third");
    }
}

Execution top থেকে bottom:

First
Second
Third

The System Class

System.out.println("Hello Java");

এখানে System Java standard library-এর একটি class।

এটি system-related functionality দেয়।

উদাহরণ:

  • Standard output
  • Standard input
  • Error output
  • Environment property
  • Current time
  • Process-related operation

System class Java automatically provide করে।

এটি ব্যবহার করতে beginner program-এ সাধারণত আলাদা import প্রয়োজন হয় না, কারণ এটি java.lang package-এর অংশ।


The out Member

System.out

out standard output stream represent করে।

Simpleভাবে:

System.out console-এ output পাঠানোর object।

Example:

System.out.println("Java");

Output console-এ যায়।


The Dot Operator

System.out.println

এখানে dot:

.

member access করতে ব্যবহৃত হয়।

Step by step:

System.out

মানে System class-এর out member।

System.out.println

মানে out object-এর println method।

Conceptual structure:

System
└── out
    └── println()

The println Method

println

একটি method।

এটি value print করে এবং শেষে new line যোগ করে।

Example:

System.out.println("Hello");
System.out.println("Java");

Output:

Hello
Java

Passing a Value to println

System.out.println("Hello Java");

Parentheses-এর মধ্যে দেওয়া value method argument।

এখানে argument:

"Hello Java"

Method call:

println("Hello Java")

Parameter and Argument Difference

Parameter method declaration-এ থাকে।

Example:

static void greet(String name) {
}

এখানে name parameter।

Argument method call-এর সময় দেওয়া actual value।

greet("Sakib");

এখানে "Sakib" argument।

println call:

System.out.println("Hello Java");

এখানে "Hello Java" argument।


String Literal

"Hello Java"

এটি একটি String literal।

String literal double quotation marks-এর মধ্যে লেখা হয়:

"..."

Example:

"Java"
"Welcome to LiveKlass"
"Backend Development"

Double Quotes Are Required

সঠিক:

System.out.println("Hello Java");

ভুল:

System.out.println(Hello Java);

Compiler Hello Java-কে valid text value হিসেবে বুঝবে না।


Single Quotes Are Different

Java-তে single quotes সাধারণত single char value-এর জন্য ব্যবহৃত হয়।

Example:

'A'

String:

"Java"

Character:

'J'

নিচেরটি invalid:

'Java'

কারণ single quotes-এর মধ্যে সাধারণত একটি character থাকে।

String এবং char পরবর্তী lesson-এ বিস্তারিত শেখানো হবে।


The Semicolon

Statement-এর শেষে:

;

Example:

System.out.println("Hello Java");

Semicolon compiler-কে statement-এর ending বুঝতে সাহায্য করে।

Semicolon missing:

System.out.println("Hello Java")

Compiler error:

';' expected

Correct:

System.out.println("Hello Java");

Statements That Usually Need Semicolons

Variable declaration:

int age = 30;

Assignment:

age = 31;

Method call:

System.out.println(age);

Object creation:

Student student = new Student();

Blocks Do Not End With a Semicolon

Class block:

public class Main {
}

Method block:

public static void main(String[] args) {
}

সাধারণভাবে closing brace-এর পরে semicolon দেওয়া হয় না।

Avoid:

public class Main {
};

কিছু special syntax-এ braces-এর পরে semicolon থাকতে পারে, তবে basic class এবং method declaration-এ প্রয়োজন নেই।


Code Blocks

Curly braces-এর মধ্যে statement-এর group-কে code block বলা হয়।

Example:

{
    System.out.println("Hello");
    System.out.println("Java");
}

Java-তে block ব্যবহার হয়:

  • Class body
  • Method body
  • Condition
  • Loop
  • Constructor
  • Initializer

Example:

if (age >= 18) {
    System.out.println("Eligible");
}

এখানে condition true হলে block-এর statement execute হয়।


Indentation

Indentation code-এর logical structure visually দেখায়।

Recommended:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}

Hard to read:

public class Main {
public static void main(String[] args) {
System.out.println("Hello Java");
}
}

দুটি version compiler-এর কাছে একইভাবে valid হতে পারে, কিন্তু প্রথমটি মানুষের জন্য বেশি readable।


Common Java Indentation

সাধারণত প্রতিটি nested level-এ চারটি space ব্যবহার করা হয়।

public class Main {                         // Level 0

    public static void main(String[] args) { // Level 1
        System.out.println("Hello");         // Level 2
    }                                       // Level 1
}                                           // Level 0

IntelliJ IDEA automatically code format করতে পারে।

Common formatting shortcut:

Ctrl + Alt + L

macOS keymap অনুযায়ী shortcut আলাদা হতে পারে।


Blank Lines

Blank line code-এর logical section আলাদা করতে সাহায্য করে।

Example:

public class Main {

    public static void main(String[] args) {
        System.out.println("Course information");

        System.out.println("Java Foundation");
        System.out.println("Bangla");
    }
}

অতিরিক্ত blank line avoid করুন।


Whitespace

Java সাধারণত extra whitespace ignore করে।

Valid:

int age = 30;

এটিও valid:

int     age     =     30;

তবে দ্বিতীয়টি readable নয়।

Method call:

System.out.println("Hello");

এটিও compiler accept করতে পারে:

System  .  out  .  println  (  "Hello"  )  ;

কিন্তু standard formatting follow করা উচিত।


Java Is Case-Sensitive

Java uppercase এবং lowercase আলাদাভাবে বিবেচনা করে।

Correct:

System.out.println("Hello");

Incorrect:

system.out.println("Hello");

কারণ:

System

এবং:

system

একই identifier নয়।

Incorrect:

System.Out.Println("Hello");

Correct members:

System.out.println("Hello");

Java Keywords

Programটিতে কয়েকটি Java keyword আছে:

public
class
static
void

Keyword language-এর reserved word।

এগুলো language syntax-এর অংশ।

Keyword variable name হিসেবে ব্যবহার করা যায় না।

Invalid:

int public = 10;

Invalid:

String class = "Java";

Invalid:

boolean static = true;

Identifiers

Identifier হলো programmer-defined name।

আমাদের program-এ identifiers:

Main
main
args
  • Main class name
  • main method name
  • args parameter name

Future identifiers:

int age = 30;

এখানে age identifier।

String courseName = "Java";

এখানে courseName identifier।

Identifier rules পরবর্তী syntax lesson-এ বিস্তারিত শেখানো হবে।


Execution Order

Program:

public class Main {

    public static void main(String[] args) {
        System.out.println("Step 1");
        System.out.println("Step 2");
        System.out.println("Step 3");
    }
}

Java সাধারণত method body-এর statement top থেকে bottom execute করে।

Output:

Step 1
Step 2
Step 3

Order পরিবর্তন করলে output পরিবর্তিত হবে।

public class Main {

    public static void main(String[] args) {
        System.out.println("Step 3");
        System.out.println("Step 1");
        System.out.println("Step 2");
    }
}

Output:

Step 3
Step 1
Step 2

What Happens Before the First Statement?

Program run করলে simplifiedভাবে:

  1. java Main command run হয়
  2. JVM process start হয়
  3. JVM Main class খুঁজে
  4. Main.class load করে
  5. Bytecode verify করে
  6. Suitable main method খুঁজে
  7. main method invoke করে
  8. First statement execute করে

First statement:

System.out.println("Hello Java");

What Happens After the Last Statement?

Program:

public class Main {

    public static void main(String[] args) {
        System.out.println("Program started");
        System.out.println("Program finished");
    }
}

শেষ statement execute হওয়ার পর:

  1. main method complete হয়
  2. কোনো active non-daemon work না থাকলে application terminate করে
  3. Operating system process শেষ করে
  4. IDE exit code দেখাতে পারে

Output:

Program started
Program finished

IDE:

Process finished with exit code 0

Adding More Statements

public class Main {

    public static void main(String[] args) {
        System.out.println("Course: Java and OOP Foundation");
        System.out.println("Module: Programming and Java Fundamentals");
        System.out.println("Lesson: Understanding the First Java Program");
        System.out.println("Language: Bangla");
    }
}

Output:

Course: Java and OOP Foundation
Module: Programming and Java Fundamentals
Lesson: Understanding the First Java Program
Language: Bangla

Using print

println new line তৈরি করে।

print new line তৈরি করে না।

Example:

public class Main {

    public static void main(String[] args) {
        System.out.print("Hello ");
        System.out.print("Java");
    }
}

Output:

Hello Java

Combining print and println

public class Main {

    public static void main(String[] args) {
        System.out.print("Java ");
        System.out.println("Foundation");
        System.out.println("Bangla Course");
    }
}

Output:

Java Foundation
Bangla Course

Printing Different Types of Values

println শুধু text নয়, অন্য value-ও print করতে পারে।

Integer:

System.out.println(100);

Output:

100

Decimal:

System.out.println(99.50);

Output:

99.5

Boolean:

System.out.println(true);

Output:

true

Calculation:

System.out.println(10 + 20);

Output:

30

Text and Calculation

এই statement:

System.out.println(10 + 20);

Output:

30

কিন্তু:

System.out.println("10 + 20");

Output:

10 + 20

কারণ quotation marks-এর ভেতরের content text হিসেবে treat করা হয়।

আরেকটি example:

System.out.println("Total: " + 30);

Output:

Total: 30

+ operator text combine করতেও ব্যবহার করা যায়।

এটি পরবর্তী operator lesson-এ বিস্তারিত শেখানো হবে।


Escape Sequences

String-এর মধ্যে special character represent করতে escape sequence ব্যবহার করা যায়।


New Line: \n

System.out.println("Hello\nJava");

Output:

Hello
Java

Tab: \t

System.out.println("Name\tCourse");
System.out.println("Sakib\tJava");

Possible output:

Name    Course
Sakib   Java

Double Quote: \"

System.out.println("He said, \"Learn Java.\"");

Output:

He said, "Learn Java."

Backslash: \\

System.out.println("C:\\Java\\Projects");

Output:

C:\Java\Projects

Escape sequence পরবর্তী String lesson-এ আরও বিস্তারিত শেখানো হবে।


Comments in the Program

Comment developer-এর জন্য note।

Compiler comment execute করে না।


Single-Line Comment

// This is a comment

Example:

public class Main {

    public static void main(String[] args) {
        // Print the welcome message
        System.out.println("Welcome");
    }
}

Output:

Welcome

Comment output-এর অংশ নয়।


Multi-Line Comment

/*
This is a
multi-line comment
*/

Example:

public class Main {

    public static void main(String[] args) {
        /*
         * Print course information
         * on the console
         */
        System.out.println("Java Foundation");
    }
}

Does Java Ignore Comments?

হ্যাঁ। Compiler comment program instruction হিসেবে execute করে না।

Example:

public class Main {

    public static void main(String[] args) {
        // System.out.println("Hidden message");
        System.out.println("Visible message");
    }
}

Output:

Visible message

প্রথম statement comment করা হয়েছে, তাই execute হবে না।


Common Error: Missing Semicolon

Wrong:

System.out.println("Hello Java")

Correct:

System.out.println("Hello Java");

Possible compiler error:

';' expected

Common Error: Missing Closing Quote

Wrong:

System.out.println("Hello Java);

String-এর closing double quote নেই।

Correct:

System.out.println("Hello Java");

Common Error: Missing Parenthesis

Wrong:

System.out.println("Hello Java";

Closing parenthesis missing।

Correct:

System.out.println("Hello Java");

Common Error: Missing Brace

Wrong:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
}

এখানে method বা class-এর brace structure incomplete।

Correct:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}

Common Error: Extra Closing Brace

Wrong:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}
}

শেষে একটি extra closing brace আছে।

Correct:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}

Common Error: Wrong Capitalization

Wrong:

system.out.println("Hello Java");

Correct:

System.out.println("Hello Java");

Wrong:

System.Out.Println("Hello Java");

Correct:

System.out.println("Hello Java");

Common Error: Incorrect Main Method Name

Wrong:

public static void Main(String[] args) {
}

Correct:

public static void main(String[] args) {
}

Java case-sensitive।


Common Error: Missing static

public void main(String[] args) {
    System.out.println("Hello");
}

এটি একটি method হতে পারে, কিন্তু traditional standard Java application entry point নয়।

Correct:

public static void main(String[] args) {
    System.out.println("Hello");
}

Common Error: Wrong Return Type

Wrong:

public static int main(String[] args) {
    return 0;
}

Traditional standard entry point-এর return type হওয়া উচিত:

void

Correct:

public static void main(String[] args) {
}

Common Error: Code Outside a Class

Wrong:

System.out.println("Hello Java");

public class Main {
}

Java statement basic source structure-এ class বা suitable declaration-এর বাইরে এভাবে রাখা যায় না।

Correct:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}

Common Error: Statement Directly Inside the Class

Wrong:

public class Main {

    System.out.println("Hello Java");
}

Method call সরাসরি class body-তে statement হিসেবে এভাবে রাখা যায় না।

Correct:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}

Reading Compiler Errors

Compiler error হলে panic না করে নিচের information দেখুন:

  • File name
  • Line number
  • Error message
  • Error location indicator
  • Expected token
  • Previous line-এর syntax

Example:

Main.java:4: error: ';' expected
System.out.println("Hello Java")
                                ^

এখানে:

  • File: Main.java
  • Line: 4
  • Error: ';' expected
  • Indicator: statement-এর শেষ

Correct:

System.out.println("Hello Java");

Error May Be on the Previous Line

কখনো compiler যে line highlight করে, actual error তার আগের line-এ থাকতে পারে।

Example:

System.out.println("First")
System.out.println("Second");

Compiler দ্বিতীয় line-এ confusing error দেখাতে পারে।

Actual problem:

System.out.println("First")

এখানে semicolon missing।

Debugging-এর সময় current line-এর সঙ্গে previous line-ও check করুন।


A More Detailed First Program

public class Main {

    public static void main(String[] args) {
        System.out.println("================================");
        System.out.println("Java and OOP Foundation");
        System.out.println("================================");
        System.out.println("Program started successfully.");
        System.out.println("I am learning Java step by step.");
        System.out.println("================================");
    }
}

Output:

================================
Java and OOP Foundation
================================
Program started successfully.
I am learning Java step by step.
================================

Program Structure Diagram

Source File: Main.java
│
└── Class: Main
    │
    └── Method: main
        │
        ├── Statement 1
        ├── Statement 2
        ├── Statement 3
        └── Statement 4

Code:

public class Main {

    public static void main(String[] args) {
        System.out.println("Statement 1");
        System.out.println("Statement 2");
        System.out.println("Statement 3");
        System.out.println("Statement 4");
    }
}

Breaking Down the Entire Program

Program:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}

Breakdown:

CodeMeaning
publicAccess modifier
classClass declare করার keyword
MainClass name
{ }Class বা method block
staticObject ছাড়া class-level method access
voidMethod কোনো value return করে না
mainApplication entry method-এর নাম
String[]String array type
argsCommand-line argument parameter
SystemJava standard library class
outStandard output stream
printlnOutput print করে এবং new line দেয়
"Hello Java"String literal
;Statement terminator

Does Every Java Class Need a Main Method?

না।

প্রতিটি Java class-এর main method থাকা প্রয়োজন নেই।

Example:

public class Student {
}

এই class standalone application entry point নয়।

একটি project-এ একটি class main method রাখতে পারে:

public class Main {

    public static void main(String[] args) {
        System.out.println("Application started");
    }
}

অন্য classগুলো application-এর data এবং behaviour represent করতে পারে:

public class Student {
}
public class Course {
}
public class Enrollment {
}

Can a Project Have Multiple Main Methods?

হ্যাঁ।

Different class-এ আলাদা main method থাকতে পারে।

public class FirstApplication {

    public static void main(String[] args) {
        System.out.println("First application");
    }
}
public class SecondApplication {

    public static void main(String[] args) {
        System.out.println("Second application");
    }
}

যে class run করবেন, সেই class-এর main method execute হবে।


Can a Class Have Multiple Methods?

হ্যাঁ।

public class Main {

    public static void main(String[] args) {
        displayMessage();
    }

    static void displayMessage() {
        System.out.println("Hello Java");
    }
}

Execution:

  1. main method শুরু হয়
  2. displayMessage() call হয়
  3. Message print হয়
  4. displayMessage শেষ হয়
  5. main শেষ হয়

Output:

Hello Java

Method নিয়ে পরবর্তী module-এ বিস্তারিত শেখা হবে।


A Simple Execution Trace

Code:

public class Main {

    public static void main(String[] args) {
        System.out.println("A");
        System.out.println("B");
        System.out.println("C");
    }
}

Execution trace:

Enter main
    ↓
Print A
    ↓
Print B
    ↓
Print C
    ↓
Exit main

Output:

A
B
C

Important Terms

Class

Data এবং behaviour organize করার Java structure।

Class Declaration

একটি class define করার statement।

public class Main {
}

Keyword

Java language-এর reserved word।

উদাহরণ:

public
class
static
void

Method

একটি named block, যা instruction বা behaviour contain করে।

Main Method

Basic Java application-এর traditional entry point।

public static void main(String[] args)

Access Modifier

কোন class বা member কোথা থেকে accessible হবে, তা control করে।

static

Class-এর সঙ্গে সম্পর্কিত member নির্দেশ করে।

void

Method কোনো value return করে না।

Parameter

Method declaration-এর input variable।

Argument

Method call-এর সময় দেওয়া actual value।

Statement

Program-এর একটি complete instruction।

Code Block

Curly braces-এর মধ্যে statement-এর group।

String Literal

Double quotes-এর মধ্যে লেখা text value।

Semicolon

Simple statement-এর ending নির্দেশ করে।

Method Call

একটি method execute করার instruction।

Standard Output

Program-এর normal output destination, সাধারণত console।

Entry Point

Program execution শুরু হওয়ার location।


Practice Exercise 1: Label the Program

নিচের code-এর প্রতিটি অংশ identify করুন:

public class CourseApplication {

    public static void main(String[] args) {
        System.out.println("Course started");
    }
}

Identify করুন:

  1. Access modifier
  2. Class keyword
  3. Class name
  4. Method name
  5. Return type
  6. Parameter type
  7. Parameter name
  8. Method call
  9. String literal
  10. Statement terminator

Practice Exercise 2: Predict the Output

Program run করার আগে output লিখুন:

public class Main {

    public static void main(String[] args) {
        System.out.println("Java");
        System.out.println("OOP");
        System.out.println("Foundation");
    }
}

Practice Exercise 3: Understand print and println

Output predict করুন:

public class Main {

    public static void main(String[] args) {
        System.out.print("Java ");
        System.out.print("and ");
        System.out.println("OOP");
        System.out.println("Foundation");
    }
}

Practice Exercise 4: Fix the Missing Semicolons

নিচের program fix করুন:

public class Main {

    public static void main(String[] args) {
        System.out.println("Java")
        System.out.println("Foundation")
    }
}

Expected output:

Java
Foundation

Practice Exercise 5: Fix the Braces

নিচের code-এর brace structure ঠিক করুন:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello Java");
}

Practice Exercise 6: Fix the Main Method

নিচের method standard entry point নয়:

public void Main(String args) {
    System.out.println("Application started");
}

Fix করুন:

  • Method name
  • static
  • Return type
  • Parameter type

Practice Exercise 7: Create Course Information Output

নিচের output তৈরি করুন:

Course: Java and OOP Foundation
Module: 1
Lesson: Understanding the First Java Program
Language: Bangla

Complete Java program লিখুন।


Practice Exercise 8: Use Escape Sequences

একটি statement ব্যবহার করে নিচের output তৈরি করুন:

Java
OOP
Foundation

Hint:

\n

Practice Exercise 9: Print Quotes

নিচের output তৈরি করুন:

My instructor said, "Practice Java every day."

Hint:

\"

Practice Exercise 10: Command-Line Arguments

Program লিখুন:

public class Main {

    public static void main(String[] args) {
        System.out.println(args[0]);
        System.out.println(args[1]);
    }
}

Compile করুন:

javac Main.java

Run করুন:

java Main Java Foundation

Expected output:

Java
Foundation

তারপর explain করুন:

  1. args[0] কোন value পেয়েছে?
  2. args[1] কোন value পেয়েছে?
  3. args কী ধরনের parameter?

Practice Exercise 11: Identify the Errors

নিচের code-এ সব error খুঁজে বের করুন:

public Class main {

    Public static Void Main(String args) {
        system.out.Println("Hello Java")
    }
}

Correct program লিখুন।

Expected output:

Hello Java

Practice Exercise 12: Execution Order

নিচের program-এর execution order লিখুন:

public class Main {

    public static void main(String[] args) {
        System.out.println("Start");
        System.out.println("Processing");
        System.out.println("Finish");
    }
}

এই format ব্যবহার করুন:

1. ...
2. ...
3. ...

Practice Exercise 13: Class and File Names

প্রতিটি public class-এর correct file name লিখুন।

Class 1

public class Student {
}

Class 2

public class GradeCalculator {
}

Class 3

public class CourseApplication {
}

Practice Exercise 14: Create a Program Banner

নিচের output তৈরি করুন:

================================
JAVA FOUNDATION
================================

Application started successfully.

ব্যবহার করুন:

  • println
  • Empty line
  • String literal

Practice Exercise 15: Explain in Your Own Words

নিজের ভাষায় উত্তর দিন:

  1. Java class কী?
  2. main method কেন গুরুত্বপূর্ণ?
  3. static না থাকলে traditional startup কেন কাজ করবে না?
  4. void কী বোঝায়?
  5. String[] args কী?
  6. Statement কেন semicolon দিয়ে শেষ হয়?
  7. System.out.println কী কাজ করে?
  8. Java case-sensitive হওয়ার অর্থ কী?

Knowledge Check

Question 1

Java code সাধারণত কোথায় লেখা হয়?

Question 2

class keyword-এর কাজ কী?

Question 3

Main কী?

Question 4

Public class-এর নাম Main হলে source file-এর নাম কী হবে?

Question 5

Basic Java application-এর traditional entry point কী?

Question 6

Standard main method signature কী?

Question 7

static keyword কেন ব্যবহার করা হয়?

Question 8

void কী বোঝায়?

Question 9

String[] args কী represent করে?

Question 10

args নামটি কি mandatory?

Question 11

Statement কী?

Question 12

Simple Java statement সাধারণত কোন symbol দিয়ে শেষ হয়?

Question 13

System.out কী represent করে?

Question 14

println কী করে?

Question 15

String literal কোন quotation mark ব্যবহার করে?

Question 16

Java case-sensitive হওয়ার অর্থ কী?

Question 17

Code block কোন symbol দিয়ে তৈরি হয়?

Question 18

print এবং println-এর পার্থক্য কী?

Question 19

প্রতিটি Java class-এর কি main method থাকতে হয়?

Question 20

একটি project-এ কি multiple main method থাকতে পারে?


Knowledge Check Answers

Answer 1

Java code সাধারণত class-এর মধ্যে লেখা হয়।

Answer 2

class keyword একটি class declare করতে ব্যবহৃত হয়।

Answer 3

Main হলো class-এর নাম।

Answer 4

Source file-এর নাম:

Main.java

Answer 5

Traditional entry point হলো:

main

method।

Answer 6

public static void main(String[] args)

Answer 7

static থাকার কারণে runtime Main class-এর object তৈরি না করেই main method invoke করতে পারে।

Answer 8

void বোঝায় method কোনো value return করে না।

Answer 9

String[] args command-line argument গ্রহণ করার একটি String array parameter।

Answer 10

না। args conventionally ব্যবহৃত হয়, কিন্তু অন্য valid identifier ব্যবহার করা যায়।

Answer 11

Statement হলো program-এর একটি complete instruction।

Answer 12

Simple statement সাধারণত semicolon দিয়ে শেষ হয়:

;

Answer 13

System.out standard output stream represent করে।

Answer 14

println value print করে এবং শেষে new line যোগ করে।

Answer 15

String literal double quotes ব্যবহার করে:

"..."

Answer 16

Uppercase এবং lowercase identifier আলাদা হিসেবে গণ্য হয়।

উদাহরণ:

Main
main

একই নয়।

Answer 17

Code block curly braces দিয়ে তৈরি হয়:

{ }

Answer 18

print output-এর পরে new line যোগ করে না। println new line যোগ করে।

Answer 19

না। সব class-এর main method প্রয়োজন নেই।

Answer 20

হ্যাঁ। আলাদা class-এ multiple main method থাকতে পারে।


Lesson Summary

এই lesson-এ আমরা শিখেছি:

  • Java application-এর code সাধারণত class-এর মধ্যে থাকে
  • class keyword class declare করে
  • Main class name এবং Main.java source file name
  • public একটি access modifier
  • Curly braces class এবং method body define করে
  • main basic Java application-এর traditional entry point
  • static থাকার কারণে object ছাড়া main method invoke করা যায়
  • void বোঝায় method কোনো value return করে না
  • String[] args command-line argument গ্রহণ করে
  • Method body-এর মধ্যে statement লেখা হয়
  • Statement সাধারণত semicolon দিয়ে শেষ হয়
  • System Java standard library-এর একটি class
  • System.out standard output stream
  • println output print করে এবং new line যোগ করে
  • Double quotes-এর মধ্যে String literal লেখা হয়
  • Java case-sensitive
  • Indentation code-এর structure readable করে
  • Program statement সাধারণত top-to-bottom execute হয়
  • Compiler error message line number এবং problem বুঝতে সাহায্য করে
  • প্রতিটি class-এর main method প্রয়োজন নেই
  • একটি project-এ multiple runnable class থাকতে পারে

Next Lesson

পরবর্তী lesson-এ আমরা Java syntax এবং coding conventions শিখব।

আমরা জানব:

  • Java case sensitivity
  • Keywords
  • Identifiers
  • Naming rules
  • Naming conventions
  • Semicolons
  • Curly braces
  • Parentheses
  • Whitespace
  • Comments
  • Code formatting
  • Readable Java code লেখার নিয়ম