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

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

5
ความแตกต่างอย่างมากในความเร็วของวิธีการคงที่และไม่คงที่เท่ากัน
ในรหัสนี้เมื่อฉันสร้าง Object ในmainเมธอดแล้วเรียกว่า object method: ff.twentyDivCount(i)(ทำงานใน 16010 ms) มันทำงานได้เร็วกว่าการเรียกโดยใช้คำอธิบายประกอบนี้: twentyDivCount(i)(ทำงานใน 59516 ms) แน่นอนเมื่อฉันเรียกใช้โดยไม่สร้างวัตถุฉันทำให้เมธอดคงที่ดังนั้นจึงสามารถเรียกใช้ใน main ได้ public class ProblemFive { // Counts the number of numbers that the entry is evenly divisible by, as max is 20 int twentyDivCount(int a) { // Change to static int.... when using it directly int …

15
เปรียบเทียบสองวัตถุด้วยตัวดำเนินการ .equals () และ ==
ฉันสร้างคลาสที่มีStringฟิลด์เดียว จากนั้นฉันสร้างวัตถุสองชิ้นขึ้นมาและฉันต้องเปรียบเทียบโดยใช้==ตัวดำเนินการและ.equals()ด้วย นี่คือสิ่งที่ฉันทำ: public class MyClass { String a; public MyClass(String ab) { a = ab; } public boolean equals(Object object2) { if(a == object2) { return true; } else return false; } public boolean equals2(Object object2) { if(a.equals(object2)) { return true; } else return false; } public static void …
85 java  class  object  methods  equals 

5
วิธี c # กับ params ไม่ จำกัด หรือวิธีการที่มีอาร์เรย์หรือรายการ?
ฉันเพิ่งเรียนรู้ว่าคุณสามารถสร้างวิธีที่มีพารามิเตอร์ไม่ จำกัด เช่น: SomeMethod(params int[] numbers); แต่คำถามของฉันคืออะไรความแตกต่างระหว่างที่และเพียงแค่สร้างวิธีการที่ได้รับรายชื่อหรืออาร์เรย์? SomeMethod(int[] numbers); SomeMethod(List<int> numbers); บางทีมันอาจมีผลกระทบต่อประสิทธิภาพบ้างไหม? ฉันไม่เข้าใจหรือเห็นอย่างถ่องแท้ว่าคุณต้องการให้มีพารามิเตอร์แบบไม่ จำกัด จำนวนเท่าใด การค้นหาด่วนบน google ไม่ได้ช่วยฉันหวังว่าคุณจะช่วยฉันได้
21 c#  methods 

4
อะไรคือความแตกต่างระหว่าง“ classmethod” และวิธี metaclass?
ใน Python ฉันสามารถสร้างวิธีการเรียนโดยใช้@classmethoddecorator: >>> class C: ... @classmethod ... def f(cls): ... print(f'f called with cls={cls}') ... >>> C.f() f called with cls=<class '__main__.C'> อีกวิธีหนึ่งฉันสามารถใช้วิธีปกติ (ตัวอย่าง) ใน metaclass: >>> class M(type): ... def f(cls): ... print(f'f called with cls={cls}') ... >>> class C(metaclass=M): ... pass ... >>> C.f() f called …

1
เป็นไปไม่ได้ที่จะจัดคลาสคลาสชื่ออย่างเต็มที่ในตัวประกาศนอกคลาสของนิยามฟังก์ชัน
โปรแกรมนี้ส่งผลให้เกิดการแยกวิเคราะห์ความโลภที่ไม่ต้องการ: struct float4x4 {}; class C { float4x4 M(); }; float4x4 ::C::M() { return float4x4{}; } : 8: 1: ข้อผิดพลาด: ไม่มีสมาชิกชื่อ 'C' ใน 'float4x4'; คุณหมายถึง 'C' อย่างง่ายๆหรือเปล่า float4x4 :: C :: M () ^ ~~~~~~~~~~~ ซึ่งสามารถ 'แก้ไข' โดยใช้ประเภทการส่งคืนต่อท้าย: auto ::C::M() -> float4x4 {} ตอนนี้ทุกอย่างดี ดังนั้นฉันคิดว่าเราไม่สามารถผ่านการรับรอง class-name เมื่อใช้ไวยากรณ์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.