งาน
ฉันเดาว่าทุกคนชอบการสร้างรหัสอัตโนมัติและประหยัดเวลาในการทำงาน คุณต้องสร้างชั้นเรียนและสมาชิกจำนวนมากในระหว่างวันและคุณไม่ต้องการสร้างสิ่งเหล่านั้นgetters
ด้วยตนเอง
ภารกิจคือการเขียนโปรแกรมหรือฟังก์ชั่นที่สร้างขึ้นgetters
สำหรับสมาชิกทุกคนในชั้นเรียนให้คุณโดยอัตโนมัติ
การป้อนข้อมูล
ในวัตถุภาษาของเรานั้นง่ายมาก ชื่อของชั้นเรียนและสมาชิกจะต้องเริ่มต้นด้วย chararacter จากและสามารถมีตัวอักษร[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; }
ความต้องการ
- สร้างโปรแกรมหรือฟังก์ชั่น
- อินพุตอาจมาจาก STDIN อาร์กิวเมนต์บรรทัดคำสั่งอาร์กิวเมนต์ฟังก์ชันไฟล์ ฯลฯ
- รูปแบบเอาต์พุตใด ๆ ที่ยอมรับได้จาก
return
ค่าง่าย ๆไปยังไฟล์หรือการเขียนไปยัง STDOUT - ในและส่งออกไม่จำเป็นต้องมีรูปแบบที่มีช่องว่าง, การขึ้นบรรทัดใหม่แท็บ ฯลฯ
class A{protected a;}
นี่คือการป้อนข้อมูลที่ถูกต้อง: - คุณสามารถสมมติว่าอินพุตนั้นถูกต้องและโปรแกรมของคุณสามารถจัดการอินพุตที่ไม่คาดคิดได้เช่นกัน
โบนัส
คุณสามารถลดจำนวนไบต์เดิมได้ถึง 10% โดยถอน 30% สำหรับแต่ละฟีเจอร์:
ตอบ:โปรแกรมของคุณสามารถระบุตัวแปรที่เพิ่มใหม่และเพิ่มส่วนที่ขาดหายไปgetters
เท่านั้น ( public function getB() { return this->b; }
ในกรณีนี้):
class A {
public a;
public b;
public function getA() { return this->a; }
}
B:โปรแกรมของคุณสร้างด้วยsetters
:
class A {
public a;
public getA() { return this->a; }
public setA(a) { this->a = a; }
}
C:โปรแกรมของคุณสามารถจัดการกับสมาชิกแบบคงที่:
class A {
public static c;
public static function getC() { return this->c; }
}
นี่คือรหัสกอล์ฟ - ดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ ช่องโหว่มาตรฐานไม่ได้รับอนุญาต
A
และB
รายการที่มี getters แต่ไม่มี setters มี setters ในเอาต์พุตหรือไม่
this
ในstatic
การเข้าถึง?