SlideShare une entreprise Scribd logo
1  sur  25
Объект хандлагат програмчлалын хэл  Java Хичээл :  C S203 Багш :   Д.Энхжаргал Төрөл хувиргалт: автомат ба механик төрөл хувиргалт Mongolia University of Science & Technology
Java  хэлний өгөгдлийн үндсэн төрлүүд
[object Object],[object Object],[object Object],[object Object],Java  хэлний Төрөл хөрвүүлэх зарчим
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Java  хэлний өгөгдлийн төрлүүд ( Үндсэн ойлголт сэргээх нь )
ӨҮТ-ийн хөрвүүлэлт  (Conversion of primitives ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Энгийн төрлийн хөрвүүлэлт: Утга олголт ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Энгийн төрлийн хөрвүүлэлт: Утга олголт Компилятор энд алдаа заана  !!! double  төрлийн утгыг  short  төрөл рүү хөрвүүлж  d айна   int  төрлийн утгыг  double  төрөл рүү хөрвүүлж байна
[object Object],[object Object],[object Object],Энгийн төрлийн хөрвүүлэлт: Утга олголт char short byte int long float double
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Энгийн төрлийн хөрвүүлэлт: Утга олголт
[object Object],Энгийн төрлийн хөрвүүлэлт: Утга олголт char short byte int long float double
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Энгийн төрлийн хөрвүүлэлт: Утга олголт
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Төрөл хувиргалт  (Casting)
Төрөл хувиргалт  (Casting) ,[object Object],[object Object],Зураг:  short төрлийг byte төрөлд хувиргах
ӨҮТ-ийн хөрвүүлэлт: Функц дуудалт ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Math.cos()  нь  double  төрлийн 1 аргументтай  стандарт функц билээ  .  Энд   түүнийг   float  төрлийн аргументтай дуудаж байна.  float  төрлийн өргөн  double  төрлийн өргөнөөс ихгүй тул төрлийг   автоматаар хөрвүүлэх учраас компилятор алдаа заахгүй
Энгийн төрлийн хөрвүүлэлт: Функц дуудалт ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],int   төрлийн 1 аргументтай double  төрлийн 1 аргументтай   дуудахад компилятор алдаа заана .
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Энгийн төрлийн хөрвүүлэлт: Илэрхийлэл
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Энгийн төрлийн хөрвүүлэлт: Илэрхийлэл
Энгийн төрлийн хөрвүүлэлт: Илэрхийлэл Програмын  double result=((f*b)+(i/c)-(d*s));  гэсэн мөрөнд тайлбар хийе. ( f*b)  илэрхийлэлд  b  операндын төрлийг  float  төрлөөр өргөтгөн үр дүн нь  float  төрөл гарна. ( i/c)  илэрхийлэлд  c  операндын төрлийг  int  төрлөөр өргөтгөн үр дүн нь  int  төрөл гарна. ( d*s)  илэрхийлэлд  s  операндын төрлийг  double  төрлөөр өргөтгөн үр дүн нь  double  төрөл гарна.
Энгийн төрлийн хөрвүүлэлт: Илэрхийлэл Дээрх дэд илэрхийллийн үр дүн болох  float, int  болон  double  төрлийн операндууд дээр үйлдэл хийхдээ  float, int  опеарандуудын нийлбэрийн үр дүн  float  төрөл гарна. float, double  опеарандуудын нийлбэрийн үр дүн  double  төрөл гарна. Ийнхүү  result  хувьсагч нь илэрхийллийн эцсийн үр дүн болох  double  төрөл хүртэл өргөтгөгдан гарч байна.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Заалт төрлийн хөрвүүлэлт
Заалт төрлийн хөрвүүлэлт Хуучин төрлийг шинэ төрөл рүү хөрвүүлэх нь Oldtype   нь  класс  бол Oldtype   нь  интерфейс  бол Oldtype   нь  массив  бол Newtype  нь  класс  бол Oldtype   нь  Newtype -ийнхаа хүү класс байна Newtype  нь  Object  байх ёстой Newtype  нь  Object  байх ёстой Newtype  нь  интерфейс  бол Oldtype   нь  Newtype   интерфейсийг хэрэгжүүлэгч байна Oldtype   нь  Newtype   интерфейсийн дэд интерфейс байна Newtype  нь  Cloneable  байх ёстой Newtype  нь  массив  бол Компилятор алдаа заана Компилятор алдаа заана Newtype  нь  Oldtype -  руугаа автоматаар хөрвүүлэгдэх боломжтой.
Заалт төрлийн хөрвүүлэлт ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Заалт төрлийн хөрвүүлэлт Object Animal Bird Implements  Flyable Tagtaa Boljmor Haraatsai Хуучин төрөл  Tagtaa  нь  Bird  гэсэн шинэ төрлийнхөө хүү класс нь тул хөрвүүлэлтийг автоматаар хийнэ
[object Object],Заалт төрлийн хөрвүүлэлт Асуудлыг хэрхэн шийдэх вэ???   Object Animal Bird Implements  Flyable Tagtaa Boljmor Haraatsai Хуучин төрөл  Bird   нь  Tagtaa  гэсэн шинэ төрлийнхөө хүү нь биш эх класс нь тул компилятор алдаа заана Мөрийг  tagtaa = (Tagtaa)bird;  мөрөөр солих. Ингэснээр  compiletime  алдаа заахгүй боловч  runtime  алдаа заана
[object Object],ClassCastException No error in CompileTime RunTime Error

Contenu connexe

Tendances

U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10Badral Khurelbaatar
 
Dsi lec4
Dsi lec4Dsi lec4
Dsi lec4ggmo86
 
U.cs101 алгоритм программчлал-5 zasvar badral(1)
U.cs101   алгоритм программчлал-5 zasvar badral(1)U.cs101   алгоритм программчлал-5 zasvar badral(1)
U.cs101 алгоритм программчлал-5 zasvar badral(1)Badral Khurelbaatar
 

Tendances (20)

U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
 
Өгөгдлийн бүтэц 8,9
Өгөгдлийн бүтэц 8,9Өгөгдлийн бүтэц 8,9
Өгөгдлийн бүтэц 8,9
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12
 
Lecture 4 нийлмэл удамшил
Lecture 4 нийлмэл удамшилLecture 4 нийлмэл удамшил
Lecture 4 нийлмэл удамшил
 
Java programchlal s.uuganbayr
Java programchlal s.uuganbayrJava programchlal s.uuganbayr
Java programchlal s.uuganbayr
 
Java lecture5
Java lecture5Java lecture5
Java lecture5
 
Sw203 Lecture4 Class Object
Sw203 Lecture4  Class ObjectSw203 Lecture4  Class Object
Sw203 Lecture4 Class Object
 
U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10
 
лекц-3
лекц-3лекц-3
лекц-3
 
Dsi lec4
Dsi lec4Dsi lec4
Dsi lec4
 
Лекц-3
Лекц-3Лекц-3
Лекц-3
 
Өгөгдлийн бүтэц 15
Өгөгдлийн бүтэц 15Өгөгдлийн бүтэц 15
Өгөгдлийн бүтэц 15
 
Лекц 6 - 7
Лекц 6 - 7Лекц 6 - 7
Лекц 6 - 7
 
Өгөгдлийн бүтэц 10
Өгөгдлийн бүтэц 10Өгөгдлийн бүтэц 10
Өгөгдлийн бүтэц 10
 
C cons
C consC cons
C cons
 
CS203 Лекц02 Oop
CS203 Лекц02  OopCS203 Лекц02  Oop
CS203 Лекц02 Oop
 
U.cs101 алгоритм программчлал-5 zasvar badral(1)
U.cs101   алгоритм программчлал-5 zasvar badral(1)U.cs101   алгоритм программчлал-5 zasvar badral(1)
U.cs101 алгоритм программчлал-5 zasvar badral(1)
 
Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3
 
2
22
2
 

En vedette (20)

Lecture10 1239357245
Lecture10 1239357245Lecture10 1239357245
Lecture10 1239357245
 
Lec2 c++helnii undeslel
Lec2 c++helnii undeslelLec2 c++helnii undeslel
Lec2 c++helnii undeslel
 
Tutorial of python
Tutorial of pythonTutorial of python
Tutorial of python
 
Sw203lab6
Sw203lab6Sw203lab6
Sw203lab6
 
Lab6 db
Lab6 dbLab6 db
Lab6 db
 
Sw203 Lab7
Sw203 Lab7Sw203 Lab7
Sw203 Lab7
 
Sw203lab5
Sw203lab5Sw203lab5
Sw203lab5
 
Програм ба зүйрлэл
Програм ба зүйрлэлПрограм ба зүйрлэл
Програм ба зүйрлэл
 
SW203 Lab10
SW203  Lab10SW203  Lab10
SW203 Lab10
 
Лабораторийн ажил № 2
Лабораторийн ажил № 2Лабораторийн ажил № 2
Лабораторийн ажил № 2
 
Cs203 lab8
Cs203 lab8Cs203 lab8
Cs203 lab8
 
Video lab1-web
Video lab1-webVideo lab1-web
Video lab1-web
 
Sw203 Lecture12 Composition
Sw203 Lecture12 CompositionSw203 Lecture12 Composition
Sw203 Lecture12 Composition
 
Lab5
Lab5Lab5
Lab5
 
Lab10 11
Lab10 11Lab10 11
Lab10 11
 
Lab 12
Lab 12Lab 12
Lab 12
 
