Sunday, September 10, 2017

Bài 3 - Phương thức

Nháy chuột phải vào src, new, class, đặt tên là third.
Copy đoạn lệnh sau vào trong dấu ngoặc đơn của class.
public static void main(String args[]) {       
            
}
      public static void show()
      {
            System.out.println("Đay la dong chu vi du");
      }    
Chạy thử để thấy màn hình trắng trơn không có gì

Gõ thêm dòng show(); vào trong main, chạy thử.

Bây giờ màn hình đã in ra dòng chữ ta muốn.
Tiếp theo ở trên dấu ngoặc dưới cùng, copy đoạn code sau vào
public static void tinhnhan(int a, int b) {    
    int c=a*b;
  System.out.println("Ket qua nhan hai so la: "+c);
      }
Bên trên thêm các dòng sau:
int so=10;
int so2=12;
tinhnhan(so,so2);
Chạy thử để thấy kết quả 120 được tính ra.

Các đoạn code có tên show(), tinhnhan() được gọi là hàm hay phương thức.
Vậy phương thức là tập hợp các dòng lệnh bắt đầu bằng biểu thức kiểu như public static void tên gọi{
Kết thức bằng dấu }
Bạn không cần nhìn các chữ public, static, cứ coi như đó là thủ tục. Chỉ cần hiểu phương thức là tập hợp các dòng lệnh để làm cái gì đó, như với show() là để in ra màn hình dòng chữ, với tinhnhan() là để tính tích hai số bất kỳ.
Ban đầu ta không cho dòng show() vào trên thì nó không in ra gì cả, đó là vì ta chưa gọi phương thức.
Ở dưới, bắt đầu từ public static void show() là ta khai báo phương thức, ở trên gọi để dùng nó, không dùng thì coi như không có gì.
Bạn có thể thắc mắc sao không để lệnh System.out.println lên trên luôn, còn cần show() làm gì, đương nhiên đây là ví dụ đơn giản. Khi làm thực tế, các phương thức có thể rất dài, cần dùng nhiều lần. Bạn sẽ khai báo nó một lần, lúc nào dùng lại gọi.
Như với tinhnhan(), mỗi khi cần nhân 2 số a, b bất kỳ bạn chỉ dùng một dòng tinhnhan(a,b) chứ không cần gõ lại lệnh nhân cụ thể nữa. Đó chính là lợi ích của dùng phương thức.
So sánh show() và tinhnhan() ta thấy show không có gì trong ngoặc, ta gọi là nó không nhận đối số truyền vào, còn tinhnhan nhận vào 2 biến số nguyên a, b.
Tiếp theo, copy dòng code sau xuống dưới phương thức tinhnhan()
public static int tinhnhan2(int a, int b) {    
            int c=a*b;
            return c;
      }
Bên trên thêm các dòng sau:
int so3=15;
int so4=2;
int kq=tinhnhan2(so3,so4);
System.out.println("Ket qua phuong thuc 2 la: "+kq);
Chạy thử màn hình trông như sau.
Bây giờ hãy so sánh tinhnhan() và tinhnhan2(), ta thấy chữ void và chữ int ở phần đầu khác nhau.
Void ta gọi là phương thức không trả lại giá trị, int thì trả lại một số nguyên. Nên trong tinhnhan2 phía cuối có dòng return c.
Nếu phương thức của bạn là void, không có chữ return.
Vì tinhnhan2 chỉ trả lại giá trị nhân nên khi dùng nó ở trên, muốn in giá trị đó ra bạn cần thêm dòng System.out.println()
Phương thức có thể trả lại giá trị là một chuỗi, copy thêm dòng code sau vào dưới tinhnhan2.
public static String tinhcong(int a, int b) {  
            int c=a+b;
            return "Ket qua là: "+c;
      }
Bên trên thêm 2 dòng
String kq2=tinhcong(so3,so4);
System.out.println(kq2);
Chạy thử ra kết quả như sau.

Vì tinhcong cho ra kết quả là một chuỗi nên khi in ta chỉ cần cho kq2 vào trong ngoặc của lệnh in là xong.
Phương thức cũng có thể trả lại mảng, copy đoạn code sau xuống dưới phương thức tinhcong()
public static int [] tinhtoan(int a, int b) {  
            int []ar=new int[3];
            int c=a+b;
            int d=a-b;
            int e=a*b;
            ar[0]=c;
            ar[1]=d;
            ar[2]=e;
            return ar;
      }
Bên trên thêm các dòng sau
int []kq3=new int[3];
kq3=tinhtoan(so3,so4);
System.out.println("Các so trong mang la: "+kq3[0]+" "+kq3[1]+" "+kq3[2]);
Chạy xem kết quả

Muốn thu gọn các phương thức lại, bạn nháy dấu trừ mờ mờ bên trái, ấn cộng thì nó lại mở ra.
Phương thức tinhtoan() ta trả lại mảng có 3 số nguyên sau khi đã tính cộng, trừ, nhân hai số đầu vào. In ra kết quả như với mảng bình thường.
Bài tập
Tạo phương thức chia 2 số, làm tròn kết quả có 2 chữ sau dấu phảy

Làm phương thức tính căn, làm tròn kết quả còn hai chữ số sau dấu phảy, dùng công thức double n=Math.sqrt(number); để tính căn một số

No comments:

Post a Comment