មេរៀនទី៧: បង្កើត Class និង Object

ក្នុងជំពូកនេះ អ្នកនឹងរៀនពីរបៀប:

-Group ដែលទាក់ទងនិង methods និងទិន្នន័យ data ក្នុង class។

-ត្រួតពិនិត្យលទ្ធភាពនៃសមាជិករបស់ class members ដោយប្រើ ពាក្សកន្លឹះ public និង private

– បង្កើត objects ដោយប្រើពាក្យគន្លឹះថ្មី keyword និងប្រើវិធី constructor ចាប់ផ្តើម ។

-សរសេរ និហហៅ constructors ដែលជាកម្មសិទ្ធិផ្ទាល់ខ្លួន ។

-ប្រើពាក្សគន្លឹះ static keyword ដើម្បីបង្កើត methods និង

ទិន្នន័យ data ដែលអាចចែកចាយដោយទាំងអស់ដែលលេចឡើង  instances នៃ class ដូចគ្នា ។

1.  អ្វីជា Classification?

ពាក្សឬសគល់នៃ classification គឺជា class ។ កាលណាអ្នកមាន form class មួយ អ្នកអាចរៀបរៀងជាពត៌មានវិធីមួយមានប្រព័ន្ធទៅក្នុងអ្វីមួយ ហើយមានន័យ ។ នេះជាសកម្មភាពពិតនៃ classification ហើយអ្វីដែលគ្រប់ គ្នាតែងតែធ្វើឬមិនធ្វើបង្ហាញអ្នកបណ្តាអ្នកសរសេរកម្មវិធី programmers ។

2. អ្វីជា Encapsulation?

Encapsulation គឺជាបណ្តាពាក្សវែងផ្សេងដែលអ្នកអោយយោបល់ consultants សំរាប់ប្រើ ។ ឬសពាក្សគល់នៃ encapsulation គឺជាកញ្ចប់ capsule; ដែល encapsulation មានន័យដាក់អ្វីមួយទៅក្នុងកញ្ចប់ capsule។ មានពីរយ៉ាងមានសរ:សំខាន់របស់ encapsulation គឺ:

· ដើម្បីផ្គុំ method និងទិន្នន័យទៅក្នុង class; ឬម្យ៉ាងទៀតគឺ ផ្គត់ផ្គង់ classification។

· ដើម្បីត្រួតពិនិត្យមានលទ្ធភាពសំរាប់ method និងទិន្នន័យ data; ឬម្យ៉ាងទៀតដើម្បីត្រួតពិនិត្យប្រើជាមួយ class ។

Class គឺជាទំរង់នៃកម្មវិធី programming construct ដែលផ្តល់អោយ  syntax និង semantics សំរាប់ផ្គត់ផ្គង់ប្រើមូលដ្ឋានពីរ ។ ទីនេះ C# class ដែលហៅថា Circle  ផ្ទុកក្នុង method មួយ (ដើម្បីគណនាក្រឡាផ្ទៃរបស់ circle) និងគំរូទិន្នន័យ data (កាំរបស់ circle):

វិធីនៃការប្រើ Class

class Circle

{

double Area()

{

return 3.141592 * radius * radius;

}

double radius;

}

3. ត្រួតពិនិត្យមើល Accessibility

អ្នកអាចប្រើពាក្សគន្លឹះ public និង private ដើម្បីត្រួតពិនិត្យទោះបីជា method និង field គឺត្រូវបានអនុញ្ញាពីខាងក្រៅ:

· គឺជា method ឬ field ដែលហៅថា private ប្រសិនបើវាបង្ហាញ អនុញ្ញាតពីខាងក្រៅនៃ class ។ ដើម្បីប្រកាស declare ជាមួយ method ឬ field គឺជា private អ្នកសរសេរពាក្សគន្លឹះ private មុនពេលវាប្រកាស declaration ។

· method ឬ field ត្រូវបានហៅថា public ប្រសិនបើវាអនុញ្ញាតពី ខាងក្រៅនិងខាងក្នុង class ។ ដើម្បីប្រកាសដែលជា method ឬ field គឺជា public អ្នកសរសេរពាក្សគន្លឹះ public មុនពេលវាប្រកាស declaration ។

