معرفی کامل متد toString در جاوا
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
آموزش متد toString در جاوا
در جلسات قبل با نحوه کار با نرم افزار IntelliJ IDEA آشنا شدیم. در این جلسه میخواهیم نحوه کار با تابع toString() را یاد میگیریم.
برای شروع یک کلاس به نام Person میسازیم و کد های زیر را درون آن قرار میدهیم.
public class Person {
private int personId;
private String firstName;
private String lastName;
{
برای ساخت تابع سازنده در محیط IntelliJ IDEA می توانید کلیک راست کنید و گزینه Generate را بزنید و یا کلید هایAlit + Insert را بزنید. در پنچره باز شده گزینه Constructor را انتخاب کنید.
سپس در پنچره باز شده فیلدهای مد نظر را انتخاب کنید و روی Ok کلیک کنید.
برای ساخت توابع Getter و Setter نیز می توایند با زدن کلید های Alt + Insert در پنجره Generate گزینه Getter and Setter را انتخاب کنید و در پنچره باز شده فیلدهای مد نظر را انتخاب و گزینه Ok را کلیک کنید.
کدهای کلاس Person
public class Person {
private int personId;
private String firstName;
private String lastName;
public Person(int personId, String firstName, String lastName) {
this.personId = personId;
this.firstName = firstName;
this.lastName = lastName;
}
public int getPersonId() {
return personId;
}
public void setPersonId(int personId) {
this.personId = personId;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
در ادامه یک شی از کلاس Person را در کلاس Main تعریف میکنیم و تابع toString() مربوط به Person را صدا میزنیم.
public class MainClass {
public static void main(String[] args) {
Person person1=new Person(1,"mehdi","abbasi");
System.out.println(person1.toString());
System.out.println(person1);
{
{
نکته: به صورت پیش فرض با صدا زدن شی از کلاس، متد toString() آن صدا زده می شود. اگر متد toString() را ننویسیم نیز خروجی یکسان است.
خروجی کد بالا به صورت نام پکیچ و کلاس و یک آیدی هش شده نمایش داده میشود.
com.darsman.Person@1b6d3586
com.darsman.Person@1b6d3586
خروجی که مشاهده میکنید آن چیزی که میخواهیم نیست. برای رفع این مشکل که به جای کد هش شده اطلاعات person1 نمایش داده شود باید متد toString() را درون کلاس Person باز نویسی کنیم.
وارد کلاس Person میشویم و تابع toString() را باز نویسی میکنیم.
خروجی تابع toString() یک رشته است. هر مقداری دورن آن بگذارید با صدا زدن تابع toString() نمایش داده خواهد شد.
@Override
public String toString() {
return personId +" "+ firstName +" "+lastName;
}
حال خروجی کلاس main به صورت زیر است:
1 mehdi abbasi
1 mehdi abbasi
متد toString() را نرم افزار intelliJ IDEA میتوانید سریعتر پیاده سازی کند، با زدن کلید alt + insert از پنجره Generate گزینه toString() را انتخاب کنید. و سپس در پنجره باز شده فیلد هایی که میخواهید در تابع toString() نمایش داده شود را انتخاب کنید.
@Override
public String toString() {
return "Person{" +
"personId=" + personId +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
'}';
}
همانطور که در بالا مشاهده میکنید فیلدهای کلاس را به شکلی مشابه ساختار Json میسازد(در رابطه با ساختار Json در ادامه دوره بیشتر آشنا میشویم).
سپاسگزاریم که همراه ما هستید
امیدواریم که این آموزش مورد توجه شما دوستان عزیز قرار گرفته باشد و بتواند شما را در راه رسیدن به اهدافتان کمک کند. برای دسترسی بیشتر به جلسات آموزش جاوا پیشرفته کلیک کنید.
دوستان عزیز خوشحال میشویم هر گونه پیشنهاد یا انتقادی در این زمینه بود برای ما در قسمت نظرات برای ما ارسال کنید.
نظرات دانشجویان
سلام خسته نباشید ممنون بابت آموزش خوبتون تو دوره مقدماتی برای هر آموزش توضیحاتی به صورت متنی ارائه شده و این توضیح متنی به شخصه برای من خیلی مفید بود. ولی برای دوره پیشرفته این توضیحات وجود نداره. امکانش هست این توضیحات متنی به هر آموزش اضافه بشه.
سلام هامون جان، بله حتما در اولین فرصت برایتان این محتوا ها را آماده و درج خواهیم کرد. ممنون از پیگیریتون و همراهیتون.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.