ูููุชุฎูู ุฃูู ุฏุฎูุช ุฅูู ู ูุงุจูุฉ ุนู ู ููุธููุฉ ู ุจุฑู ุฌ ูู ุฌุงูุง ููุงุฌูู ูุฐุง ุงูุณุคุงู:
ูู ูุฐุง ุงูููุฏุ ู
ุงูู ููุน ุงูู
ุชุญููุงุช o
ู n
ู i
ุ
Object o = new Integer(4);
Number n = new Integer(4);
Integer i = new Integer(4);
ุญูููุฉู ุงูุณุคุงู ู ุถูู ููุนุงู ู ุงุ ููุง ุฌูุงุจู ู ุจุงุดุฑู. ูู ุฌุงฺคุง ูู ุง ูู ู ุนุธู ูุบุงุช ุงูุจุฑู ุฌุฉ ุงูุชู ุชุฏุนู ุงูุจุฑู ุฌุฉ ุงูุบุฑุถูุฉ ููุงู ุชุนุฏุฏ ุงูุฃุดูุงู (Polymorphism) ุญูุซ ูู ูู ูู ุชุญูู ุฃู ูุฃุฎุฐ ุนุฏุฉ ุฃุดูุงู.
ูุธุงู ุงูุฃููุงุน Type System Link to heading
ุชุนุชุจุฑ ุฌุงูุง ูุบุฉู ุฐุงุช ูุธุงู ุฃููุงุน ููู (Strongly Typed Language)ุ ุฃู ุฅุฐุง ู ุฑ ุงูููุฏ ู ุฑุญูุฉ ุงูุชุฑุฌู ุฉ (Compilation)ุ ูุฅู ุงูุจุฑูุงู ุฌ ุณูุนู ู ุจุฏูู ู ูุงุฌุขุช ุนู ูู ุงู.
โ ๏ธ ูุงููุฌุฏ ุฅุฌู ุงุน ุนูู ุชุนุฑูู ุฑุณู ู (Formal Definition) ูููุฉ ูุธุงู ุงูุฃููุงุน
ุนูุฏู ุง ูููู ุจุฅุณูุงุฏ ููู ุฉ ุชุงุจุน ู ุง ูู ุชุญููุ ูุชู ุงูุชุญูู ู ู ุตุญุฉ ูุฐู ุงูุนู ููุฉ ุนุจุฑ ูุธุงู ุฌุงูุง ููุชุญูู ู ู ุงูุฃููุงุน (Java Type Checker).
ููุฐุง ูุงูู ููู ุฃู ุชูุชุจ:
Integer age = scanner.nextLine();
ูุฃู ุงูู
ุชุญูู age
ูู ููุน Integer ูู
ุชุญูู ุงูุฃููุงุน ูู ุฌุงูุง ูุฑู ุฃูู ุชุญุงูู ุฅุณูุงุฏู scanner.nextLine
ุงูุชู ุชุฑุฌุน ููู
ุฉ ูุตูุฉ Stringุ ูุจุงูุชุงูู ูุงูุณู
ุญ ูู ุญุชูู ุจุชุฑุฌู
ุฉ ุงูููุฏ.
๐ก ูู ุฌุงูุงุณูุฑุจุช ู ุซูุงู ููุฐุง ุฎุทุฃ ูุง ูููุชุดู ุฅูุง ุนูุฏ ุชุดุบูู ุงูููุฏ
ุจููู
ุง ูุฐุง ุงูููุฏ ูุนู
ู ุจุฏูู ู
ุดุงูู ูุฃููุง ุนุฑููุง ุนู ุงูู
ุชุญูู age
ู
ู ููุน Object.
Object age = scanner.nextLine();
๐ก ุงูููุงุณ Object
ูู ุฃุจ ููู ุงูููุงุณุงุช ูู ุฌุงูุงุ ุฃู ุฃู ุฌู
ูุน ุงูููุงุณุงุช ุชุฑุซู. ูุจุงูุชุงูู ู
ูุชุญูู ุงูุฃููุงุน (Type Checker) ูุง ูุฑู ู
ุดููุฉ ูู ูุฐุง.
ูุจู ุงูุฎูุถ ูู ุงูุฅุฌุงุจุฉ ุนู ุงูุณุคุงู ูู ุจุฏุงูุฉ ุงูู ูุดูุฑุ ูุฌุจ ุฃู ูุจููู ุฃู ููู ุชุญููุงุช ููุนุงู:
- ููุน ุณุชุงุชููู (Static Type) : ุงูููุน ุงูุฐู ุชู ุงูุชุนุฑูู ุนูู ูู ุงูููุฏ ูุจู ุงุณู ุงูู ุชุญูู. (ุซุงุจุช ูุงูุชุบูุฑ)
- ููุน ุฏููุงู ููู (Dynamic Type) : ููุน ุงููุงุฆู (Object) ุงูุฐู ุชู ุฅุณูุงุฏู ุฅูููู . (ูู ูู ุฃู ูุชุบูุฑ)
ูููุฃุฎุฐ ูุฐุง ุงูููุฏ ูู ุซุงู:
Object o = new Integer(4);
o = new String("I am a string now");
ูุฑู ุฃู ุงูู
ุชุญูู o
ูู ุงูููุน ุงูุณุชุงุชููู Object
ุงูุฐู ูุง ูู
ูู ุฃู ูุชุบูุฑ. ูููู ูู ุงูุณุทุฑ ุงูุฃูู ุงูู
ุชุญูู ูู ุงูููุน ุงูุฏููุงู
ููู Integer
ูุงูููู
ุฉ ุงูุนุฏุฏูุฉ 4
ุ ุฃู
ุง ูู ุงูุณุทุฑ ุงูุซุงูู ููุชุบูุฑ ููุนู ุฅูู String
ูุชุตุจุญ ููู
ุชู I am a string now
.
๐ค ููู ุณู ุญุช ููุง ุฌุงูุง ุจุงุณูุงุฏ ุนุฏุฏ ููุต ูุฐุงุช ุงูู ุชุญููุ
ูููุฌุฑูุจ Link to heading
ู
ู ุงูู
ุนููู
ุฃู ุฌุงูุง ูุงุชุณู
ุญ ุจุชุฎุฒูู ู
ุชุญููุงุช ู
ู ุฃูุซุฑ ู
ู ููุน ูู ููุณ ุงูู
ุตูููุฉุ ูููู ูู
ูููุง ุงูุชุญุงูู ุนูู ุฌุงูุง ูุฌุนููุง ุชุณู
ุญ ุจุฐูู ุนุจุฑ ุชุนุฑูู ู
ุตูููุฉ ู
ู ููุน Object
(ููุน ุณุชุงุชููู). ูููู ูู
ูุฃ ุนูุงุตุฑูุง ุจูุตูุต ูุฃุฑูุงู
.
ุจุนุฏูุง ูู ุฑ ุนูู ุนูุงุตุฑ ุงูู ุตูููุฉ ููุชุญูู ู ู ุงูููุน ุงูุฏููุงู ูููุ ูู ุญุงู ูุงู ุฑูู ุงู ุตุญูุญุงู Integer ุฃู ูุตุงู Stringุ ูุทุจุน ุฐูู ู ุน ููู ุฉ ุงูุนูุตุฑ.
public class TypeChecking {
public static void main(String[] args) {
Object array[] = new Object[4];
array[0] = new String("Name 1");
array[1] = new Integer(4);
array[2] = new String("Name 2");
array[3] = new Double(3.14);
for (int i = 0; i < 4; i++) {
if (array[i] instanceof String) {
System.out.print("This is a string: ");
System.out.println(array[i]);
} else if (array[i] instanceof Integer) {
System.out.print("This is an integer: ");
System.out.println(array[i]);
} else {
System.out.println("Unknown dynamic type.");
}
}
}
}
โ๏ธ ุฌุฑุจ ุงูููุฏ
๐ก ุงูููู
ุฉ ุงูู
ูุชุงุญูุฉ (Keyword) instanceof
ุชุชุญูู ู
ู ุฃุตู ุงููุงุฆู (ููุงุณู)
ุฅุฐุงู ู ุง ุงูุฌูุงุจุ Link to heading
ุญุณุจ ู
ุงุณุจู ูููู ุฌูุงุจ ุงูุณุคุงู ูู ุฃูู ุงูู
ูุดูุฑ ุฃู ุงูููุน ุงูุณุชุงุชููู ููู ู
ู o
ู n
ูi
ูู Object ู Number ู Integer ุนูู ุงูุชุฑุชูุจ.
ุงูููุน ุงูุฏููุงู
ููู ูู Integer ูููู.