ខាងក្រោមនេះគឺ Circle class។ ពេលនេះក្រឡាផ្ទៃបានប្រកាស ដូច

ជា public method និងកាំត្រូវបានប្រកាសដូចជា private field:

Circle c;// Create a Circle variable

c = new Circle();// Initialize it

តម្លៃដែលផ្តល់អោយធម្មតា

int i;

i = 42;

4.  ធ្វើការជាមួយវិធី Constructor និង ពាក្សគន្លឹះ new

constructor គឺជា method នៃ class មួយដែលប្រើសំរាប់បង្កើត instance ថ្មីនៃ class ។ ដើម្បីមើលហេតុអ្វីបានជា constructor ត្រូវបាន

ទាមទារ អនុញ្ញាប្រៀបធៀបវិធីដែលមានក្នុងអថេរនៃប្រភេទ primitive type និងប្រភេទ class ត្រូវបានប្រកាស declared និង initialized ។ អ្នកអាចប្រើ ឈ្មោះនៃ class របស់អ្នកដើម្បីប្រកាស declare អថេរមួយ ។ syntax គឺជា ជាក់ច្បាស់ដូចគ្នាកាលណាអ្នក declare អថេរមួយនៃប្រភេទ primitive type (ដូចជា int); ឈ្មោះនៃប្រភេទនៅខាងឆ្វេងដៃគឺមានឈ្មោះនៃអថេរនិងសញ្ញា

ក្បៀសដែលមានដូចខាងក្រោមនេះ:

int i;

Circle c;

ពេល​អ្នកនឹងហៅឡើងវិញ អ្នកអាចប្រើតំលៃនៃអថេរមួយគត់បន្ទាប់ពី អ្នកបានបង្កើតច្បាស់លាស់ពីអថេរមានតំលៃច្បាស់លាស់:

int i;

Console.WriteLine(i); // error:use of unassigned local variable

លទ្ធផលដែលមានសំរាប់អថេរទាំងអស់ ទោះបីជាប្រភេទណាក៏ដោយ:

Circle c;

Console.WriteLine(c); // error: use of unassigned local variable

 

តាមពិត វាធ្វើអោយមានតំលៃច្បាស់លាស់: អ្នកទើបតែផ្តល់អោយវា តំលៃជាក់លាក់ដូចជា 42:

· អ្នកអាចបង្កើតអថេរ i ពេលដែលអ្នកប្រកាស declare វា:

int i = 42;

Console.WriteLine(i);

· អ្នកអាចផ្តល់ i តំលៃមួយក្រោយពេលអ្នកប្រកាស declare វា:

int i;

i = 42;

Console.WriteLine(i);

ឥឡូវនេះអ្នកមានបញ្ហាមួយ : អ្នកមិនអាចធ្វើអោយច្បាស់លាស់ ពីឈ្មោះនៃប្រភេទអថេរ c គឺជាតំលៃពិតដែលបានផ្តល់ដោយប្រើដំណោះស្រាយ

នេះពីព្រោះ c គឺជា Circle ហើយវាមិនមាន syntax ផ្តល់ទៅអោយតំលៃ Circle ដោយផ្ទាល់ ។ ប្រភេទ primitive ដែលមានតំលៃត្រឹមត្រូវ ។ អ្វីដែលអ្នក បានធ្វើគឺប្រើសំរាប់ពាក្សគន្លឹះ new រួចហៅ Circle របស់ constructor:

new Circle()

លទ្ធផលបង្ហាញដូចខាងក្រោមនេះ:

· You can initialize c to an object as you declare it:

Circle c = new Circle();

Console.WriteLine(c);

· You can assign an object to c after you declare it:

Circle c;

c = new Circle();

Console.WriteLine(c);

constructor គឺជាវិធីពិសេសមានឈ្មោះតែងតែមាន class នៅជា

មួយវា។ ប្រសិនបើអ្នកមិនបានសរសេរ constructor សំរាប់ class របស់អ្នក សំរាប់សរសេរ compiler ។ ម្យ៉ាងទៀត Circle class ដើមដែលបានបង្ហាញ ដើម្បីផ្ទុក method មួយនិង field មួយ តាមពិតផ្ទុក invisible constructor បានប្រសើរដូចជា class ដែលសរសេរខាងក្រោមនេះ:

