سلام خدمت استاد عزیز.
هنگامی که میخوام پارامتر هایی که تو Constructor Person هستش رو توی Main بخش پارامتر های متد قرار بدم هیچی نمیاد و داخل پرانتز قرمز هستش. در صورتی که من دقیقا مثل ویدیو عمل کردم. ولی در ویدیو هیچ مشکلی پیش نیومد.
public class Main { public static void main(String[] args) { //برای کلاس Main Person person = new Person(); person.id=394; person.lastName="Azizi"; person.printWelcomeMessage();
package com.company; public class Person { int id; String firstName; String lastName; //برای کلاس person Person(String firstName, String lastName){ this.firstName=firstName; this.lastName=lastName; } void printWelcomeMessage(){ System.out.println("hello " +firstName+ " "+lastName+", your id is "+id); } }
سلام
سعی کنید وقتی می خواین کد بفرستین از ابزار استفاده کنید (سمت راستترین) تا کد خوانا تر بشود و اینکه زبان کد هم بهتره php باشه
اما اینجا شما وقتی سازنده یا Constructor در class Person نوشتید :
Person(String fn, String ln) {
this.lastName = ln;
this.firstName = fn;
}
به این سازنده دوتا مقدار فرستاده شده ما هنگامی که Instanceاز این کلاس میسازیم سازنده کلاس رو هم صدا زدیم :
Person person = new Person();
اما هیچ مقداری واسه این سازنده فرستاده نشده پس خطا میده میگه این کلاس سازنده ای نداره که هیچ ور.دی نگیره و باید حتما ورودی بهم بدی یا ورودی هایی که تو کلاس Person دادی رو پاک کنید
یا اینکه یک Constructor دیگه بسازیم که هیچ ورودی نگیرد مثل:
Person(/*Nothing*/){ /*Nothing*/}
در اینصورت میاد بین سازنده های کلاس میگرده و اگر سازنده مثل سازنده بالا رو دید که هیچ ورودی نگرفته ، اونو انتخاب میکنه به عنوان سازنده و خطایی به وجود نمیاد
اگر هم می خواین هیچ سازنده ای نسازید و همین خطا رو بر طرف کنید وقتی می خواید نمونه بسازید باید دو ورودی بهش بدید و تکه کد زیر را
Person person = new Person();
به کد زیر تغییر بدید
Person person = new Person("Parsa","Farahkhah");
سلام پارسا جان من هم همین مشکل رو داشتم اما زمانی که بیشتر دقت کردم دیدم که استاد اول دوتا دابل کتیشن "" گذاشتن که بعد از این عمل خود ide اسم رشته رو به صورت خودکار میاره برای فاصله بین 2 تا رشته هم باید از علامت , استفاده کنی