Variables aur Types
Java ke primitive types mein int, double, boolean, aur char shaamil hain — har variable ka ek declared type hota hai, aur ek baar declare hone ke baad woh type fixed ho jaata hai. Dhyan do ki yeh primitives hain, objects nahi: ek boolean true ya false word ke roop mein print hota hai, 0 ya 1 nahi.
public class Main {
public static void main(String[] args) {
int age = 30;
double price = 19.99;
boolean isStudent = false;
char grade = 'A';
System.out.println(age + " " + price + " " + isStudent + " " + grade);
}
}30 19.99 false A
var type inference
var compiler ko ek variable ka type uske initializer se infer karne deta hai, jo Java 10 mein introduce hua tha — useful hai jab type obvious ya verbose ho. Yeh phir bhi compile time par ek fixed, fully static type produce karta hai; yeh dynamic type nahi hai jaisa shayad ek scripting language mein ho sakta hai.
public class Main {
public static void main(String[] args) {
var count = 42; // inferred as int
var pi = 3.14159; // inferred as double
System.out.println(count + " " + pi);
}
}42 3.14159
Ek real type-mismatch error kaisa dikhta hai
Java ka compiler check karta hai ki har assignment ke types actually line up hote hain — jahan int expect kiya gaya hai wahan String assign karna ek compile error hai, koi aisi cheez nahi jo baad mein runtime par pakdi jaaye. Yeh genuinely woh hai jo javac report karta hai — ek real run se capture kiya gaya hai, plausible dikhne ke liye likha nahi gaya:
public class Main {
public static void main(String[] args) {
int age = "thirty";
System.out.println(age);
}
}Main.java:3: error: incompatible types: String cannot be converted to int
int age = "thirty";
^
1 errorKuch bhi run nahi hota — koi output nahi, bas error. Ise runtime ke bajaye compile time par pakadna Java ki static typing ke main benefits mein se ek hai.
Aage: operators aur control flow — if/else, for, while, aur switch.
Practice exercise
Ek variable temperature, type double ka, 72.5 par set karo aur ek variable isSunny, type boolean ka, true par set karo. Dono ko ek space se separate karke saath mein print karo.