class Circle

{

public Circle()

{

radius = 0.0;

}

public double Area()

{

return 3.141592 * radius * radius;

}

private double radius;

}

ប្រើវិធី Overloading Constructor

អ្នកអាចប្រកាស declare អថេរ Circle បង្កើត Circle object របស់វា និងពេលហៅ Area method:

Circle c = new Circle();

Console.WriteLine(c.Area());

 

ម្យ៉ាងទៀត អ្នកអាចសរសេរ constructor កម្មសិទ្ធិផ្ទាល់របស់អ្នកជា មួយតំលៃកាំរង្វង់ដូចជាអង្កត់ផ្ចិតរង្វង់ ។ ព្រោះ constructor ទាំងអស់មាន

ឈ្មោះដូចគ្នា ដូចជា class របស់វានិងមិនមានប្រភេទ return ដែលក្នុង Circle class ឥឡូវនេះមានដូចជា:

class Circle

{

public Circle(double initialRadius)

{

radius = initialRadius;

}

public double Area()

{

return? 3.141593 * radius * radius;

}

private double radius;

}

ក្នុងលំហាត់ខាងក្រោមនេះ អ្នកនឹងធ្វើការជាមួយ console application ក្នុងនោះអ្នកនឹងប្រកាស class ជាមួយនិងពីរ public constructor និងពីរ private field។ អ្នកនឹងបង្កើត instance នៃ class ដោយប្រើពាក្យគន្លឹះ និងហៅ constructor។

សរសេរ constructor និងបង្កើត object

1. ចាប់ផ្តើមចូលក្នុង Microsoft Visual Studio .NET ។

2. បើក Classes project ដែលមានទីតាំងក្នុង \Microsoft Press\Visual C# Step by Step\Chapter 7\Classes folder ក្នុង My Documents folder ។ Classe project ត្រូវបានបើក ។

3. ក្នុង Code pane នៃសន្លឹក Code And Text Editor ទីតាំង Main method នៃកម្មវិធីប្រើប្រាស់ Application class ដោយមិនមាន Point.cs file ។ Main method គឺជាកន្លែងចាប់ផ្តើមរត់កម្មវិធី ។

4. ក្នុង Code pane ដែលមានទីតាំង Point class។ ចំណុច Point class ទទេរ ។ ពីព្រោះអ្នកមិនបានសរសេរ constructor ដែល compiler នឹងសរសេររបស់អ្នក ។ អ្នកអាចហៅ compiler-generated constructor នេះដែលអ្នកនឹងធ្វើឥឡូវនេះ។

5. ក្នុង Code pane មានទីតាំងក្នុង Entrance method នៃកម្មវិធីប្រើ ប្រាស់ Application class ។ រៀបរៀង Edit Entrance method ដើម្បីផ្ទុក statement ខាងក្រោមនេះ:

Point origin = new Point();

6. នៅលើ Build menu ចុចលើ Build Solution ។

code builds ដោយគ្នាន error ។  ការបង្ហាញដែល compiler ត្រូវ

បានសរសេរ default constructor សំរាប់ Point class ។

7. ក្នុងប្រអប់ Code pane ទីតាំង Point class ។ ការរៀបរៀង Edit Point class ផ្ទុកក្នុង public constructor ដែលអនុញ្ញាតទៅក្នុង int ពីរ arguments ។ ក្នុង constructor នេះនឹងហៅ Console.WriteLine ដើម្បីមើលតំលៃនៃ arguments ទៅ console  ចំណុច Point class នឹងមើលឃើញពិតប្រាកដដូចជានេះ:

class Point

{

public Point(int x, int y)

{

Console.WriteLine(“x:{0}, y:{1}”, x, y);

}

}

8. នៅលើ Build menu ចុចលើ Build Solution ដែលមាន error:

No overload for method ‘Point’takes ‘0’ arguments

9. ក្នុងប្រអប់ Code pane ទីតាំងនៅក្នុង Point class ។ រៀបរៀង Edit Point class ដើម្បីផ្ទុក public default constructor ។

