คำถามติดแท็ก private

ไพรเวตเป็นวิธีการห่อหุ้มในการเขียนโปรแกรมเชิงวัตถุ

28
ความแตกต่างระหว่าง public, protected, package-private และ private ใน Java คืออะไร?
ใน Java จะมีกฎระเบียบที่ชัดเจนในเวลาที่จะใช้ในแต่ละของการปรับเปลี่ยนการเข้าถึงคือค่าเริ่มต้น (แพคเกจเอกชน) public, protectedและprivateในขณะที่ทำให้classและinterfaceและการจัดการกับมรดก?

17
ความแตกต่างระหว่างสาธารณะส่วนตัวและได้รับการคุ้มครองคืออะไร
เมื่อไหร่และทำไมฉันจึงควรใช้public, privateและprotectedฟังก์ชั่นและตัวแปรภายในชั้นเรียน? ความแตกต่างระหว่างพวกเขาคืออะไร? ตัวอย่าง: // Public public $variable; public function doSomething() { // ... } // Private private $variable; private function doSomething() { // ... } // Protected protected $variable; protected function doSomething() { // ... }
988 php  oop  private  public  protected 

12
Python มีตัวแปร "ส่วนตัว" ในชั้นเรียนหรือไม่?
ฉันมาจากโลก Java และการอ่านบรูซ Eckels' งูใหญ่ 3 รูปแบบสูตรและสำนวน ในขณะที่อ่านเกี่ยวกับคลาสมันจะบอกว่าใน Python ไม่จำเป็นต้องประกาศตัวแปรอินสแตนซ์ คุณเพียงแค่ใช้พวกมันในตัวสร้างและบูมพวกมันอยู่ที่นั่น ตัวอย่างเช่น: class Simple: def __init__(self, s): print("inside the simple constructor") self.s = s def show(self): print(self.s) def showMsg(self, msg): print(msg + ':', self.show()) หากเป็นจริงวัตถุของคลาสใด ๆ ก็Simpleสามารถเปลี่ยนค่าของตัวแปรsนอกคลาสได้ ตัวอย่างเช่น: if __name__ == "__main__": x = Simple("constructor argument") x.s = "test15" # …
578 python  class  private 

13
วิธีอ่านค่าของฟิลด์ส่วนตัวจากคลาสอื่นใน Java
ฉันมีคลาสที่ออกแบบมาไม่ดีในบุคคลที่สามJARและฉันจำเป็นต้องเข้าถึงหนึ่งในฟิลด์ส่วนตัวของมัน ตัวอย่างเช่นทำไมฉันต้องเลือกเขตข้อมูลส่วนตัวจึงจำเป็น? class IWasDesignedPoorly { private Hashtable stuffIWant; } IWasDesignedPoorly obj = ...; ฉันจะใช้การสะท้อนเพื่อรับค่าได้stuffIWantอย่างไร

30
คุณจะทดสอบวิธีการส่วนตัวได้อย่างไร
ฉันกำลังสร้างห้องสมุดชั้นเรียนที่จะมีวิธีการของรัฐและเอกชน ฉันต้องการที่จะทดสอบหน่วยวิธีการส่วนตัว (ส่วนใหญ่ในขณะที่การพัฒนา แต่ยังเป็นประโยชน์สำหรับการปรับโครงสร้างในอนาคต) วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร?

11
เปลี่ยนฟิลด์สแตติกสุดท้ายส่วนตัวโดยใช้การสะท้อน Java
ฉันมีคลาสที่มีprivate static finalฟิลด์ที่โชคไม่ดีที่ฉันต้องเปลี่ยนมันในเวลาทำงาน ใช้การสะท้อนฉันได้รับข้อผิดพลาดนี้: java.lang.IllegalAccessException: Can not set static final boolean field มีวิธีการเปลี่ยนแปลงค่าหรือไม่? Field hack = WarpTransform2D.class.getDeclaredField("USE_HACK"); hack.setAccessible(true); hack.set(null, true);


22
แอตทริบิวต์คงสุดท้ายส่วนตัวเทียบกับคุณลักษณะส่วนตัวสุดท้าย
ใน Java ความแตกต่างระหว่าง: private final static int NUMBER = 10; และ private final int NUMBER = 10; ทั้งสองprivateและfinalแตกต่างคือstaticคุณลักษณะ มีอะไรดีกว่ากัน และทำไม?


