मुझे एहसास है कि यह शायद का उत्तर नहीं दे सकता है, लेकिन मैं इस बात की तलाश कर रहा हूं कि निजी सदस्यों का सीधे वर्ग या कक्षा के अंदर सार्वजनिक एक्सेसर्स का उपयोग करना है या नहीं। ,निजी सदस्यों या सार्वजनिक एक्सेसर्स का उपयोग करने के तरीके
public class Matrix {
// Private Members
private int[][] e;
private int numRows;
private int numCols;
// Accessors
public int rows(){ return this.numRows; }
public int cols(){ return this.numCols; }
// Class Methods
// ...
public void printDimensions()
{
// [A] Using private members
System.out.format("Matrix[%d*%d]\n", this.numRows, this.numCols);
// [B] Using accessors
System.out.format("Matrix[%d*%d]\n", this.rows(), this.cols());
}
printDimensions()
समारोह में एक ही जानकारी प्राप्त करने के दो तरीके दिखाता है [एक] निजी सदस्यों का उपयोग कर:
उदाहरण के लिए, निम्नलिखित कोड (जावा में है, लेकिन यह सी में बहुत समान लगेगा ++) पर विचार (this.numRows, this.numCols
) या [बी] एक्सेसर्स के माध्यम से (this.rows(), this.cols()
)।
एक तरफ, आप एक्सेसर्स का उपयोग करना पसंद कर सकते हैं क्योंकि कोई रास्ता नहीं है कि आप अनजाने में निजी सदस्य चर के मूल्य को बदल सकते हैं। दूसरी तरफ, आप निजी सदस्यों को उम्मीद में सीधे उम्मीद कर सकते हैं कि यह अनावश्यक फ़ंक्शन कॉल को हटा देगा।
मुझे लगता है कि मेरा प्रश्न है, या तो डी-फैक्टो मानक या पसंदीदा है?
कोड जावा है, सी ++ नहीं, टैग को हटा रहा है। किसी भी दर पर, प्रश्न शायद जावा और सी ++ से अधिक * भाषा-अज्ञेय * है ... –
यह एक धार्मिक हो जाता है। मुझे नहीं लगता कि एक मानक है। हालांकि, जब भी संभव हो, मैं इसे 'छोड़ दूंगा'। –
मैं मानता हूं कि यह भाषा-अज्ञेयवादी प्रतीत होता है, यही कारण है कि मैंने मूल रूप से सी ++ को शामिल किया, क्योंकि जावा को प्रश्न के दायरे को सीमित नहीं किया गया था। – jedwards