Xu Hướng 3/2023 # Tính Kế Thừa Trong Java # Top 7 View | Ictu-hanoi.edu.vn

Xu Hướng 3/2023 # Tính Kế Thừa Trong Java # Top 7 View

Bạn đang xem bài viết Tính Kế Thừa Trong Java được cập nhật mới nhất trên website Ictu-hanoi.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.

Tư tưởng của kế thừa trong java là có thể tạo ra một class mới được xây dựng trên các lớp đang tồn tại. Khi kế thừa từ một lớp đang tồn tại bạn có sử dụng lại các phương thức và thuộc tính của lớp cha, đồng thời có thể khai báo thêm các phương thức và thuộc tính khác.

Cú pháp của kế thừa trong java

Sử dụng từ khóa extends để kế thừa.

class Subclass-name extends Superclass-name { }

Ví dụ về kế thừa trong java

class Employee { float salary = 1000; } class Programmer extends Employee { int bonus = 150; } public class InheritanceSample1 { public static void main(String args[]) { Programmer p = new Programmer(); System.out.println("Programmer salary is: " + p.salary); System.out.println("Bonus of Programmer is: " + p.bonus); } }

Kết quả:

Programmer salary is: 1000.0 Bonus of Programmer is: 150

Trong ví dụ trên class Programmer là con của class Employee, nên nó được phép truy cập đến trường salary của class cha.

Các kiểu kế thừa trong java

Có 3 kiểu kế thừa trong java đó là đơn kế thừa, kế thừa nhiều cấp, kế thừa thứ bậc.

Khi một class được kế thừa từ nhiều class đươc gọi là đa kế thừa. Trong java, đa kế thừa chỉ được support thông qua interface, như đã được nói đến trong bài interface trong java

Chú ý: Đa kế thừa trong java không được support thông qua class.

Ví dụ về đơn kế thừa

File: chúng tôi

