For working professionals
For fresh graduates
More
6. JDK in Java
7. C++ Vs Java
16. Java If-else
18. Loops in Java
20. For Loop in Java
46. Packages in Java
53. Java Collection
56. Generics In Java
57. Java Interfaces
60. Streams in Java
63. Thread in Java
67. Deadlock in Java
74. Applet in Java
75. Java Swing
76. Java Frameworks
78. JUnit Testing
81. Jar file in Java
82. Java Clean Code
86. Java 8 features
87. String in Java
93. HashMap in Java
98. Enum in Java
101. Hashcode in Java
105. Linked List in Java
109. Array Length in Java
111. Split in java
112. Map In Java
115. HashSet in Java
118. DateFormat in Java
121. Java List Size
122. Java APIs
128. Identifiers in Java
130. Set in Java
132. Try Catch in Java
133. Bubble Sort in Java
135. Queue in Java
142. Jagged Array in Java
144. Java String Format
145. Replace in Java
146. charAt() in Java
147. CompareTo in Java
151. parseInt in Java
153. Abstraction in Java
154. String Input in Java
156. instanceof in Java
157. Math Floor in Java
158. Selection Sort Java
159. int to char in Java
164. Deque in Java
172. Trim in Java
173. RxJava
174. Recursion in Java
175. HashSet Java
177. Square Root in Java
190. Javafx
The toString() method in Java is a pre-existing method found in the Object class. It serves the purpose of returning a string representation of an object. By default, it produces a string comprising the object's class name, followed by an "@" symbol and hash code.
This method can be customized in user-defined classes to generate a more descriptive string representation. This proves valuable in scenarios such as debugging, logging, or presenting object details in a readable manner.
In this tutorial, you will learn about the basics of the toString() method in Java, including what it does and why it is important in programming. This will serve as an in-detail guide to explain how to override the toString() technique in user-defined classes to customize the string representation of objects. Read on to gain a solid base in the toString() method and its role in Java development.
The toString() method in Java is a pre-defined method in the Object class. It serves as the base class for all Java classes. It is used to retrieve a string representation of an object.
Nevertheless, developers can override this method in their own classes to provide a customized string representation. This allows for tailored object representations, facilitating debugging, logging, and displaying object information. Moreover, the toString() method is extensively employed in Java APIs and frameworks for converting objects to strings for various purposes.
The toString() method in Java obtains a string representation of an object. It returns a string that represents the object's state or contents. Its default implementation returns a string representation that includes the class name, an ‘@‘ symbol, and the object's memory address.
Here is the syntax for the toString() method:
@Override
public String toString() {
// Generate the string representation of the object
// Return the generated string
}
To override the toString() method in a class, you must include the @Override annotation to ensure that you correctly override the method from the superclass. Within the method body, you generate the string representation of the object based on its state and return the generated string.
Here's an example of how to use the toString() method:
In the above example, the Person class overrides the toString() method to provide a string representation of a Person object. The toString() method returns a string that includes the name and age of the person.
When the toString() method is called on a Person object, it returns the generated string representation, which is then printed using System.out.println() in the main() method.
Code:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
public static void main(String[] args) {
Person person = new Person("John Doe", 25);
System.out.println(person.toString());
}
}
The Java toString() method offers several benefits:
When the toString() method in Java is not overridden, the default implementation provided by the Object class is utilized. However, relying on the default toString() method can be problematic as it may not offer a clear understanding of the object's state or contents. This can pose challenges when attempting to debug or log information about the object during runtime.
Furthermore, in scenarios where APIs or frameworks rely on the toString() method, the lack of a customized implementation can result in less useful output. This can hinder the interpretation and utilization of objects within these contexts.
To address these issues, it is recommended to override the toString() method in Java classes and provide a customized implementation that provides a more meaningful representation of the object's state. This facilitates easier debugging, logging, and integration with other Java components.
In this example, the Book class represents a book with a title, author, and publication year. The toString() method is overridden to provide a custom string representation of the Book object. It generates a string that includes the title, author, and year.
In the main method, a Book object named book is created with the title "The Great Gatsby", author "F. Scott Fitzgerald", and year 1925. The toString() method is then called on the book object, and the resulting string representation is printed using System.out.println().
Code:
public class Book {
private String title;
private String author;
private int year;
public Book(String title, String author, int year) {
this.title = title;
this.author = author;
this.year = year;
}
@Override
public String toString() {
return "Book{" +
"title='" + title + '\'' +
", author='" + author + '\'' +
", year=" + year +
'}';
}
public static void main(String[] args) {
Book book = new Book("The Great Gatsby", "F. Scott Fitzgerald", 1925);
System.out.println(book.toString());
}
}
In this example, the toString() method is invoked on an array of integers (numbers). By default, the toString() method inherited from the Object class is called, which returns a string representation of the array's memory address.
public class upGradTutorials {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
System.out.println(numbers.toString());
}
}
The above code declares an array of integers named numbers and initializes it with values. The toString() method is then invoked on the numbers array. By default, the toString() method inherited from the Object class is called, which returns a string representation of the array's memory address. The result is printed using System.out.println().
In this example, the toString() method is invoked on an ArithmeticException object, which is thrown when dividing by zero. The toString() method provides information about the exception, including the exception class name and a message.
public class upGradTutorials {
public static void main(String[] args) {
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println(e.toString());
}
}
}
The code demonstrates exception handling for an arithmetic operation that causes a divide-by-zero error. An arithmetic operation is performed inside a try-catch block where 10 is divided by 0. This operation throws an ArithmeticException.
The exception is caught using a catch block that specifies ArithmeticException. Inside the catch block, the toString() method is called on the exception object (e) to get a string representation of the exception. The resulting string, which contains the exception class name and a message, is printed.
In this example, the toString() method is overridden in the Vehicle class to provide a custom string representation of the object. The method returns a string that includes the vehicle's make, model, and year.
public class Vehicle {
private String make;
private String model;
private int year;
public Vehicle(String make, String model, int year) {
this.make = make;
this.model = model;
this.year = year;
}
@Override
public String toString() {
return "Vehicle{" +
"make='" + make + '\'' +
", model='" + model + '\'' +
", year=" + year +
'}';
}
public static void main(String[] args) {
Vehicle vehicle = new Vehicle("Toyota", "Camry", 2022);
System.out.println(vehicle.toString());
}
}
The above example defines a class named Vehicle with private variables make, model, and year. The class has a constructor to initialize these variables. The toString() method is overridden with a custom implementation that returns a string representation of the object. The method concatenates the values of make, model, and year with additional text for clarity.
In the main() method, a Vehicle object is created and assigned values. The toString() method is called on the object, and the resulting string representation is printed.
Understanding the toString() method in Java is crucial for obtaining a meaningful string representation of objects. By customizing the toString() method, developers can enhance their Java applications' debugging, logging, and integration capabilities.
Enrolling in a course from upGrad can be highly beneficial for a comprehensive understanding of Java and its various features, including the toString() method. upGrad offers industry-relevant courses taught by experienced instructors, providing a structured learning path and hands-on projects to strengthen your Java skills.
1. Is toString() a pre-existing function in Java?
Yes. The toString method is a default method in the Object class in Java.
2. Is toString() used to display a string?
The toString() method in Java returns a string representation of an object rather than modifying the original string itself. The toString() method provides a way to obtain a string representation of an object's state or contents, which can be helpful for various purposes, such as debugging, logging, or displaying information.
3. What is the opposite of the toString() method?
The toString() method, when used with a number, allows for the conversion of a decimal number into various number systems ranging from 2 to 36.
Take the Free Quiz on Java
Answer quick questions and assess your Java knowledge
Author|900 articles published
Previous
Next
Talk to our experts. We are available 7 days a week, 9 AM to 12 AM (midnight)
Indian Nationals
1800 210 2020
Foreign Nationals
+918068792934
1.The above statistics depend on various factors and individual results may vary. Past performance is no guarantee of future results.
2.The student assumes full responsibility for all expenses associated with visas, travel, & related costs. upGrad does not provide any a.