Лабораторийн ажил № 1
Лабораторийн ажил № 1Лабораторийн ажил № 1
Лабораторийн ажил № 1
 
Lab7
Lab7Lab7
Lab7
 
Laboratory 14
Laboratory 14Laboratory 14
Laboratory 14
 
Cs203 lecture 14 reflection
Cs203 lecture 14  reflectionCs203 lecture 14  reflection
Cs203 lecture 14 reflection
 

Similaire à Sw203 Lecture11 Casting (17)

Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Лекц-1
Лекц-1Лекц-1
Лекц-1
 
Lec3
Lec3Lec3
Lec3
 
C
CC
C
 
Lekts1
Lekts1Lekts1
Lekts1
 
Lekts1
Lekts1Lekts1
Lekts1
 
Lekts1
Lekts1Lekts1
Lekts1
 
Lecture 2
Lecture 2Lecture 2
Lecture 2
 
Lesson 7
Lesson 7Lesson 7
Lesson 7
 
Лекц 3
Лекц 3Лекц 3
Лекц 3
 
visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
2
22
2
 
visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
Lecture2
Lecture2Lecture2
Lecture2
 
Lec1
Lec1Lec1
Lec1
 
Ci hel
Ci helCi hel
Ci hel
 

Plus de Jargalsaikhan Alyeksandr (10)

Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)
 
Microsoft IT Academy
Microsoft IT AcademyMicrosoft IT Academy
Microsoft IT Academy
 
Computer ethics and system security
Computer ethics and system securityComputer ethics and system security
Computer ethics and system security
 
Cs203 lecture13 composition
Cs203 lecture13 compositionCs203 lecture13 composition
Cs203 lecture13 composition
 
SW203 Lab9
SW203  Lab9SW203  Lab9
SW203 Lab9
 
Sw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess ModifiersSw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess Modifiers
 
Sw203lab8
Sw203lab8Sw203lab8
Sw203lab8
 
S W203 Lecture8 Interface
S W203  Lecture8  InterfaceS W203  Lecture8  Interface
S W203 Lecture8 Interface
 
Sw203 Lecture8 Interface
Sw203 Lecture8 InterfaceSw203 Lecture8 Interface
Sw203 Lecture8 Interface
 
Sw203 Lecture3 Advanced Java Program
Sw203 Lecture3 Advanced Java ProgramSw203 Lecture3 Advanced Java Program
Sw203 Lecture3 Advanced Java Program
 

Sw203 Lecture11 Casting

  • 1. Объект хандлагат програмчлалын хэл Java Хичээл : C S203 Багш : Д.Энхжаргал Төрөл хувиргалт: автомат ба механик төрөл хувиргалт Mongolia University of Science & Technology
  • 2. Java хэлний өгөгдлийн үндсэн төрлүүд
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Энгийн төрлийн хөрвүүлэлт: Илэрхийлэл Програмын double result=((f*b)+(i/c)-(d*s)); гэсэн мөрөнд тайлбар хийе. ( f*b) илэрхийлэлд b операндын төрлийг float төрлөөр өргөтгөн үр дүн нь float төрөл гарна. ( i/c) илэрхийлэлд c операндын төрлийг int төрлөөр өргөтгөн үр дүн нь int төрөл гарна. ( d*s) илэрхийлэлд s операндын төрлийг double төрлөөр өргөтгөн үр дүн нь double төрөл гарна.
  • 19. Энгийн төрлийн хөрвүүлэлт: Илэрхийлэл Дээрх дэд илэрхийллийн үр дүн болох float, int болон double төрлийн операндууд дээр үйлдэл хийхдээ float, int опеарандуудын нийлбэрийн үр дүн float төрөл гарна. float, double опеарандуудын нийлбэрийн үр дүн double төрөл гарна. Ийнхүү result хувьсагч нь илэрхийллийн эцсийн үр дүн болох double төрөл хүртэл өргөтгөгдан гарч байна.
  • 20.
  • 21. Заалт төрлийн хөрвүүлэлт Хуучин төрлийг шинэ төрөл рүү хөрвүүлэх нь Oldtype нь класс бол Oldtype нь интерфейс бол Oldtype нь массив бол Newtype нь класс бол Oldtype нь Newtype -ийнхаа хүү класс байна Newtype нь Object байх ёстой Newtype нь Object байх ёстой Newtype нь интерфейс бол Oldtype нь Newtype интерфейсийг хэрэгжүүлэгч байна Oldtype нь Newtype интерфейсийн дэд интерфейс байна Newtype нь Cloneable байх ёстой Newtype нь массив бол Компилятор алдаа заана Компилятор алдаа заана Newtype нь Oldtype - руугаа автоматаар хөрвүүлэгдэх боломжтой.
  • 22.
  • 23.
  • 24.
  • 25.