কাজটি
আমি অনুমান করি যে প্রত্যেকে স্বয়ংক্রিয় কোড উত্পন্ন এবং কাজের সময় কিছুটা সময় সাশ্রয় পছন্দ করে। দিনের বেলা আপনাকে অনেক ক্লাস এবং সদস্য তৈরি করতে হবে এবং আপনি getters
নিজে নিজে সেগুলি তৈরি করতে চান না ।
কাজটি হ'ল একটি প্রোগ্রাম বা ফাংশন লিখুন যা আপনার getters
জন্য সমস্ত শ্রেণীর সদস্যদের জন্য স্বয়ংক্রিয়ভাবে উত্পন্ন হয় ।
ইনপুট
আমাদের ভাষায় অবজেক্ট খুব সহজ। ক্লাস এবং সদস্যের নাম অবশ্যই একটি চরিত্র দিয়ে শুরু করা উচিত [a-zA-Z]
এবং কেবলমাত্র অক্ষরগুলি ধারণ করতে পারে [a-zA-Z0-9]
। এখানে একটি উদাহরণ:
class Stack {
public overflow;
protected trace;
private errorReport;
}
আউটপুট
এটি প্রদত্ত উদাহরণের ভিত্তিতে একটি বৈধ আউটপুট:
class Stack {
public overflow;
protected trace;
private errorReport;
public function getOverflow() {
return this->overflow;
}
public function getTrace() {
return this->trace;
}
public function getErrorReport() {
return this->errorReport;
}
}
দ্য গেট
একটি getter
পদ্ধতির প্রয়োজনীয়তাগুলি হ'ল:
- ফাংশনটির নামটি অবশ্যই
get
প্রথমে একটি বড় হাতের অক্ষরের সাথে সদস্যের নাম দিয়ে শুরু করা উচিত । - ফাংশনের কোনও পরামিতি নেই।
- একটি পরিবর্তনশীল ব্যবহার ফিরে
return this->memberName;
। getters
এবংsetters
( দেখুন বোনাসেস ) দলবদ্ধ হতে হবে এবং সব পরিবর্তনশীল ঘোষণা পরে আসা উচিত নয়।
উদাহরণ:
private value1;
private value2;
public function getValue1() { return this->value; }
public function setValue1(value) { this->value = value; }
public function getValue2() { return this->value; }
public function setValue2(value) { this->value = value; }
প্রয়োজনীয়তা
- একটি প্রোগ্রাম বা একটি ফাংশন তৈরি করুন।
- এসটিডিআইএন, কমান্ড লাইন আর্গুমেন্ট, ফাংশন আর্গুমেন্ট, একটি ফাইল ইত্যাদি থেকে ইনপুট আসতে পারে
- যে কোনও আউটপুট ফর্ম্যাট একটি সাধারণ
return
মূল্য থেকে একটি ফাইল বা STDOUT এ লেখার পক্ষে গ্রহণযোগ্য । - ইন- এবং আউটপুট সঙ্গে অনুসরণকারী শূণ্যস্থান, নতুন লাইন, ট্যাব ইত্যাদি এটিকে একটি বৈধ ইনপুট ফরম্যাট করা প্রয়োজন না:
class A{protected a;}
। - আপনি ধরে নিতে পারেন যে ইনপুটটি বৈধ এবং আপনার প্রোগ্রামটি অপ্রত্যাশিত ইনপুটটি অপ্রত্যাশিতভাবেও পরিচালনা করতে পারে।
বোনাসস
প্রতিটি বৈশিষ্ট্যের জন্য 30% প্রত্যাহার করে আপনি আপনার আসল বাইট গণনার 10% তে নামতে পারেন:
উত্তর: আপনার প্রোগ্রামটি নতুন যুক্ত হওয়া ভেরিয়েবলগুলিকে সম্বোধন করতে পারে এবং getters
কেবলমাত্র অনুপস্থিত ( public function getB() { return this->b; }
এই ক্ষেত্রে) যুক্ত করতে পারে:
class A {
public a;
public b;
public function getA() { return this->a; }
}
বি: আপনার প্রোগ্রামটিও উত্পন্ন করে setters
:
class A {
public a;
public getA() { return this->a; }
public setA(a) { this->a = a; }
}
সি: আপনার প্রোগ্রামটি স্থির সদস্যদের পরিচালনা করতে পারে:
class A {
public static c;
public static function getC() { return this->c; }
}
এটি কোড গল্ফ - তাই বাইট জেতে সংক্ষিপ্ত উত্তর। স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।
A
এবং যখন B
আইটেমগুলিতে গেটারগুলি থাকা উচিত, তবে কোনও সেটটার নেই, সেটে আউটপুটটিতে সেটার থাকতে হবে?
this
কোনও static
অ্যাক্সেসর হিসাবে উল্লেখ করার অনুমতি রয়েছে ?