தொகுதி பாடங்கள் (2/2)
முறைகள் மற்றும் அதிக சுமை
முறைகள் ஒரு பொருளின் நடத்தையை வரையறுக்கின்றன. பொருளின் நிகழ்வு புலங்கள் அல்லது உள்வரும் அளவுருக்களில் செயல்படும் ஒரு வகுப்பிற்குள் அறிவிக்கப்பட்ட செயல்பாடுகளாக அவற்றை நாம் கருதலாம்.
ஒரு முறையை வரையறுத்தல்
ஜாவாவில் ஒரு முறை பின்வருவனவற்றைக் கொண்டுள்ளது:
- அணுகல் மாற்றி (எ.கா.,
public,private). - ** திரும்பும் வகை** (எ.கா.,
int,String, அல்லதுvoidஎதையும் திருப்பித் தரவில்லை என்றால்). - முறையின் பெயர்
camelCaseஇல். - அளவுருக்கள் அடைப்புக்குறிக்குள் இணைக்கப்பட்டுள்ளது.
- முறை உடல் சுருள் பிரேஸ்களில் இணைக்கப்பட்டுள்ளது.
class Person {
String name;
public Person(String name) {
this.name = name;
}
// Method with return type String
public String greet() {
return "Ciao, mi chiamo " + name;
}
}ஒரு முறை அழைப்பு
உருவாக்கப்பட்ட பொருளில் ஒரு முறையைப் பயன்படுத்த, நாங்கள் புள்ளிக் குறிப்பைப் பயன்படுத்துகிறோம் .:
public class Main {
public static void main(String[] args) {
Person p = new Person("Marco");
String message = p.greet(); // Calling the method
System.out.println(message);
}
}முறை ஓவர்லோடிங்
ஜாவாவில், ஒரே வகுப்பில் உள்ள இரண்டு அல்லது அதற்கு மேற்பட்ட முறைகள் வெவ்வேறு அளவுரு பட்டியல் (எண், வரிசை அல்லது அளவுருக்களின் வகைகளில்) இருக்கும் வரை, ஒரே பெயரை கொண்டிருக்கலாம். இந்த கருத்து ஓவர்லோடிங் என அழைக்கப்படுகிறது.
அழைப்பின் போது அனுப்பப்பட்ட வாதங்களை பகுப்பாய்வு செய்வதன் மூலம் எந்த முறையைத் தொடங்குவது என்பதை தொகுப்பாளர் தீர்மானிக்கிறார்.
class Printer {
// Method to print an integer
public void printValue(int number) {
System.out.println("Intero: " + number);
}
// Overloaded method to print a string
public void printValue(String text) {
System.out.println("Testo: " + text);
}
}அளவுரு மதிப்பின் மூலம் கடந்து செல்கிறது
ஜாவாவில், அனைத்து அளவுருக்களும் ** மதிப்பின்படி** (பாஸ்-பை-வேல்யூ) அனுப்பப்படும். இதன் பொருள் நீங்கள் ஒரு முறைக்கு ஒரு வாதத்தை அனுப்பும்போது, ஜாவா மாறியின் மதிப்பின் நகலை உருவாக்கி அதை முறைக்கு அனுப்புகிறது.
- பழமையான வகைகளுக்கு, முறையின் உள்ளே மாற்றப்பட்டாலும், முறைக்கு வெளியே உள்ள அசல் மதிப்பு மாறாது.
- பொருள்கள்/குறிப்புகளுக்கு, பொருளின் குறிப்பு நகலெடுக்கப்பட்டது. இதன் பொருள், அசல் பொருள் சுட்டிக்காட்டும் நினைவக முகவரியை நம்மால் மாற்ற முடியாது, அதன் உள் நிலையை (எ.கா., அதன் புலங்கள்) மாற்றலாம் மற்றும் அந்த மாற்றங்கள் வெளியே தெரியும்.
ஓவர்லோடிங் வரம்புகள்: திரும்பும் வகை
திரும்பும் வகையை மட்டுமே அடிப்படையாகக் கொண்ட ஒரு முறையை நீங்கள் ஓவர்லோட் செய்ய முடியாது என்பதை கவனத்தில் கொள்ள வேண்டும். எடுத்துக்காட்டாக, பின்வரும் குறியீடு தொகுத்தல் பிழையை ஏற்படுத்தும்:
class Example {
// ERROR: The signature of the two methods is considered identical
public int getNumber() { return 42; }
public double getNumber() { return 42.0; }
}தொகுக்கும் நேரத்தில் எந்தப் பதிப்பை அழைக்க வேண்டும் என்பதைத் தீர்மானிக்க, அளவுருக்களின் அடிப்படையில் மட்டுமே கம்பைலர் முறைகளை வேறுபடுத்த வேண்டும் (தொகுக்கும் நேரத்தில் அதிக சுமை தீர்க்கப்படும்).
நீங்களே முயற்சி செய்து பாருங்கள்
இரண்டு எண்களின் கூட்டுத்தொகையை வழங்கும் கால்குலேட்டர் வகுப்பில் ஒரு பொது எண்ணைச் சேர்(int a, int b) முறையைச் சேர்க்கவும். முக்கிய முறையில், இந்த முறையை calc ஆப்ஜெக்ட்டில் அழைத்து முடிவை ஒரு முழு எண் மாறிக்கு ஒதுக்கவும்.
குறிப்பைக் காட்டு
முறையை `public int add(int a, int b) { return a + b; }` மற்றும் அதை முக்கிய முறையில் `int result = calc.add(5, 10);` என அழைக்கவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
இரண்டு இரட்டை அளவுருக்களை ஏற்று அவற்றின் தொகையை வழங்கும் மற்றொரு முறையை உருவாக்குவதன் மூலம் கால்குலேட்டர் வகுப்பில் சேர்க்கும் முறையை ஓவர்லோட் செய்யவும்.
குறிப்பைக் காட்டு
`பொது இரட்டைச் சேர்(இரட்டை a, இரட்டை b) {எழுது a + b; }` முதல் சேர்க்கும் முறைக்கு நேரடியாக கீழே.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
இரண்டு எண்களின் பெருக்கத்தை வழங்கும் கால்குலேட்டர் வகுப்பில் ஒரு பொது எண்ணைப் பெருக்க (int a, int b) முறையைச் சேர்க்கவும். முக்கிய முறையில், இந்த முறையை calc ஆப்ஜெக்ட்டில் அழைத்து முடிவை ஒரு முழு எண் மாறிக்கு ஒதுக்கவும்.
குறிப்பைக் காட்டு
இந்த முறையை `public int multiply(int a, int b) என அறிவிக்கவும் { return a * b; }` மற்றும் அதை முக்கிய முறையில் `int result = calc.multiply(5, 10);` என அழைக்கவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்