ចំណុច Point class នឹងបង្ហាញយ៉ាងពិតប្រាកដ៏ដែលមើលឃើញ:

Class Point

{

public Point()

{

Console.WriteLine(“default constructor called”);

}

public Point(int x, int y)

{

Console.WriteLine(“x:{0}, y:{1}”, x, y);

}

}

10. ក្នុង Code pane ទីតាំងក្នុង Entrance method នៃកម្មវិធីប្រើ

ប្រាស់ Application class ។ រៀបរៀង Edit នៃ Entrance method ដូច្នេះវាផ្ទុក contains ក្នុង statement មួយដែលប្រកាស declares អថេរមួយដែលហៅថា bottomRight នៃប្រភេទ Point និង initializes របស់វាទៅក្នុង Point object ថ្មី ។

10. Point object ត្រូវបានបង្កើតដែលហៅថា Point constructor ដែលអនុញ្ញាតអោយ int arguments ពីរគឺ 600 និង 800 ។ Entrance method នឹងមើលឃើញពិតប្រាកដដូចខាងក្រោមនេះ:

static void Entrance()

{

Point origin = new Point();

Point bottomRight = new Point(600,800);

}

11. នៅលើ Debug menu ចុចលើ Start Without Debugging ។

code ឥឡូវចាប់ផ្តើម builds ដោយគ្មាន errors និងរត់ដំណើរការ ដែលមាន messages សរសេរទៅ console (ហើយ message ចុងក្រោយដោយ Visual Studio .NET):

default constructor called

x:600, y:800

Press any key to continue

12. ចុចលើ key ណាមួយ ។ បិទសន្លឹក console window រួចហើយ អ្នកត្រឡប់ទៅក្នុងកម្មវិធី Visual Studio .NET ។ អ្នកនឹងបន្ថែម  add ទៅ int fields ទៅក្នុង Point class រួចហើយផ្លាស់ប្តូរ constructors ទៅក្នុង initialize fields ទាំងនេះ ។

13. រៀបរៀង Edit Point class ទៅក្នុង contain ពីរគឺ private instance fields ដែលហៅថា x និង y នៃប្រភេទ int ។

13. ព្រោះ fields ទាំងនេះគឺជា private ដែលឈ្មោះរបស់វានឹងចាប់

ផ្តើមជាមួយអក្សរតូច ។ ចំណុច Point class ឥឡូវនឹងបង្ហាញពិត ប្រាកដ៏ដូចនេះ :

class Point

{

public Point(int x, int y)

{

Console.WriteLine(“x:{0}, y:{1}”, x, y);

}

}

14. រៀនចំ default Point constructor ដើម្បីចាប់ផ្តើម x និង y ទៅ 0 :

class Point

{

public Point()

{

Console.WriteLine(“default constructor called”);

}

public Point(int x, int y)

{

Console.WriteLine(“x:{0}, y:{1}”, x, y);

}

}

ពីព្រោះ x និង y fields  គឺជា default ទៅ 0 អ្នកនឹងអាចជ្រើសរើស លុបចោល initialization នៃ x និង y ទៅ 0 ប្រសិនបើអ្នកចង់បាន (តាមពិតអ្នកនឹងនៅតែមាន declare default ទទេចំណុច Point constructor) ។  ការធ្វើអោយខូចប្រយោជន៏មួយទៀត fields default ទៅ 0, false ឬ null គឺជា unclear ទៅអ្នកណាមួយដែល

អាន code ថាតើ fields ទាំងនោះមានភាពងាយស្រួល ។

15. រៀបរៀង Edit ចំណុច Point constructor ទីពីរទៅ initialize x និង y fields ទៅអោយតំលៃនៃ x និង y parameters ។

ប្រសិនបើអ្នកមិនចង់ប្តូរឈ្មោះនៃ parameters ឬ fields ហើយ constructor ទីពីរនឹងមើលឃើញពិតប្រាកដ៏ដូចខាងក្រោមនេះ:

class Point

{

public Point(int x, int y)

{

x = x;

y = y;

}

private int x, y;

}