3
ถ้าฉันแยก Github ส่วนตัวของคนอื่นซื้อบัญชีของฉันมันจะปรากฏในบัญชีของฉันในฐานะสมาชิกซื้อคืนสาธารณะหรือไม่
มีคนให้ฉันเข้าถึงหนึ่งใน repo ส่วนตัวของพวกเขาใน Github สิ่งที่ฉันต้องทำคือการแยกโครงการนั้นเข้าสู่บัญชีของฉันเองดังนั้นฉันสามารถใช้คุณลักษณะคำขอดึงของ Github ฉันมีบัญชีพื้นฐานบน Github เท่านั้นดังนั้นฉันไม่สามารถสร้าง repos ส่วนตัวได้ด้วยตัวเอง แต่ถ้าฉันแยก repo ส่วนตัวของคนอื่นมาสู่บัญชีของฉันมันจะปรากฏในบัญชีของฉันในที่สาธารณะหรือไม่

17
คลาสย่อยสืบทอดฟิลด์ส่วนบุคคลหรือไม่
นี่คือคำถามสัมภาษณ์ คลาสย่อยสืบทอดฟิลด์ส่วนบุคคลหรือไม่ ฉันตอบว่า "ไม่" เพราะเราไม่สามารถเข้าถึงได้โดยใช้ "วิธี OOP ปกติ" แต่ผู้สัมภาษณ์คิดว่าพวกเขาได้รับมรดกเพราะเราสามารถเข้าถึงสาขาดังกล่าวทางอ้อมหรือใช้การสะท้อนและพวกเขายังคงอยู่ในวัตถุ หลังจากฉันกลับมาฉันพบข้อความอ้างอิงต่อไปนี้ในjavadoc : สมาชิกส่วนตัวใน Superclass คลาสย่อยไม่สืบทอดสมาชิกส่วนตัวของคลาสพาเรนต์ คุณรู้ข้อโต้แย้งใด ๆ สำหรับความคิดเห็นของผู้สัมภาษณ์หรือไม่?
245 java  oop  inheritance  private 

8
การกำหนดฟังก์ชั่นโมดูลส่วนตัวในหลาม
ตามhttp://www.faqs.org/docs/diveintopython/fileinfo_private.html : เช่นเดียวกับภาษาส่วนใหญ่ Python มีแนวคิดเกี่ยวกับองค์ประกอบส่วนตัว: ฟังก์ชั่นส่วนตัวซึ่งไม่สามารถเรียกได้ นอกโมดูล อย่างไรก็ตามถ้าฉันกำหนดสองไฟล์: #a.py __num=1 และ: #b.py import a print a.__num เมื่อฉันb.pyพิมพ์มันออกมา1โดยไม่มีข้อยกเว้น เป็นการดำน้ำที่ไม่ถูกต้องหรือฉันเข้าใจผิดบางอย่าง? และจะมีวิธีการบางอย่างไม่กำหนดหน้าที่ของโมดูลเป็นส่วนตัว?

19
การโคลน repo Github ส่วนตัว
ฉันมีพื้นที่เก็บข้อมูลส่วนตัวบน Github สำหรับโครงการที่ฉันกำลังทำงานอยู่ จนถึงตอนนี้ฉันทำงานบนเดสก์ท็อปที่บ้านของฉันเท่านั้น แต่ฉันเพิ่งซื้อแล็ปท็อปและพยายามติดตั้งเพื่อที่ฉันจะสามารถทำงานในโครงการได้จากคอมพิวเตอร์เครื่องใดเครื่องหนึ่งและเปลี่ยน / ดัน ฉันเพิ่มคีย์ SSH ใหม่ให้กับบัญชี Github ของฉันสำหรับแล็ปท็อปและประสบความสำเร็จในการโคลนและทำการเปลี่ยนแปลง repo การทดสอบสาธารณะที่ฉันตั้งค่า อย่างไรก็ตามฉันไม่สามารถลอกแบบ repo ส่วนตัวได้ มีอะไรพิเศษที่ฉันต้องทำในบรรทัดคำสั่งเพื่อที่จะลอกเลียนแบบ repo ส่วนตัวหรือไม่? ฉันจำเป็นต้องตั้งค่าบัญชี GitHub ใหม่สำหรับแล็ปท็อปของฉันและตั้งค่าตัวเองเป็นผู้ทำงานร่วมกันหรือไม่ คำสั่งที่ฉันใช้คือ git clone git://github.com/myusername/reponame.git
226 git  github  private 


10
ทำไมคลาส Java ภายนอกสามารถเข้าถึงสมาชิกส่วนตัวของคลาสภายในได้
ฉันสังเกตว่าคลาสภายนอกสามารถเข้าถึงตัวแปรอินสแตนซ์ส่วนตัวของคลาสภายในได้ เป็นไปได้อย่างไร? นี่คือตัวอย่างรหัสที่แสดงให้เห็นถึงสิ่งเดียวกัน: class ABC{ class XYZ{ private int x=10; } public static void main(String... args){ ABC.XYZ xx = new ABC().new XYZ(); System.out.println("Hello :: "+xx.x); ///Why is this allowed?? } } เหตุใดพฤติกรรมนี้จึงอนุญาต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.