"இப்போது இரண்டு சிறுகுறிப்புகளை உருவாக்கி பயன்படுத்துவோம்."
"உதாரணமாக, நாங்கள் ஒரு கேம் இன்ஜினை எழுதுகிறோம் என்று வைத்துக்கொள்வோம். எங்கள் கேமில் குட்டிச்சாத்தான்கள், அரண்மனை காவலர்கள் மற்றும் வில்லன்கள் என மூன்று வகைகளாகப் பல பாத்திரங்கள் உள்ளன."
"விளையாட்டு உருவாகும்போது, புதிய எழுத்துக்கள் சேர்க்கப்படலாம், மேலும் இது கேமின் சமநிலையை மாற்றும். எனவே, ஒவ்வொரு 'எழுத்து வகுப்பிற்கும்' அதன் இயற்பியல் பண்புகளை விவரிக்கும் அதன் சொந்த சிறுகுறிப்பை ஒதுக்குவது மிகவும் வசதியாக இருக்கும்."
"அவ்வாறு செய்வது, வெவ்வேறு கதாபாத்திரங்களுக்கு இடையேயான சண்டைகளை உருவகப்படுத்துவது மற்றும்/அல்லது விளையாட்டு சமநிலையை விரைவாகக் கணக்கிடுவது மிகவும் எளிதாக இருக்கும்."
"நான் ஒப்புக்கொள்கிறேன், அது ஒரு நல்ல யோசனை."
" வாழ்க்கை, வலிமை மற்றும் மந்திரம், அத்துடன் தாக்குதல் மற்றும் பாதுகாப்பு அளவுருக்கள் ஆகியவற்றைச் சேமிக்கும் @Person சிறுகுறிப்பை உருவாக்குவோம் . சிறுகுறிப்பு எப்படி இருக்கிறது:"
@interface Person
{
String name() default "";
int live();
int strength();
int magic() default 0;
int attack() default 0;
int defense();
}
"மேலும், உதாரணமாக, ஒரு வன எல்ஃப் மந்திரவாதியின் விளக்கம் எப்படி இருக்கும் என்பது இங்கே:"
@Person(live = 100, strength = 10, magic = 5, attack = 20, defense = 20)
class Elf
{
…
}
"முக்கிய வில்லனின் விளக்கம் எப்படி இருக்கும் என்பது இங்கே:"
@Person(live = 1000, strength = 150, magic = 250, attack = 99, defense = 99)
class EvilMaster
{
…
}
"நான் பார்க்கிறேன். இது மார்க்கர் இடைமுகங்களை எனக்கு நினைவூட்டுகிறது."
"ஆம். தவிர, முதலில், நீங்கள் எதையும் மரபுரிமையாகப் பெற வேண்டியதில்லை. இரண்டாவதாக, கூடுதல் தகவல்களை சிறுகுறிப்புகளில் சேமிக்கலாம்."
" குறிப்புகளைக் குறிக்க இன்னும் சில சிறுகுறிப்புகள் பயன்படுத்தப்படுகின்றன. அவை இங்கே: "
"@Retention சிறுகுறிப்பு எங்கள் சிறுகுறிப்பு எங்கு தெரியும் என்பதைக் குறிக்கிறது: மூலக் குறியீட்டில், தொகுத்த பிறகும் அல்லது இயக்க நேரத்திலும் கூட."
"@Target சிறுகுறிப்பு சிறுகுறிப்பைப் பயன்படுத்தி குறிப்பாக எதைக் குறிக்கலாம் என்பதைக் குறிக்கிறது: வகுப்புகள், புலங்கள், முறைகள், முறை அளவுருக்கள் போன்றவை."
"எங்கள் சிறுகுறிப்பு சிறுகுறிப்பு வகுப்பிற்குப் பயன்படுத்தப்பட வேண்டும், மேலும் சிறுகுறிப்பு வகுப்பிற்கு மட்டும் பயன்படுத்தப்பட வேண்டுமென்றால், அதை @Inherited உடன் சிறுகுறிப்பு செய்ய வேண்டும்."
"இது எங்கள் @நபர். சிறுகுறிப்பு எப்படி இருக்கும்."
@Target(value = ElementType.TYPE)
@Retention(value = RetentionPolicy.RUNTIME)
@interface Person
{
String name() default "";
int live();
int strength();
int magic() default 0;
int attack() default 0;
int defence();
}
"ரொம்ப சுவாரசியமாக இருந்தது, நன்றி ரிஷி."
ஆனால் நிரலில் இந்த சிறுகுறிப்புகளுடன் நீங்கள் எவ்வாறு செயல்படுகிறீர்கள்? நீங்கள் அவற்றை எவ்வாறு பயன்படுத்துகிறீர்கள்? அவற்றின் மதிப்புகளை நீங்கள் எவ்வாறு படிக்கிறீர்கள்?"
"இது பொதுவாக பிரதிபலிப்பைப் பயன்படுத்தி செய்யப்படுகிறது ."
"எந்த பாத்திரம் வலிமையானது என்பதை நாங்கள் எவ்வாறு தீர்மானிப்பது என்பது இங்கே:"
public boolean fight(Class first, Class second)
{
if (!first.isAnnotationPresent(Person.class))
throw new RuntimeException("first param is not game person");
if (!second.isAnnotationPresent(Person.class))
throw new RuntimeException("second param is not game person");
Person firstPerson = (Person) first.getAnnotation(Person.class);
Person secondPerson = (Person) second.getAnnotation(Person.class);
int firstAttack = firstPerson.attack() * firstPerson.strength() + firstPerson.magic();
int firstPower = firstPerson.live() * firstPerson.defence() * firstAttack;
int secondAttack = secondPerson.attack() * secondPerson.strength() + secondPerson.magic();
int secondPower = secondPerson.live() * secondPerson.defence() * secondAttack;
return firstPower > secondPower;
}
"எங்களுக்குத் தேவையான முறைகள் இங்கே:"
முறைகள் | விளக்கம் |
---|---|
|
வகுப்பில் குறிப்பிட்ட சிறுகுறிப்பு உள்ளதா என்பதைச் சரிபார்க்கிறது |
|
வகுப்பில் குறிப்பிட்ட சிறுகுறிப்பு இருந்தால், ஒரு சிறுகுறிப்பு பொருளை வழங்கும். |
|
வகுப்பின் அனைத்து சிறுகுறிப்புகளின் வரிசையை வழங்குகிறது |
"அருமை. சிறுகுறிப்பு பெறுவது மிகவும் எளிமையானதாக இருக்கும் என்று நான் எதிர்பார்க்கவில்லை."
"ஊஹூம்." விரும்பிய சிறுகுறிப்பு வகையை கடந்து, பொருளின் getAnnotation முறையை அழைக்கவும்."
"இன்னைக்கு அவ்வளவுதான்."
"நன்றி, ரிஷி. இது மிகவும் சுவாரஸ்யமான பாடமாக இருந்தது. இப்போது நான் தண்ணீர் செய்வது போன்ற சிறுகுறிப்புகளுக்கு நான் பயப்படவில்லை."
GO TO FULL VERSION