هنگامی که میخوام پارامتر هایی که تو 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);
}
}
parsa farahkhah۱۴ آذر ۱۳۹۸، ۱۴:۰۵
سلام
سعی کنید وقتی میخواین کد بفرستین از ابزار استفاده کنید (سمت راستترین) تا کد خواناتر بشود و اینکه زبان کد هم بهتره php باشه
اما اینجا شما وقتی سازنده یا Constructor در class Person نوشتید :
به این سازنده دوتا مقدار فرستاده شده ما هنگامی که Instanceاز این کلاس میسازیم سازنده کلاس رو هم صدا زدیم :
Person person = new Person();
اما هیچ مقداری واسه این سازنده فرستاده نشده پس خطا میده میگه این کلاس سازنده ای نداره که هیچ ور.دی نگیره و باید حتما ورودی بهم بدی یا ورودی هایی که تو کلاس Person دادی رو پاک کنید
یا اینکه یک Constructor دیگه بسازیم که هیچ ورودی نگیرد مثل:
Person(/*Nothing*/){ /*Nothing*/}
در اینصورت میاد بین سازندههای کلاس میگرده و اگر سازنده مثل سازنده بالا رو دید که هیچ ورودی نگرفته ، اونو انتخاب میکنه به عنوان سازنده و خطایی به وجود نمیاد
مهرداد۱۴ آذر ۱۳۹۸، ۱۵:۳۹
اگر هم میخواین هیچ سازنده ای نسازید و همین خطا رو بر طرف کنید وقتی میخواید نمونه بسازید باید دو ورودی بهش بدید و تکه کد زیر را
Person person = new Person();
به کد زیر تغییر بدید
Person person = new Person("Parsa","Farahkhah");
مهرداد۱۴ آذر ۱۳۹۸، ۱۵:۴۵
سلام پارسا جان من هم همین مشکل رو داشتم اما زمانی که بیشتر دقت کردم دیدم که استاد اول دوتا دابل کتیشن "" گذاشتن که بعد از این عمل خود ide اسم رشته رو به صورت خودکار میاره برای فاصله بین 2 تا رشته هم باید از علامت , استفاده کنی