class Animal { void eat() { System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } public class TestInheritance1 { public static void main(String args[]) { Dog d = new Dog(); d.bark(); d.eat(); } }

Output:

Ví dụ về kế thừa nhiều cấp

File: chúng tôi

class Animal { void eat() { System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } class BabyDog extends Dog { void weep() { System.out.println("weeping..."); } } public class TestInheritance2 { public static void main(String args[]) { BabyDog d = new BabyDog(); d.weep(); d.bark(); d.eat(); } }

Kết quả:

weeping... barking... eating...

Ví dụ về kế thừa thứ bậc

File: chúng tôi

class Animal { void eat() { System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } class Cat extends Animal { void meow() { System.out.println("meowing..."); } } public class TestInheritance3 { public static void main(String args[]) { Cat c = new Cat(); c.meow(); c.eat(); } }

Kết quả:

Câu hỏi: Tại sao đa kế thừa không được support trong java?

Để giảm thiểu sự phức tạp và đơn giản hóa ngôn ngữ, đa kế thừa không được support trong java.

Hãy suy xét kịch bản sau: Có 3 lớp A, B, C. Trong đó lớp C kế thừa từ các lớp A và B. Nếu các lớp A và B có phương thức giống nhau và bạn gọi nó từ đối tượng của lớp con, như vậy khó có thể xác đinh được việc gọi phương thức của lớp A hay B.

Vì vậy lỗi khi biên dịch sẽ tốt hơn lỗi khi runtime, java sẽ print ra lỗi “compile time error” nếu bạn cố tình kế thừa 2 class.

class A { void msg() { System.out.println("Hello"); } } class B { void msg() { System.out.println("Welcome"); } } public class C extends A,B { public static void main(String args[]) { C obj = new C(); obj.msg(); } }

Kết quả:

Giải Phương Trình Bậc Hai Trong Java

Trong bài tập này chúng ta sẽ thực hiện chương trình giải phương trình bậc hai trong Java. Đây là một bài tập phổ biến khi bắt đầu học ngôn ngữ lập trình.

Phương trình bậc hai có 3 hệ số là a, b, c có dạng như sau:

Ví dụ: Chương trình giải phương trình bậc hai trong Java.

Giải thích:

Đầu tiên chúng ta sẽ yêu cầu người dùng nhập vào các hệ số a, b, c cho phương trình bậc hai.

Tiếp đến tính Delta = b*b-4*a*c

Sau đó xét điều kiện cho Delta:

Nếu Delta < 0 thì phương trình vô nghiệm.

Nếu Delta = 0 thì phương trình có nghiệp kép là x1 = x2 = -b / 2 * a.

Và cuối cùng là hiển thị kết quả ra màn hình.

import java.util.Scanner; public class GiaiPTBacHai { public static void main(String[] args) { double a, b, c, x1, x2, delta; String ketQua = ""; Scanner scanner = new Scanner(System.in); do { System.out.print("Nhập a (a # 0): "); a = scanner.nextDouble(); } while (a == 0); System.out.print("Nhập b: "); b = scanner.nextDouble(); System.out.print("Nhập c: "); c = scanner.nextDouble(); System.out.println("Phương trình bậc hai bạn vừa nhập có dạng: "+a+"x^2 + "+b+"x + "+c+" = 0"); delta = Math.pow(b, 2) - 4 * a * c; if (delta < 0) { ketQua = "Phương trình vô nghiệm!"; } else if (delta == 0) { x1 = x2 = -b/ (2*a); System.out.println("Phương trinh có nghiệm kép là x1 = x2 = "+x1); } else { x1 = (-b + Math.sqrt(delta)) / (2 * a); x2 = (-b - Math.sqrt(delta)) / (2 * a); ketQua = "Phương trình có 2 nghiệm x1 = " + x1 + " và x2 = " + x2; } System.out.println(ketQua); System.out.println("Chương trình này được đăng tại Freetuts.net"); } }

Giải Phương Trình Bậc 2 Trong Java

Đề bài

Viết chương trình giải phương trình bậc 2 trong java. Phương trình bậc 2 có dạng:

Lời giải

Kiến thức sử dụng trong bài này, java.util.Scanner được sử dụng để đọc dữ liệu nhập vào từ bàn phím và từ khóa static trong java. Bạn cũng nên tìm hiểu về package trong java.

Bài này được viết trên eclipse, bạn có thể tham khảo bài tạo chương trình java đầu tiên trên eclipse.

File: chúng tôi

package vn.viettuts.baitap; import java.util.Scanner; /** * Giải phương trình bậc 2 * * @author viettuts.vn */ public class BaiTap1 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập hệ số bậc 2, a = "); float a = BaiTap1.scanner.nextFloat(); System.out.print("Nhập hệ số bậc 1, b = "); float b = BaiTap1.scanner.nextFloat(); System.out.print("Nhập hằng số tự do, c = "); float c = scanner.nextFloat(); BaiTap1.giaiPTBac2(a, b, c); } /** * Giải phương trình bậc 2: ax2 + bx + c = 0 * * @param a: hệ số bậc 2 * @param b: hệ số bậc 1 * @param c: số hạng tự do */ public static void giaiPTBac2(float a, float b, float c) { if (a == 0) { if (b == 0) { System.out.println("Phương trình vô nghiệm!"); } else { System.out.println("Phương trình có một nghiệm: " + "x = " + (-c / b)); } return; } float delta = b*b - 4*a*c; float x1; float x2; x1 = (float) ((-b + Math.sqrt(delta)) / (2*a)); x2 = (float) ((-b - Math.sqrt(delta)) / (2*a)); System.out.println("Phương trình có 2 nghiệm là: " + "x1 = " + x1 + " và x2 = " + x2); } else if (delta == 0) { x1 = (-b / (2 * a)); System.out.println("Phương trình có nghiệm kép: " + "x1 = x2 = " + x1); } else { System.out.println("Phương trình vô nghiệm!"); } } }

Kết quả:

Nhập hệ số bậc 2, a = 2 Nhập hệ số bậc 1, b = 1 Nhập hằng số tự do, c = -1 Phương trình có 2 nghiệm là: x1 = 0.5 và x2 = -1.0

Trong ví dụ trên, phương thức Math.sqrt(double a) được sử dụng để tính căn bậc 2 của a.

Hướng Dẫn Giải Phương Trình Bậc 2 Trong Java

Bài toán phương trình bậc 2 là một trong những bài toán cổ điển mà 90% những người khi mới học lập trình đều phải trải qua và nắm được, vì vậy trong bài học hôm nay mình sẽ hướng dẫn các bạn cách giải bài toán phương trinh bậc 2 trong ngôn ngữ lập trình Java nói riêng. Bài học nằm trong Serie lập trình Java căn bản.

Giải phương trình bậc 2 trong Java như thế nào?

 Mục tiêu : Sử dụng câu lệnh điều kiện

 Yêu cầu : Giải bài toán tìm nghiệm phương trình bậc hai : ax2 + bx + c =0, với a # 0

Tương tự như cách giải bài toán phương trình bậc nhất, trong bài này mình vẫn sẽ sử dụng phương pháp tách hàm quen thuộc.

Ở đây mình tách thành 2 hàm NhapSoNguyen, GiaiPTbac2 và phương thức main

Bạn chạy chương trình, nhập vào hệ số phương trình sẽ thấy được kết quả

Những bài bạn nên xem:

2.8

/

5

(

17

bình chọn

)

Cập nhật thông tin chi tiết về Tính Kế Thừa Trong Java trên website Ictu-hanoi.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!