1679125865
Trong hướng dẫn này, chúng ta sẽ khám phá các quy tắc chính của phương thức nạp chồng (Overloading) và ghi đè (Overriding) trong Java, cũng như sự khác biệt giữa phương thức Overloading và Overriding trong Java
Trong Java, nạp chồng phương thức và ghi đè phương thức đều đề cập đến việc tạo các phương thức khác nhau có cùng tên.
Mặc dù hai khái niệm có một số điểm tương đồng, nhưng chúng là những khái niệm riêng biệt với các trường hợp sử dụng khác nhau rõ rệt. Nắm vững chúng là điều quan trọng trong việc xây dựng các kỹ năng Java nền tảng vững chắc.
Trong bài đăng này, chúng ta sẽ khám phá các quy tắc chính của nạp chồng và ghi đè phương thức, cũng như sự khác biệt giữa chúng.
Nạp chồng một phương thức, nói một cách đơn giản, có nghĩa là tạo một phương thức khác có cùng tên trong cùng một lớp, nhưng với một danh sách tham số khác.
Có thể có nhiều trường hợp bạn cần xử lý các loại đầu vào khác nhau cho cùng một thao tác và nạp chồng phương thức là một cách để xử lý các trường hợp đó.
Ví dụ: giả sử bạn muốn tạo một phương thức thực hiện phép cộng hai số. Phép tính này được thiết kế để trả về một số làm đầu ra. Nếu phương thức của bạn xử lý các tham số kiểu int, việc cố gắng gọi nó bằng cách chuyển các giá trị kiểu double làm đối số sẽ dẫn đến lỗi biên dịch.
Vì lý do này, bạn có thể muốn làm quá tải phương thức bằng cách tạo một phiên bản mới của phương thức đó có khả năng xử lý một loại đầu vào khác (trong trường hợp này là type double):
public class Calculator {
public int sum(int a, int b) {
return a + b;
}
public double sum(double a, double b) {
return a + b;
}
}
Trong ví dụ trên, sum()phương thức bị quá tải vì nó được định nghĩa nhiều lần trong cùng một lớp, nhưng với một danh sách tham số khác.
Một phương thức cũng có thể bị quá tải bằng cách thay đổi số lượng tham số. Trên cơ sở này, các phương thức sau đây cũng là các ví dụ hợp pháp về cách sum()phương thức có thể được nạp chồng, giả sử chúng được đặt trong cùng một lớp:
public int sum(int a, int b, int c) {
return a + b + c;
}
protected void sum() {
System.out.print("Nothing to sum");
}
Lưu ý rằng, như trong một số ví dụ ở trên, bạn cũng có thể thay đổi kiểu trả về hoặc công cụ sửa đổi quyền truy cập nhưng điều này không bắt buộc.
Hãy nhớ các quy tắc này khi quá tải một phương thức:
Ghi đè phương thức đề cập đến việc xác định lại một phương thức trong lớp con đã tồn tại trong lớp cha.
Khi bạn gọi một phương thức bị ghi đè bằng cách sử dụng một đối tượng thuộc loại lớp con, Java sẽ sử dụng cách triển khai của phương thức đó trong lớp con chứ không phải trong lớp cha. Vì lý do này, sự hiểu biết về khái niệm kế thừa trong Java là rất quan trọng để nắm bắt tốt về ghi đè phương thức.
Bất kỳ lớp con nào thường có thể ghi đè bất kỳ phương thức nào từ lớp cha, trừ khi một phương thức được đánh dấu bằng từ khóa finalhoặc static. Phương thức ghi đè không được thay đổi tên và danh sách tham số của phương thức ghi đè.
Mặc dù không bắt buộc, nhưng bạn nên sử dụng @Overridechú thích khi ghi đè một phương thức: chú thích này sẽ kiểm tra xem phương thức đó có đang bị ghi đè đúng cách hay không và sẽ cảnh báo bạn nếu không đúng như vậy.
Trong ví dụ sau, bạn sẽ thấy một lớp Carmở rộng lớp Vehicle. Lớp Carghi đè move()phương thức từ lớp cha và điều này được làm rõ bằng cách sử dụng chú @Overridethích. Hai phương thức được triển khai khác nhau trong phần thân phương thức.
class Vehicle {
public void move() {
System.out.println("The vehicle is moving");
}
}
class Car extends Vehicle {
@Override
public void move() {
System.out.println("The car is moving");
}
}
Việc lựa chọn phiên bản nào move()sẽ được gọi dựa trên loại đối tượng mà phương thức đang được gọi. Lưu ý rằng phiên bản của phương thức bị ghi đè được gọi được xác định trong thời gian chạy và dựa trên loại đối tượng, không phải tham chiếu đối tượng.
Điều này được minh họa trong ví dụ sau, cụ thể là trong lệnh gọi thứ ba tới move(): trong khi phương thức được gọi trên một tham chiếu đối tượng thuộc loại Vehicle, thì đối tượng thực sự thuộc loại Car. Loại đối tượng ở đây được xác định trong thời gian chạy và do đó, phiên bản của phương thức được gọi là phiên bản từ lớp Carcon.
public static void main(String[] args) {
Vehicle vehicle = new Vehicle();
vehicle.move(); // Prints: The vehicle is moving
Car car = new Car();
car.move(); // Prints: The car is moving
Vehicle secondVehicle = new Car();
secondVehicle.move(); // Prints: The car is moving
}
Hãy nhớ các quy tắc này khi ghi đè một phương thức:
Trong bài viết này, chúng ta đã khám phá các quy tắc chính của nạp chồng phương thức và ghi đè phương thức trong Java. Bạn đã thấy rằng điểm chính của quá tải một phương thức là thay đổi danh sách tham số của nó để thực hiện một hành vi khác dựa trên các đối số được truyền cho nó.
Mặt khác, ghi đè đề cập đến việc xác định lại cùng một phương thức, với cùng một danh sách tham số, trong một lớp con để điều chỉnh hành vi của nó theo nhu cầu của lớp con.
Các khái niệm này được liên kết với một số ý tưởng lập trình hướng đối tượng cốt lõi, chẳng hạn như tính kế thừa và tính đa hình, vì vậy chúng là nền tảng để thành thạo Java. Chúng có thể gây ra một số nhầm lẫn, đặc biệt là đối với người mới bắt đầu, nhưng hiểu rõ về các quy tắc và cách sử dụng các khái niệm này sẽ giúp các nhà phát triển viết mã hiệu quả hơn và dễ đọc hơn.
Nguồn: https://www.freecodecamp.org
#java
1600135200
OpenJDk or Open Java Development Kit is a free, open-source framework of the Java Platform, Standard Edition (or Java SE). It contains the virtual machine, the Java Class Library, and the Java compiler. The difference between the Oracle OpenJDK and Oracle JDK is that OpenJDK is a source code reference point for the open-source model. Simultaneously, the Oracle JDK is a continuation or advanced model of the OpenJDK, which is not open source and requires a license to use.
In this article, we will be installing OpenJDK on Centos 8.
#tutorials #alternatives #centos #centos 8 #configuration #dnf #frameworks #java #java development kit #java ee #java environment variables #java framework #java jdk #java jre #java platform #java sdk #java se #jdk #jre #open java development kit #open source #openjdk #openjdk 11 #openjdk 8 #openjdk runtime environment
1620458875
According to some surveys, such as JetBrains’s great survey, Java 8 is currently the most used version of Java, despite being a 2014 release.
What you are reading is one in a series of articles titled ‘Going beyond Java 8,’ inspired by the contents of my book, Java for Aliens. These articles will guide you step-by-step through the most important features introduced to the language, starting from version 9. The aim is to make you aware of how important it is to move forward from Java 8, explaining the enormous advantages that the latest versions of the language offer.
In this article, we will talk about the most important new feature introduced with Java 10. Officially called local variable type inference, this feature is better known as the **introduction of the word **var
. Despite the complicated name, it is actually quite a simple feature to use. However, some observations need to be made before we can see the impact that the introduction of the word var
has on other pre-existing characteristics.
#java #java 11 #java 10 #java 12 #var #java 14 #java 13 #java 15 #verbosity
1679125865
Trong hướng dẫn này, chúng ta sẽ khám phá các quy tắc chính của phương thức nạp chồng (Overloading) và ghi đè (Overriding) trong Java, cũng như sự khác biệt giữa phương thức Overloading và Overriding trong Java
Trong Java, nạp chồng phương thức và ghi đè phương thức đều đề cập đến việc tạo các phương thức khác nhau có cùng tên.
Mặc dù hai khái niệm có một số điểm tương đồng, nhưng chúng là những khái niệm riêng biệt với các trường hợp sử dụng khác nhau rõ rệt. Nắm vững chúng là điều quan trọng trong việc xây dựng các kỹ năng Java nền tảng vững chắc.
Trong bài đăng này, chúng ta sẽ khám phá các quy tắc chính của nạp chồng và ghi đè phương thức, cũng như sự khác biệt giữa chúng.
Nạp chồng một phương thức, nói một cách đơn giản, có nghĩa là tạo một phương thức khác có cùng tên trong cùng một lớp, nhưng với một danh sách tham số khác.
Có thể có nhiều trường hợp bạn cần xử lý các loại đầu vào khác nhau cho cùng một thao tác và nạp chồng phương thức là một cách để xử lý các trường hợp đó.
Ví dụ: giả sử bạn muốn tạo một phương thức thực hiện phép cộng hai số. Phép tính này được thiết kế để trả về một số làm đầu ra. Nếu phương thức của bạn xử lý các tham số kiểu int, việc cố gắng gọi nó bằng cách chuyển các giá trị kiểu double làm đối số sẽ dẫn đến lỗi biên dịch.
Vì lý do này, bạn có thể muốn làm quá tải phương thức bằng cách tạo một phiên bản mới của phương thức đó có khả năng xử lý một loại đầu vào khác (trong trường hợp này là type double):
public class Calculator {
public int sum(int a, int b) {
return a + b;
}
public double sum(double a, double b) {
return a + b;
}
}
Trong ví dụ trên, sum()phương thức bị quá tải vì nó được định nghĩa nhiều lần trong cùng một lớp, nhưng với một danh sách tham số khác.
Một phương thức cũng có thể bị quá tải bằng cách thay đổi số lượng tham số. Trên cơ sở này, các phương thức sau đây cũng là các ví dụ hợp pháp về cách sum()phương thức có thể được nạp chồng, giả sử chúng được đặt trong cùng một lớp:
public int sum(int a, int b, int c) {
return a + b + c;
}
protected void sum() {
System.out.print("Nothing to sum");
}
Lưu ý rằng, như trong một số ví dụ ở trên, bạn cũng có thể thay đổi kiểu trả về hoặc công cụ sửa đổi quyền truy cập nhưng điều này không bắt buộc.
Hãy nhớ các quy tắc này khi quá tải một phương thức:
Ghi đè phương thức đề cập đến việc xác định lại một phương thức trong lớp con đã tồn tại trong lớp cha.
Khi bạn gọi một phương thức bị ghi đè bằng cách sử dụng một đối tượng thuộc loại lớp con, Java sẽ sử dụng cách triển khai của phương thức đó trong lớp con chứ không phải trong lớp cha. Vì lý do này, sự hiểu biết về khái niệm kế thừa trong Java là rất quan trọng để nắm bắt tốt về ghi đè phương thức.
Bất kỳ lớp con nào thường có thể ghi đè bất kỳ phương thức nào từ lớp cha, trừ khi một phương thức được đánh dấu bằng từ khóa finalhoặc static. Phương thức ghi đè không được thay đổi tên và danh sách tham số của phương thức ghi đè.
Mặc dù không bắt buộc, nhưng bạn nên sử dụng @Overridechú thích khi ghi đè một phương thức: chú thích này sẽ kiểm tra xem phương thức đó có đang bị ghi đè đúng cách hay không và sẽ cảnh báo bạn nếu không đúng như vậy.
Trong ví dụ sau, bạn sẽ thấy một lớp Carmở rộng lớp Vehicle. Lớp Carghi đè move()phương thức từ lớp cha và điều này được làm rõ bằng cách sử dụng chú @Overridethích. Hai phương thức được triển khai khác nhau trong phần thân phương thức.
class Vehicle {
public void move() {
System.out.println("The vehicle is moving");
}
}
class Car extends Vehicle {
@Override
public void move() {
System.out.println("The car is moving");
}
}
Việc lựa chọn phiên bản nào move()sẽ được gọi dựa trên loại đối tượng mà phương thức đang được gọi. Lưu ý rằng phiên bản của phương thức bị ghi đè được gọi được xác định trong thời gian chạy và dựa trên loại đối tượng, không phải tham chiếu đối tượng.
Điều này được minh họa trong ví dụ sau, cụ thể là trong lệnh gọi thứ ba tới move(): trong khi phương thức được gọi trên một tham chiếu đối tượng thuộc loại Vehicle, thì đối tượng thực sự thuộc loại Car. Loại đối tượng ở đây được xác định trong thời gian chạy và do đó, phiên bản của phương thức được gọi là phiên bản từ lớp Carcon.
public static void main(String[] args) {
Vehicle vehicle = new Vehicle();
vehicle.move(); // Prints: The vehicle is moving
Car car = new Car();
car.move(); // Prints: The car is moving
Vehicle secondVehicle = new Car();
secondVehicle.move(); // Prints: The car is moving
}
Hãy nhớ các quy tắc này khi ghi đè một phương thức:
Trong bài viết này, chúng ta đã khám phá các quy tắc chính của nạp chồng phương thức và ghi đè phương thức trong Java. Bạn đã thấy rằng điểm chính của quá tải một phương thức là thay đổi danh sách tham số của nó để thực hiện một hành vi khác dựa trên các đối số được truyền cho nó.
Mặt khác, ghi đè đề cập đến việc xác định lại cùng một phương thức, với cùng một danh sách tham số, trong một lớp con để điều chỉnh hành vi của nó theo nhu cầu của lớp con.
Các khái niệm này được liên kết với một số ý tưởng lập trình hướng đối tượng cốt lõi, chẳng hạn như tính kế thừa và tính đa hình, vì vậy chúng là nền tảng để thành thạo Java. Chúng có thể gây ra một số nhầm lẫn, đặc biệt là đối với người mới bắt đầu, nhưng hiểu rõ về các quy tắc và cách sử dụng các khái niệm này sẽ giúp các nhà phát triển viết mã hiệu quả hơn và dễ đọc hơn.
Nguồn: https://www.freecodecamp.org
#java
1622020920
Java is a versatile language that follows the concepts of Object-Oriented Programming. Many features of object-oriented programming make the code modular, reusable, flexible, and easy to debug. There are many features of Object-oriented programming, such as inheritance, polymorphism, encapsulation, and abstraction.
In this article, we will discuss method overloading in Java which is the type of polymorphism.
#full stack development #java #method overloading #overloading #overloading in java
1620462686
On March 16th, 2021, Java 16 was GA. With this new release, tons of new exciting features have been added. Check out the release notes to know more about these changes in detail. This article’s focus will be on Java Records, which got delivered with JEP 395. Records were first introduced in JDK 14 as a preview feature proposed by JEP 359, and with JDK 15, they remained in preview with JEP 384. However, with JDK 16, Records are no longer in preview.
I have picked Records because they are definitely the most favored feature added in Java 16, according to this Twitter poll by Java Champion Mala Gupta.
I also conducted a similar survey, but it was focused on features from Java 8 onwards. The results were not unexpected, as Java 8 is still widely used. Very unfortunate, though, as tons of new features and improvements are added to newer Java versions. But in terms of features, Java 8 was definitely a game-changer from a developer perspective.
So let’s discuss what the fuss is about Java Records.
#java #springboot #java programming #records #java tutorials #java programmer #java records #java 16