15. កាលណាសរសេរ x = x; ពេល x នៅខាងឆ្វេងដៃនឹងដោះស្រាយ បានត្រឹមត្រូវមធ្យោយបានដូច x នៅខាងស្តាំ ។

16. ប្តូរឈ្មោះនៃ parameters នៃ constructor ទីពីរទៅ initialX និង initialY ហើយកាលណាបានរៀបរៀង edit នៃ constructor

Constructor និងបង្ហាញយ៉ាងជាក់ច្បាស់ដូចខាងក្រោម:

class Point

{

public Point(int initialX, int initialY)

{

x = initialX;

y = initialY;

}

private int x, y;

}

17. នៅលើ Build menu ចុចលើ Build Solution ។ បញ្ជាក់ថា code compiles ដោយគ្មាន errors ឬ warnings ។

សរសេរនិងហៅ method

1. ក្នុង Edit Point class ដែលដាក់លើ public instance method ដែលហៅថា DistanceTo អនុញ្ញាតអោយ Point argument ទោល ដែលហៅម្យ៉ាងទៀតថា returns ពីរដង ។ DistanceTo method នឹងបង្ហាញដូចខាងក្រោមនេះ:

class Point

{

public double DistanceTo(Point other)

{

}

private int x, y;

}

2. ក្នុង Edit នៃ DistanceTo instance method ដើម្បីគណនាហើយ ត្រឡប់ចំងាយរវាង Point object ដែលចាប់ផ្តើមប្រើដើម្បីបង្កើតហៅ និង Point object ផ្ញើដូចជា parameter មួយ ។ ដើម្បីធ្វើការងារនេះ អ្នកនឹងត្រូវការដើម្បីគណនាភាពខុសគ្នា x មានភាពស្មើគ្នានិង y

3. Declare a local int variable called xDiff, and initialize it to the difference between x and other.x.

4. Declare តំបន់អថេរ int  ដែលហៅថា yDiff និង initialize វាខុស គ្នារវាង y និង y ផ្សេងទៀត ។  DistanceTo method នឹងបង្ហាញដូច នេះ:

class Point

{

public double DistanceTo(Point other)

{

}

}

4. ដើម្បីគណនាចំងាយ distance អ្នកត្រូវការធ្វើរឹសការ៉េ square root នៃផលបូកនៃការ៉េនៃ xDiff និងការ៉េនៃ yDiff ។ មធ្យោយងាយ ស្រួលដើម្បីធ្វើវាគឺប្រើ static Sqrt method នៃ Math class ។  DistanceTo method នឹងបង្ហាញដូចខាងក្រោមនេះ:

public double DistanceTo(Point other)

{

int xDiff = x – other.x;

int yDiff = y – other.y;

}

5. ទីតាំង Entrance method នៃកម្មវិធីប្រើប្រាស់ class ។ បន្ទាប់ពី declare និង initialize និងអថេរ bottomRight Point ការប្រកាស declare អថេរមួយដែលហៅថាចំងាយ distance នៃ ប្រភេទ double ។ Initialize អថេរ double នេះបញ្ជូនលទ្ធផល ដែល ទទួលកាលណាអ្នកហៅ DistanceTo method នៅលើ object ប្រភព ដើមនិងកាលណាអ្នកផ្ញើ bottomRight object ទៅវាដូច argument។

Entrance method នឹងបង្ហាញដូចខាងក្រោមនេះ:

static void Entrance()

{

Point origin = new Point();

Point bottomRight = new Point(1024, 1280);

double distance = origin.DistanceTo(bottomRight);

}

6.​បន្ថែម បួន statement ទៅ Entrance method ដែលសរសេរ តំលៃនៃចំងាយទៅ console ដោយប្រើ Console.WriteLine method ។ Entrance method នឹងបង្ហាញដូចនេះ:

static void Entrance()

{

Point origin = new Point();

Point bottomRight = new Point(1024, 1280);

double distance = origin.DistanceTo(bottomRight);

Console.WriteLine(“Distance is : {0}”, distance);

}

7. នៅលើ Debug menu ចុចលើ Start Without Debugging ។  code builds និងរត់ដំណើរការ ។

