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

เมธอดคือบล็อกของโค้ดที่ทำงานและเชื่อมโยงกับคลาสหรือวัตถุ มันเกี่ยวข้องกับแนวคิดที่ไม่ใช่เชิงวัตถุของฟังก์ชั่นและขั้นตอน

5
ทำไมไม่เป็นสาขานามธรรม?
เหตุใดคลาส Java จึงไม่มีฟิลด์นามธรรมเช่นเดียวกับที่สามารถมีวิธีนามธรรมได้ ตัวอย่างเช่นฉันมีสองคลาสที่ขยายคลาสพื้นฐานนามธรรมเดียวกัน ทั้งสองคลาสนี้แต่ละคลาสมีวิธีการที่เหมือนกันยกเว้นค่าคงที่ของสตริงซึ่งเป็นข้อความแสดงข้อผิดพลาดภายในพวกเขา ถ้าฟิลด์เป็นนามธรรมฉันสามารถสร้างนามธรรมคงที่นี้และดึงเมธอดขึ้นมาในคลาสฐาน แต่ฉันต้องสร้างเมธอดนามธรรมที่เรียกว่าgetErrMsg()ในกรณีนี้ที่ส่งคืน String แทนที่เมธอดนี้ในคลาสที่ได้รับสองคลาสจากนั้นฉันสามารถดึงเมธอดขึ้นมาได้ (ซึ่งตอนนี้เรียกว่าเมธอดนามธรรม) เหตุใดฉันจึงไม่สามารถสร้างบทคัดย่อภาคสนามขึ้นมาได้ Java ได้รับการออกแบบมาเพื่ออนุญาตสิ่งนี้หรือไม่?
102 java  methods  field  abstract 


7
วิธีตรวจหาวิธีที่ไม่ได้ใช้และ #import ใน Objective-C
หลังจากทำงานกับแอพ iPhone เป็นเวลานานฉันตระหนักว่ารหัสของฉันค่อนข้างสกปรกมี #import และวิธีการหลายอย่างที่ไม่ได้เรียกหรือมีประโยชน์เลย ฉันต้องการทราบว่ามีคำสั่งคอมไพเลอร์หรือวิธีตรวจจับบรรทัดโค้ดที่ไร้ประโยชน์เหล่านั้นหรือไม่ Xcode มีเครื่องมือตรวจจับสิ่งนี้หรือไม่?

5
จุดประสงค์ของ“!” คืออะไร และ“?” ท้ายชื่อเมธอด?
บางครั้งฉันเห็นวิธีการใน Ruby ที่มี "?" และ "!" ในตอนท้ายของพวกเขาเช่น: name = "sample_string" name.reverse name.reverse! name.is_binary_data? ฉันสงสัยว่าจุดประสงค์ของพวกเขาคืออะไร? พวกเขาเป็นเพียงการเคลือบน้ำตาลแบบวากยสัมพันธ์หรือไม่?

10
คุณสมบัติอ่านอย่างเดียวที่คำนวณเทียบกับฟังก์ชันใน Swift
ในเซสชัน Introduction to Swift WWDC คุณสมบัติอ่านอย่างเดียวdescriptionจะแสดง: class Vehicle { var numberOfWheels = 0 var description: String { return "\(numberOfWheels) wheels" } } let vehicle = Vehicle() println(vehicle.description) มีผลกระทบใด ๆ ในการเลือกแนวทางข้างต้นโดยใช้วิธีการแทน: class Vehicle { var numberOfWheels = 0 func description() -> String { return "\(numberOfWheels) wheels" } } let vehicle = …

7
หลักการตั้งชื่อสำหรับเมธอด Java ที่ส่งคืนบูลีน
ฉันชอบใช้เครื่องหมายคำถามต่อท้ายชื่อ method / function ในภาษาอื่น ๆ Java ไม่ยอมให้ฉันทำ วิธีแก้ปัญหาฉันจะตั้งชื่อเมธอดการส่งคืนบูลีนใน Java ได้อย่างไร การใช้is, has, should, canในด้านหน้าของเสียงวิธีการที่ถูกสำหรับบางกรณี มีวิธีที่ดีกว่าในการตั้งชื่อวิธีการดังกล่าวหรือไม่? เช่น createFreshSnapshot?

5
Javascript เรียกใช้เมธอดอ็อบเจ็กต์แบบไดนามิกจากสตริง
ฉันสามารถเรียกเมธอดอ็อบเจ็กต์แบบไดนามิกโดยมีชื่อเมธอดเป็นสตริงได้หรือไม่ ฉันจะจินตนาการได้ดังนี้: var FooClass = function() { this.smile = function() {}; } var method = "smile"; var foo = new FooClass(); // I want to run smile on the foo instance. foo.{mysterious code}(); // being executed as foo.smile();

10
หลายเงื่อนไขสำหรับ JavaScript .includes () วิธีการ
แค่สงสัยว่ามีวิธีการเพิ่มเงื่อนไขหลายอย่างให้กับวิธีการ. var value = str.includes("hello", "hi", "howdy"); ลองนึกภาพเครื่องหมายจุลภาค "หรือ" ตอนนี้กำลังถามว่าสตริงมี hello, hi หรือ howdy ดังนั้นก็ต่อเมื่อมีเงื่อนไขเดียวเท่านั้นที่เป็นจริง มีวิธีการทำไหม?

