Programming and Java Fundamentals
Understanding the First Java Program
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 Mainstatement-এর অংশগুলো বুঝতেmainmethod-এর ভূমিকা ব্যাখ্যা করতে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-এ মনে রাখুন:
publicclass 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
Mainclass-এর body define করে - ভেতরের braces
mainmethod-এর 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:
- JVM
Mainclass load করে - JVM
mainmethod খুঁজে - First statement execute করে
- Second statement execute করে
- Method শেষ হয়
- 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
mainmethod সাধারণত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[]
মানে:
একাধিক
Stringvalue রাখার 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.outconsole-এ 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
Mainclass namemainmethod nameargsparameter 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ভাবে:
java Maincommand run হয়- JVM process start হয়
- JVM
Mainclass খুঁজে Main.classload করে- Bytecode verify করে
- Suitable
mainmethod খুঁজে mainmethod invoke করে- 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 হওয়ার পর:
mainmethod complete হয়- কোনো active non-daemon work না থাকলে application terminate করে
- Operating system process শেষ করে
- 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:
| Code | Meaning |
|---|---|
public | Access modifier |
class | Class declare করার keyword |
Main | Class name |
{ } | Class বা method block |
static | Object ছাড়া class-level method access |
void | Method কোনো value return করে না |
main | Application entry method-এর নাম |
String[] | String array type |
args | Command-line argument parameter |
System | Java standard library class |
out | Standard output stream |
println | Output 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:
mainmethod শুরু হয়displayMessage()call হয়- Message print হয়
displayMessageশেষ হয়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 করুন:
- Access modifier
- Class keyword
- Class name
- Method name
- Return type
- Parameter type
- Parameter name
- Method call
- String literal
- 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 করুন:
args[0]কোন value পেয়েছে?args[1]কোন value পেয়েছে?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
নিজের ভাষায় উত্তর দিন:
- Java class কী?
mainmethod কেন গুরুত্বপূর্ণ?staticনা থাকলে traditional startup কেন কাজ করবে না?voidকী বোঝায়?String[] argsকী?- Statement কেন semicolon দিয়ে শেষ হয়?
System.out.printlnকী কাজ করে?- 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-এর মধ্যে থাকে
classkeyword class declare করেMainclass name এবংMain.javasource file namepublicএকটি access modifier- Curly braces class এবং method body define করে
mainbasic Java application-এর traditional entry pointstaticথাকার কারণে object ছাড়াmainmethod invoke করা যায়voidবোঝায় method কোনো value return করে নাString[] argscommand-line argument গ্রহণ করে- Method body-এর মধ্যে statement লেখা হয়
- Statement সাধারণত semicolon দিয়ে শেষ হয়
SystemJava standard library-এর একটি classSystem.outstandard output streamprintlnoutput 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-এর
mainmethod প্রয়োজন নেই - একটি 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 লেখার নিয়ম