8. បញ្ជាក់ថាតំលៃ 1000 ត្រូវបានសរសេរទៅអោយសន្លឹក console

9. Edit ហៅទៅ DistanceTo method ដើម្បីហៅវា bottomRight object និងផ្ញើទៅប្រភពដើមដូច argument ។ Entrance method និងបង្ហាញឥឡូវនេះ:

static void Entrance()

{

Point origin = new Point();

Point bottomRight = new Point(1024, 1280);

double distance = origin.DistanceTo(bottomRight);

Console.WriteLine(“Distance is : {0}”, distance);

}

10. នៅលើ Debug menu ចុចលើ Start Without Debugging ។  ដើម្បីរត់ code builds ។

11. បញ្ជាក់តំលៃ 1000 គឺនៅតែសរសេរទៅសន្លឹក console ។

12. ចុចលើ key ណាមួយ សន្លឹក console បិទត្រឡប់ចូលទៅកម្មវិធី Visual Studio .NET ។

5.  ស្វែងយល់ពី static Method និង Data

ក្នុង .NET Framework រួមមាន class មួយដែលហៅថា Math ដែលផ្ទុកការប្រើប្រាស់អនុគមន៍របស់គណិតវិទ្យាជាច្រើនដូចជា Sin, Cos, និង Sqrt ។  វិធី methods ទាំងនេះគឺមិនត្រូវបានអនុវត្ត ដូចជា instance methods (instance method គឺជាវិធីមួយដែលត្រូវបានហៅនៅលើ object និងអនុញ្ញាត object ជារបស់ instance field) ។  ឧបមាថា Sqrt method នៃ Math class គឺជា instance method ។

class Math

{

public double Sqrt(double d) { … }

}

ប្រសិនបើ Sqrt គឺជា instance method នៃ Math អ្នកនឹងបង្កើតMath object ដើម្បីហៅទៅ Sqrt :

Math m = new Math();

double d = m.Sqrt(42.24);

ក្នុង C# វិធី methods ទាំងនេះត្រូវបានប្រកាស declare នៅក្នុង class ។  អ្នកហៅ static method ដោយប្រើឈ្មោះនៃ class និងមិនមែន ឈ្មោះ instance ។ គ្មាន instance ត្រូវបានទាមទារ របៀបប្រមាណវិធីនេះ

គឺ Math class ត្រូវបានប្រកាស declare:

public double Area()

{

return Math.PI * radius * radius;

}

បង្កើត static Field ជាមួយពាក្សគន្លឹះ const Keyword អ្នកនឹង ប្រកាស declare ដែល field គឺជា static ហើយវាមានតំលៃនឹងមិនអាចប្តូរបាន នៅខាងមុខ field ជាមួយនឹងពាក្សគន្លឹះ const keyword ។  const field មិនអាចប្រើដូចពាក្សគន្លឹះ static keyword អ្នកអាចប្រកាស declare field ដូចជា const កាលណា field គឺជា enum និងជាប្រភេទ primitive ឬក៏ string មួយ ។ ឧទាហរណ៍ ធ្វើបែបណាបានតំលៃពិត Math class ដែល

ប្រកាស PI ដូចជា const field (វាប្រកាស PI ទៅប្រព័ន្ធគោល 10 decimal):

class Math

{

public static double Sqrt(double d) { … }

}

Exception មួយមានតួនាទីកាលណា field ថេរមិនប្រែប្រួល constant ។  Circle class បានពីការធ្វើឡើងវិញដោយប្រើ Math.PI:

 សរសេរ  static member និងហៅ static method

1. ក្នុង Code pane ទីតាំងក្នុង Point class។

2. Add បន្ថែម private static field ដែលហៅថា objectCount នៃប្រភេទ int ទៅ Point class ។ Initialize វាទៅ 0 ដូចជាអ្នក

ប្រកាស declare វា ។

ក្នុង Point class នឹងមានដូចនេះ:

class Point

{

private int x, y;

private static int objectCount = 0;

}

2. លោកអ្នកអាចសរសេរពាក្យគន្លឹះ private និង static ក្នុងការបញ្ជា

