Chương 4: Phương thức (Method)
lượt xem 6
download
Một nhóm các lớp có liên quan đến nhau và phương thức của chúng. FCL được tạo thành từ các namespaces. Namespaces được lưu trong các file .dll gọi là assemblies. Danh sách các Namespace của .Net framwork được giới thiệu trong hình 4.3 . Tất cả các lớp trong C# được cho trong thư viện của các Namespace. Có từ khoá là using .
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Chương 4: Phương thức (Method)
- Chương 4. Phương thức (Method) Outline 4.1 Phương thức – Methods 4.1.1. Module trong C# 4.1.2. Định nghĩa phương thức 4.1.3. Tại sao sử dụng phương thức 4.1.4. Ví dụ về các phương thức của lớp Math 4.2 Chuyển đổi đối số 4.2.1. Chuyển đổi tường minh 4.2.2. Chuyển đổi không tường minh 4.3 C# Namespaces 4.4 Tham trị và tham biến 4.5 Truyền theo tham trị và tham biến 4.6. Phạm vi 4.7 Đệ quy 4.7.1. Đệ quy 4.7.2. So sánh đệ quy và vòng lặp 4.8 Phương thức nạp chồng (Method Overloading)
- 4.1.1. Module trong C# Modules L ớp Các phương thức Dùng các lớp hay phương thức chỉ cần biết chúng làm được gì chứ không cần biết chúng làm thế nào Lớp thư viện Framwork .NET (FCL) Tăng khả năng sử dụng lại Console-Giao tiếp bàn phím và màn hình MessageBox- Hộp thoại
- 4.1.1. Module trong C# Ta minh hoạ bằng sơ đồ: Ông chủ Công Công Công nhân 1 nhân 2 nhân 3 Công Công nhân 4 nhân 5
- 4.1.2. Định nghĩa phương thức viết một phương thức Phần đầu ReturnType Properties Name( Param1, Param2, … ) Thân Chứa mã của phương thức Chứa giá trị trả về nếu cần thiết Được dùng ở một nơi khác trong chương trình bỏ dấu () nếu cần thiết Tất cả các phương thức phải được định nghĩa trong lớp
- 4.1.3. Tại sao sử dụng phương thức Thực hiện chính sách "chia để trị". Có thể được sử dụng lại ▪ Dùng các lớp và phương thức để xây dựng các đối tượng mới. Giảm việc lặp lại ▪ Phương thức có thể được gọi từ bất kỳ chỗ nào của chương trình.
- 4.1.4. Ví dụ về các phương thức của lớp Math Lớp phương thức Math Cho phép ta sử dụng các phép toán chung. Cách thức dùng ClassName.MethodName( argument1, arument2, … ) Hằng số Math.PI = 3.1415926535… Math.E = 2.7182818285…
- Phươ ng t hứ c M ô tả Ví d ụ Abs( x ) Trị tuyệ đối của x t Abs( 23.7 ) is 23.7 Abs( 0 ) is 0 Abs( -23.7 ) is 23.7 Ceiling( x ) Làm tròn x t ới số tự nhiên nhỏ nhất Ceiling( 9.2 ) is 10.0 không nhỏ hơn x Ceiling( -9.8 ) is -9.0 Cos( x ) cosine lượng giác của x Cos( 0.0 ) là 1.0 (x đo bằng radians) Exp( x ) e mũ x Exp( 1.0 ) xấ xỉ 2.7182818284590451 p Exp( 2.0 ) xấ xỉ p 7.3890560989306504 Floor( x ) Làm tròn x tới số nguyên lớn nhất Floor( 9.2 ) is 9.0 không vượt quá x Floor( -9.8 ) is -10.0 Log( x ) logarit tự nhiên của x (cơ số e) Log( 2.7182818284590451 ) is approximately 1.0 Log( 7.3890560989306504 ) is approximately 2.0 Max( x, y ) Giá trị lớn nhấ giữa x và y t Max( 2.3, 12.7 ) is 12.7 (also has versions for float, int and Max( -2.3, -12.7 ) is -2.3 long values) Min( x, y ) giá trị nhỏ nhấ của x và y t Min( 2.3, 12.7 ) is 2.3 (also has versions for float, int and Min( -2.3, -12.7 ) is -12.7 long values) Pow( x, y ) x mũ y (xy) Pow( 2.0, 7.0 ) is 128.0 Pow( 9.0, .5 ) is 3.0 Sin( x ) sin l ượng giác của x Sin( 0.0 ) is 0.0 (x đo bằng radians) Sqrt( x ) Căn bậ hai của x c Sqrt( 900.0 ) is 30.0 Sqrt( 9.0 ) is 3.0 Tan( x ) tang của x Tan( 0.0 ) is 0.0 (x đo bằng radians) Hình 4.1.4 C á c p hươ n g th ức ha y d ùn g tro n g lớ p Math .
- 1 // Fig. 6.3: SquareInt.cs 2 // A programmer-defined Square method. 3 4 using System; // includes basic data types 5 using System.Drawing; // for graphics capabilities 6 using System.Collections; báo lớp SquareInteger. structures Khai // for complex data Nó nằm trong 7 using System.ComponentModel; // controls component behavior 8 using System.Windows.Forms.Form System.Windows.Forms; // for GUI development 9 using System.Data; // for reading outside data 10 11 // form used to display results of squaring 10 numbers 12 public class SquareIntegers : System.Windows.Forms.Form 13 { 14 private System.ComponentModel.Container components = null; 15 16 // label containing results 17 private System.Windows.Forms.Label outputLabel; 18 19 public SquareIntegers() 20 { Bắt đầu định nghĩa các phương thức 21 // Required for Windows Form Designer support 22 InitializeComponent(); của SquareIntegers 23 24 int result; // store result of call to method Square 25 Đây là một biến số của phương thức, nó chỉ được sử dụng trong phương thức.
- 26 // loop 10 times 27 for ( int counter = 1; counter
- 52 // The main entry point for the application. 53 [STAThread] 54 static void Main() 55 { 56 Application.Run( new SquareIntegers() ); 57 } Phương thức Square. Một biến 58 59 // Square method definition nguyên vào và ra. 60 int Square( int y ) 61 { 62 return y * y; // return square of y 63 64 } // end method Square 65 Phương thức trả lại bình phương của 66 } // end of class SquareIntegers biến nguyên
- 1 // Fig. 6.4: MaximumValue.cs 2 // Finding the maximum of three doubles. 3 4 using System; 5 6 class MaximumValue 7 { 8 // main entry point for application 9 static void Main( string[] args ) 10 { 11 // obtain user input and convert to double 12 Console.Write( "Enter first floating-point value: " ); Chương trình 13 double number1 = Double.Parse( Console.ReadLine() ); 14 nhập 3 số 15 Console.Write( "Enter second floating-point value: " ); 16 double number2 = Double.Parse( Console.ReadLine() ); 17 18 Console.Write( "Enter third floating-point value: " ); 19 double number3 = Double.Parse( Console.ReadLine() ); 20 21 // call method Maximum to determine largest value 22 double max = Maximum( number1, number2, number3 ); 23 24 // display maximum value Ba biến nguyên làm đầu vào cho 25 Console.WriteLine("\nmaximum is: " + max ); 26 phương thức Maximum. 27 } // end method Main
- 28 29 // Maximum method uses method Math.Max to help determine 30 // the maximum value 31 static double Maximum( double x, double y, double z ) 32 { 33 return Math.Max( x, Math.Max( y, z ) ); 34 35 } // end method Maximum 36 37 } // end class MaximumValue Phương thức Maximum có 3 biến nguyên vào và trả lại giá trị lớn nhất của chúng. Math.Max dùng phương thức Max trong lớp Math. Dấu . dùng để gọi phương thức. Enter first floating-point value: 37.3 Enter second floating-point value: 99.32 Enter third floating-point value: 27.1928 maximum is: 99.32
- 4.2 Chuyển đổi đối số 4.2.1.Chuyển đổi tường minh Đối tượng được chuyển đổi trực tiếp đến một dạng theo yêu cầu Chỉ được thực hiện khi chương trình dịch biết không có dữ liệu bị mất 4.2.2.Chuyển đổi không tường minh Đối tượng được chuyển đổi bằng tay Được yêu cầu khi có mất mát dữ liệu. Mở rộng Tạo một đối tượng của lớp dẫn xuất và phức tạp hơn Thu hẹp Tạo đối tượng của lớp cơ sở và dẫn đến mất dữ liệu
- BẢNG THĂNG CẤP BIẾN: Typ e Ca n b e Conv erted to Typ e(s) bool object byte decimal, double, float, int, uint, long, ulong, object, short or ushort sbyte decimal, double, float, int, long, object or short char decimal, double, float, int, uint, long, ulong, object or ushort decimal object double object float double or object int decimal, double, float, long or object uint decimal, double, float, long, ulong, or object long decimal, double, float or object ulong decimal, double, float or object object None short decimal, double, float, int, long or object ushort decimal, double, float, int, uint, long, ulong or object string object Fig. 6.5 Allo w e d imp lic it c o nv e rsio ns.
- 4.3 C# Namespaces Namespace Một nhóm các lớp có liên quan đến nhau và phương thức của chúng FCL được tạo thành từ các namespaces Namespaces được lưu trong các file .dll gọi là assemblies Danh sách các Namespace của .Net framwork được giới thiệu trong hình 4.3 Tất cả các lớp trong C# được cho trong thư viện của các Namespace Có từ khoá là using
- 4.3 C# Namespaces Na m esp a c e Mô tả System Chứa các loại lớp và kiểu dữ liệu cần thiết (như int, double, char, v.v.).Được tham chiếu tới trong mọi chương trình C# . System.Data Gồm các lớp tạo nên ADO .NET, dùng để truy cập và thao tác trên cơ sở dữ liệu System.Drawing Chứa các lớp để vẽ và dùng đồ hoạ. System.IO Chứa các lớp vào ra dữ liệu,nhất là với files System.Threading Gồm các lớp đa tiến trình dùng để chạy song song các phần của một chương trình. System.Windows.Forms Gồm các lớp tạo giao diện. System.Xml Chứa các lớp xử lý dữ liệu XML . Hình 4.3 Na mesp a c e s tro ng Fra m ew ork Cla ss Lib ra ry.
- 4.4 Tham trị và tham biến Tham trị Gồm các dữ liệu có dạng xác định Người lập trình tạo ra struct enum Tham biến Chứa địa chỉ của điểm trỏ tới các dữ liệu Lập trình viên tạo ra Lớp Giao diện Hàm uỷ quyền
- 4.5.Truyền theo tham trị và tham biến Truyền theo tham trị Gửi tới phương thức một bản copy của đối tượng Luôn trả lại giá trị. Khởi tạo một giá trị mặc định Truyền theo tham biến Gửi tới phương thức điểm quy chiếu thật sự của đối tượng Do đó biến có thể bị thay đổi trong chương trình Hàm trả lại luôn ở dạng tham chiếu Từ khoá ref định nghĩa một tham chiếu Từ khoá out gọi tới một phương thức khi nó chưa khởi tạo giá trị ban đầu
- 1 // Fig. 6.8: RefOutTest.cs 2 // Demonstrating ref and out parameters. 3 4 using System; 5 using System.Windows.Forms; 6 7 class RefOutTest 8 { Khai báo biến số tham chiếu giá trị 9 // x is passed as a ref int (original value nó thay đổi đến khi hết chương của will change) 10 static void SquareRef( ref int x ) 11 { trình. 12 x = x * x; 13 } 14 Khi khai báo là void thì không cần 15 // original value can be changed and initialized 16 static void SquareOut( out int ịx ) lại. giá tr trả 17 { 18 x = 6; 19 x = x * x; 20 } 21 22 // x is passed by value (original value not changed) 23 static void Square( int x ) 24 { 25 x = x * x; 26 } 27 28 static void Main( string[] args ) 29 { 30 // create a new integer value, set it to 5 31 int y = 5; 32 int z; // declare z, but do not initialize it 33
- 34 // display original values of y and z 35 string output1 = "The value of y begins as " 36 + y + ", z begins uninitialized.\n\n\n"; 37 38 // values of y and z are passed by value 39 RefOutTest.SquareRef( ref y ); Gọi phương thức SquareRef 40 RefOutTest.SquareOut( out z ); và SquareOut 41 42 // display values of y and z after modified by methods 43 // SquareRef and SquareOut 44 string output2 = "After calling SquareRef with y as an " + 45 "argument and SquareOut with z as an argument,\n" + 46 "the values of y and z are:\n\n" + 47 "y: " + y + "\nz: " + z + "\n\n\n"; 48 Gọi tới phương thức 49 // values of y and z are passed by value 50 RefOutTest.Square( y ); SquareRef và SquareOut bằng 51 RefOutTest.Square( z ); tham trị. 52 53 // values of y and z will be same as before because Square 54 // did not modify variables directly 55 string output3 = "After calling Square on both x and y, " + 56 "the values of y and z are:\n\n" + 57 "y: " + y + "\nz: " + z + "\n\n"; 58 59 MessageBox.Show( output1 + output2 + output3, 60 "Using ref and out Parameters", MessageBoxButtons.OK, 61 MessageBoxIcon.Information ); 62 63 } // end method Main 64 65 } // end class RefOutTest
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Applied numerical methods (Ứng dụng phương pháp tính số): Chương 4 - TS. Ngô Văn Thanh
24 p | 95 | 14
-
Bài giảng Thu nhận yêu cầu: Chương 4 - Trần Thị Kim Chi
126 p | 92 | 7
-
Bài giảng Nhập môn lập trình: Chương 4 - Trần Minh Thái
48 p | 60 | 6
-
Bài giảng Kỹ thuật lập trình: Chương 4 - ThS Trần Duy Thanh
58 p | 42 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn