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

getter เป็นวิธีการเข้าถึงสาธารณะซึ่งใช้ในการเขียนโปรแกรมเชิงวัตถุซึ่งส่งคืนค่าที่เกี่ยวข้องกับสมาชิกส่วนตัวของคลาส

30
เหตุใดจึงต้องใช้ getters และ setters / accessors
อะไรคือข้อดีของการใช้ getters และ setters - ที่รับและตั้งค่า - แทนที่จะใช้เพียงฟิลด์สาธารณะสำหรับตัวแปรเหล่านั้น หาก getters และ setters ทำมากกว่าแค่การรับ / เซตง่ายๆฉันสามารถหาอันนี้ออกมาได้อย่างรวดเร็ว แต่ฉันไม่ชัดเจน 100% ว่า: public String foo; มีอะไรที่แย่ไปกว่า: private String foo; public void setFoo(String foo) { this.foo = foo; } public String getFoo() { return foo; } ในขณะที่อดีตใช้รหัสน้อยกว่ามาก
1541 java  oop  setter  getter  abstraction 

17
มุมมองของ getWidth () และ getHeight () ส่งคืนค่า 0
ฉันกำลังสร้างองค์ประกอบทั้งหมดในโครงการ Android ของฉันแบบไดนามิก ฉันพยายามรับความกว้างและความสูงของปุ่มเพื่อให้สามารถหมุนปุ่มนั้นได้ ฉันแค่พยายามเรียนรู้วิธีทำงานกับภาษา Android อย่างไรก็ตามมันจะคืนค่า 0 ฉันทำวิจัยบางอย่างและฉันเห็นว่าต้องทำที่อื่นนอกเหนือจากonCreate()วิธีการ ถ้ามีคนสามารถยกตัวอย่างให้ฉันฟังได้ว่ามันยอดเยี่ยมมาก นี่คือรหัสปัจจุบันของฉัน: package com.animation; import android.app.Activity; import android.os.Bundle; import android.view.animation.Animation; import android.view.animation.LinearInterpolator; import android.view.animation.RotateAnimation; import android.widget.Button; import android.widget.LinearLayout; public class AnimateScreen extends Activity { //Called when the activity is first created. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout ll = …

9
ทำไม JSF เรียก getters หลายครั้ง
สมมติว่าฉันระบุองค์ประกอบ outputText ดังนี้: <h:outputText value="#{ManagedBean.someProperty}"/> ถ้าฉันพิมพ์ข้อความบันทึกเมื่อเรียกใช้ getter somePropertyและโหลดเพจมันเป็นเรื่องเล็กน้อยที่จะสังเกตเห็นว่ามีการเรียกใช้ getter มากกว่าหนึ่งครั้งต่อการร้องขอ (สองหรือสามครั้งเป็นสิ่งที่เกิดขึ้นในกรณีของฉัน): DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property หากมูลค่าของ somePropertyการคำนวณนั้นมีราคาแพงอาจเป็นปัญหาได้ ฉัน googled เล็กน้อยและคิดว่านี่เป็นปัญหาที่ทราบแล้ว วิธีแก้ไขปัญหาหนึ่งคือการรวมการตรวจสอบและดูว่ามีการคำนวณแล้วหรือไม่: private String someProperty; public String getSomeProperty() { if (this.someProperty == null) { this.someProperty = this.calculatePropertyValue(); } return …
256 performance  jsf  el  getter 

16
เราจะสร้างตัวตั้งและตัวตั้งค่าใน Visual Studio ได้อย่างไร
โดย "สร้าง" ฉันหมายถึงการสร้างรหัสอัตโนมัติที่จำเป็นสำหรับตัวแปรที่เลือก (ชุด) แต่คำอธิบายหรือความคิดเห็นที่ชัดเจนเกี่ยวกับแนวปฏิบัติที่ดีนั้นยินดีต้อนรับ

9
การปฏิบัติที่ดีหรือไม่ดี? การเริ่มต้นวัตถุในทะเยอทะยาน
ฉันมีนิสัยแปลก ๆ ... อย่างน้อยตามที่เพื่อนร่วมงานของฉัน เราทำงานร่วมกันในโครงการขนาดเล็กด้วยกัน วิธีที่ฉันเขียนคลาสคือ (ตัวอย่างง่าย ๆ ): [Serializable()] public class Foo { public Foo() { } private Bar _bar; public Bar Bar { get { if (_bar == null) _bar = new Bar(); return _bar; } set { _bar = value; } } } โดยพื้นฐานแล้วฉันจะเริ่มต้นเขตข้อมูลใด ๆ เมื่อมีการเรียกทะเยอทะยานและฟิลด์ยังคงเป็นโมฆะ ฉันคิดว่าสิ่งนี้จะช่วยลดการโอเวอร์โหลดโดยไม่เริ่มต้นคุณสมบัติใด …
167 c#  coding-style  getter 

3
ความแตกต่างใน C # ระหว่างสไตล์ getter ที่แตกต่างกัน
บางครั้งฉันเห็นตัวย่อในคุณสมบัติของผู้ทะเยอทะยาน เช่นสองประเภทนั้น: public int Number { get; } = 0 public int Number => 0; ใครช่วยได้โปรดบอกฉันว่ามีความแตกต่างระหว่างทั้งสอง พวกเขาทำงานอย่างไร ทั้งคู่เป็นแบบอ่านอย่างเดียวหรือไม่

12
Getters \ setters สำหรับ Dummies
ฉันพยายามทำให้หัวของฉันอยู่รอบ ๆ getters และ setters และมันก็ไม่จมลงไปฉันอ่านJavaScript Getters and SettersและDefining Getters and Settersแต่ก็ไม่เข้าใจ ใครสามารถระบุอย่างชัดเจน: สิ่งที่ผู้เริ่มต้นและผู้ตั้งถิ่นฐานตั้งใจจะทำและ ยกตัวอย่างง่ายๆบางอย่าง?

4
วิธีที่ดีที่สุดในการเรียกร้องความสนใจโดยการไตร่ตรอง
ฉันต้องการรับค่าของฟิลด์ที่มีคำอธิบายประกอบเฉพาะดังนั้นด้วยการสะท้อนฉันจึงได้รับ Field Object นี้ ปัญหาคือฟิลด์นี้จะเป็นแบบส่วนตัวเสมอแม้ว่าฉันจะรู้ล่วงหน้าว่ามันจะมีวิธี getter เสมอ ฉันรู้ว่าฉันสามารถใช้ setAccesible (true) และรับค่าของมันได้ (เมื่อไม่มี PermissionManager) แม้ว่าฉันจะชอบเรียกใช้เมธอด getter ก็ตาม ฉันรู้ว่าฉันสามารถค้นหาเมธอดได้โดยค้นหา "get + fieldName" (แม้ว่าฉันจะรู้ว่าบางครั้งฟิลด์บูลีนจะถูกตั้งชื่อเป็น "is + fieldName") ฉันสงสัยว่ามีวิธีที่ดีกว่าในการเรียกใช้ getter นี้หรือไม่ (เฟรมเวิร์กจำนวนมากใช้ getters / setters เพื่อเข้าถึงแอตทริบิวต์ดังนั้นอาจใช้วิธีอื่น) ขอบคุณ
127 java  reflection  getter 

14
คอมเมนต์ Getter / Setter ง่ายๆ
คุณใช้หลักการใดในการแสดงความคิดเห็นผู้รับและผู้ตั้งถิ่นฐาน? นี่เป็นสิ่งที่ฉันสงสัยมาระยะหนึ่งแล้วเช่น: /** * (1a) what do you put here? * @param salary (1b) what do you put here? */ public void setSalary(float salary); /* * (2a) what do you put here? * @return (2b) */ public float getSalary(); ฉันมักจะพบว่าฉันมักจะเขียนสิ่งเดียวกันสำหรับ 1a / b และ 2a / b เช่น 1a) กำหนดเงินเดือนของพนักงาน …

4
คีย์เวิร์ด“ get” ก่อนฟังก์ชันในคลาสคืออะไร
อะไรgetเฉลี่ยในชั้นเรียน ES6 นี้หรือไม่? ฉันจะอ้างอิงฟังก์ชันนี้ได้อย่างไร? ฉันควรใช้มันอย่างไร? class Polygon { constructor(height, width) { this.height = height; this.width = width; } get area() { return this.calcArea() } calcArea() { return this.height * this.width; } }


4
getters และ setters สำหรับคลาส ECMAScript 6 คืออะไร?
ฉันสับสนว่าจุดของ getters และ setters ในคลาส ECMAScript 6 คืออะไร จุดประสงค์คืออะไร? ด้านล่างนี้เป็นตัวอย่างที่ฉันอ้างถึง: class Employee { constructor(name) { this._name = name; } doWork() { return `${this._name} is working`; } get name() { return this._name.toUpperCase(); } set name(newName){ if(newName){ this._name = newName; } } }

3
ลอมบอกทะเยอทะยาน / setter vs Java 14 บันทึก
ฉันชอบโครงการลอมบอกแต่ในวันนี้ฉันกำลังอ่านและลองคุณสมบัติใหม่ของ java 14 ภายในความสามารถใหม่นี้มีคีย์เวิร์ดของเรกคอร์ดที่อนุญาตให้สร้างคลาสที่มีฟังก์ชันการทำงานต่อไปนี้แล้ว: คอนสตรัคเตอร์ฟิลด์สุดท้ายส่วนตัว accessors, equals / hashCode, getters, toString ตอนนี้คำถามของฉันคือดีกว่าที่จะพึ่งพาคุณสมบัติของลอมบอกหรือเราควรเริ่มใช้ฟังก์ชั่นบันทึก: ดีกว่าที่จะใช้สิ่งนี้: record Person (String name, String surname) {} หรือว่า: @AllArgsConstructor @ToString @EqualsAndHashCode public class GetterSetterExample { @Getter private int name; @Getter private int surname; } ข้อดีและข้อเสียของทั้งสองวิธีคืออะไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.