4
จะแทนที่ to_json ใน Rails ได้อย่างไร?
อัปเดต: ปัญหานี้ไม่ได้รับการสำรวจอย่างเหมาะสม render :jsonปัญหาที่แท้จริงอยู่ภายใน การวางโค้ดแรกในคำถามเดิมจะให้ผลลัพธ์ที่คาดหวัง อย่างไรก็ตามยังมีข้อแม้ ดูตัวอย่างนี้: render :json => current_user คือไม่ได้เช่นเดียวกับ render :json => current_user.to_json นั่นคือrender :jsonจะไม่เรียกใช้to_jsonเมธอดที่เกี่ยวข้องกับวัตถุ User โดยอัตโนมัติ ในความเป็นจริงหากto_jsonถูกแทนที่บนUserโมเดลrender :json => @userจะสร้างตามที่ArgumentErrorอธิบายไว้ด้านล่าง สรุป # works if User#to_json is not overridden render :json => current_user # If User#to_json is overridden, User requires explicit call render :json => current_user.to_json ทั้งหมดนี้ดูเหมือนโง่สำหรับฉัน …

5
เมื่อใดควรใช้ตัวแปรอินสแตนซ์ออบเจ็กต์เทียบกับการส่งอาร์กิวเมนต์ไปยังเมธอด
คุณจะตัดสินใจได้อย่างไรระหว่างการส่งอาร์กิวเมนต์ไปยังเมธอดกับการประกาศเป็นตัวแปรอินสแตนซ์อ็อบเจ็กต์ที่มองเห็นได้สำหรับเมธอดทั้งหมด ฉันชอบเก็บตัวแปรอินสแตนซ์ไว้ในรายการที่ส่วนท้ายของคลาส แต่รายการนี้จะยาวขึ้นเมื่อโปรแกรมของฉันเติบโตขึ้น ฉันคิดว่าถ้ามีการส่งผ่านตัวแปรบ่อยพอก็ควรจะมองเห็นได้สำหรับทุกวิธีที่ต้องการ แต่แล้วฉันก็สงสัยว่า "ถ้าทุกอย่างเป็นสาธารณะก็ไม่จำเป็นต้องส่งอะไรเลย!"

7
Git - ฉันจะดูประวัติการเปลี่ยนแปลงของวิธีการ / ฟังก์ชันได้อย่างไร
ดังนั้นฉันจึงพบคำถามเกี่ยวกับวิธีดูประวัติการเปลี่ยนแปลงของไฟล์ แต่ประวัติการเปลี่ยนแปลงของไฟล์นี้มีขนาดใหญ่มากและฉันสนใจเฉพาะการเปลี่ยนแปลงของวิธีใดวิธีหนึ่งเท่านั้น ดังนั้นจะเป็นไปได้ไหมที่จะดูประวัติการเปลี่ยนแปลงของวิธีการนั้น ๆ ฉันรู้ว่าสิ่งนี้จะต้องใช้คอมไพล์ในการวิเคราะห์โค้ดและการวิเคราะห์จะแตกต่างกันสำหรับภาษาต่างๆ แต่การประกาศวิธีการ / ฟังก์ชันดูคล้ายกันมากในภาษาส่วนใหญ่ดังนั้นฉันจึงคิดว่าอาจมีคนใช้ฟีเจอร์นี้ ภาษาที่ฉันกำลังใช้งานอยู่คือ Objective-C และ SCM ที่ฉันกำลังใช้อยู่คือ git แต่ฉันสนใจที่จะทราบว่าคุณลักษณะนี้มีอยู่สำหรับ SCM / ภาษาใด ๆ หรือไม่

11
การทำให้อาร์กิวเมนต์ของเมธอด java เป็นขั้นสุดท้าย
อะไรคือความแตกต่างfinalระหว่างโค้ดด้านล่าง มีข้อได้เปรียบในการประกาศอาร์กิวเมนต์เป็นfinal. public String changeTimezone( Timestamp stamp, Timezone fTz, Timezone toTz){ return .... } public String changeTimezone(final Timestamp stamp, final Timezone fTz, final Timezone toTz){ return .... }

12
วิธีการรับวัตถุ?
มีวิธีการหรือวิธีการที่เหมาะสมในการรับวิธีการทั้งหมดจากวัตถุหรือไม่? ตัวอย่างเช่น: function foo() {} foo.prototype.a = function() {} foo.prototype.b = function() {} foo.get_methods(); // returns ['a', 'b']; UPDATE: มีวิธีการเช่นนั้นใน Jquery หรือไม่? ขอขอบคุณ.


17
การลบล้างและการซ่อน Java - สับสน
ฉันสับสนว่าการลบล้างแตกต่างจากการซ่อนใน Java อย่างไร ใครช่วยให้รายละเอียดเพิ่มเติมว่าสิ่งเหล่านี้แตกต่างกันอย่างไร ฉันอ่านJava Tutorialแต่โค้ดตัวอย่างยังทำให้ฉันสับสน เพื่อให้ชัดเจนยิ่งขึ้นฉันเข้าใจการลบล้างได้ดี ปัญหาของฉันคือฉันไม่เห็นว่าการซ่อนแตกต่างกันอย่างไรยกเว้นความจริงที่ว่าหนึ่งอยู่ในระดับอินสแตนซ์ในขณะที่อีกอันอยู่ในระดับชั้นเรียน ดูโค้ดสอน Java: public class Animal { public static void testClassMethod() { System.out.println("Class" + " method in Animal."); } public void testInstanceMethod() { System.out.println("Instance " + " method in Animal."); } } จากนั้นเรามีคลาสย่อยCat: public class Cat extends Animal { public static void testClassMethod() …

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