3. Add បន្ថែម statement ទៅអោយ Point constructor ទាំងពីរ បង្កើន objectCount ។ ក្នុងពេលនីមួយៗត្រូវបានបង្កើត constructor របស់វា​នឹងហៅ។ ប្រសិនបើ objectCount គឺជា instance ដែល object នីមួយៗនឹងមាន objectCount ជាកម្មសិទ្ធិផ្ទាល់ខ្លួនរបស់ វានិងបង្កើត Point class នឹងបង្ហាញដូចនេះ:

class Point

{

public Point()

{

x = 0;

y = 0;

objectCount++;

}

public Point(int initialX, int initialY)

{

x = initialX;

y = initialY;

objectCount++;

}

private int x, y;

private static int objectCount = 0;

}

4. បន្ថែម public static method ទៅក្នុង Point class ដែលហៅថា ObjectCount ហើយត្រឡប់ទៅ int រួចហើយអនុញ្ញាតចូលដោយគ្មាន

Parameters ។ ការអនុវត្តវិធីនេះដើម្បីប្រើតំលៃត្រឡប់ objectCount  field ។ Point class និងបង្ហាញដូចនេះ:

class Point

{

public static int ObjectCount()

{

return objectCount;

}

}

ប្រសិនបើ ObjectCount method គឺជាវិធី instance method អ្នក

នឹងហៅ object តែមួយគត់រួចហៅបង្កើត object ដោយខ្លួនឯង បង្កើន objectCount static field ។

5. ទីតាំង Entrance method នៃ Application class ។

6. បន្ថែម statement មួយទៅអោយ Entrance method សំរាប់

សរសេរតំលៃត្រឡប់ពី ObjectCount method នៃ Point class ទៅ console ។ Entrance method នឹងឃើញជាក់ស្តែងដូចនេះ:

static void Entrance()

{

Point origin = new Point();

Point bottomRight = new Point(600, 800);

double distance = origin.distanceTo(bottomRight);

Console.WriteLine(“Distance is :{0}”, distance);

Console.WriteLine(“No of Point objects :{0}”, Point.ObjectCount());

}

6. ObjectCount method ត្រូវបានហៅថា Point ឈ្មោះ name នៃ  class នឹងមិនមានឈ្មោះនៅក្នុងអថេរ Point (ដូចប្រភពដើមឬ bottomRight) ។ ពីព្រោះវាមានពីរ Point objects ត្រូវបានបង្កើត ក្នុង

ពេលហៅ ObjectCount ហើយ method នឹងត្រឡប់ទៅតំលៃ 2 ។

7. នៅលើ Debug menu ចុចលើ Start Without Debugging ដើម្បី រត់ code builds ។

សង្ខេបជំពូកទី ៧

ប្រធានបទ

 

ការអនុវត្តន៍

 

Declare class សរសេរពាក្យគន្លឹះ class ដោយប្រើ ឈ្មោះនៃ class, បើកនិងបិទ សញ្ញាគាប methods និង fields នៃ class ត្រូវបានប្រកាស declare បើកនិងបិទ សញ្ញាគាប ។ឧទាហរណ៍:class Point

{

}

Declare constructor សរសេរ method ដែលមានឈ្មោះ ដូចជាឈ្មោះនៃ class ដែលមិនត្រឡប់ (មិនមាន ចំហទទេ) ។ ឧទាហរណ៍:class Point

{

public Point(int x, int y)

{

}

}

ហៅ constructor សរសេរពាក្សគន្លឹះថ្មីដោយហៅទៅConstructor ។ ឧទាហរណ៍:Point origin = new Point(0, 0);
Declare class method សរសេរពាក្សគន្លឹះ static មុនពេល ប្រកាស method ។ ឧទាហរណ៍:class Point{

public static int ObjectCount()

{

}

}

Access static field សរសេរឈ្មោះនៃ class បន្ទាប់មក ចុច dot បន្ទាប់មកដោយប្រើឈ្មោះ នៃ static field ។ ប្រសិនបើអនុញ្ញាត ប្តូរក្នុង method នៃ class អ្នកអាចប្រើឈ្មោះ static field ។ ឧទាហរណ៍:double area = Math.PI * radius * radius