Der Versuch, einige Funktionen aus verschiedenen Klassen für eine Übung aufzurufen.Funktionen aus anderen Dateien aufrufen "Symbol kann nicht gefunden werden"
Man sagt uns, folgende Funktionsaufrufe zu verwenden,
MonthName.month_name();
WeekdayName.weekday_name();
MonthOffset.month_offset();
WeekdayCalculator.is_leap();
Als ich MonthName.month_name versucht(); Er sagt, es eine nicht statische Methode ist, es wie in unten gesehen infact eine statische Methode ist, sortierte ich, dass durch Aufruf wie,
MonthName monthObject = new MonthName();
Welche das Problem aussortiert. Aber jede andere Funktion, die ich anrufe, bekomme ich die msg es kann kein Symbol finden.
Die Klasse Ich versuche & Funktion der Klasse Dies ist
public class callingfunctionsfromotherfiles
public static void main(String[] args)
{
// TODO code application logic here
Scanner scan = new Scanner(System.in);
String finalDate="";
System.out.println("Pleaase enter your date of birth in this format dd mm yyyy");
String dob=scan.nextLine(); // date of birth entered by the user
String d = dob.substring(0,2); //split the dob into 3 parts
String m = dob.substring(3, 5);
String y = dob.substring(6, 10);
int day = Integer.parseInt(d); //convert dob strings to int
int month = Integer.parseInt(m);
int year = Integer.parseInt(y);
MonthName monthObject = new MonthName();
// MonthName.month_name(month); non static???
System.out.println(finalDate= "You where born on " + week_day(day, month, year) +", " + monthObject.month_name(month) + ", "+ day + ", " + year);
}
public static String week_day(int day, int month, int year) // returns a string value for the week day with integer parameters of day,month,year
{
MonthOffset offsetObject = new MonthOffset(); //"Can't find symbol"
WeekDayCalculator leapObject = new WeekDayCalculator(); //"Can't find symbol"
WeekDayName wkdayObject = new WeekDayName(); //"Can't find symbol"
int yy = year - 1900;
int total = yy/4 + yy + day + offsetObject.month_offset(month);
// weekDayCalculator.month_offset();
//WeekDayCalculator.is_leap();
boolean leap = leapObject.is_leap(year); //pass "year" into the is_leap method which returns true or false
if(leap == true && month == 1 || month == 2) //if it is a leap year and the month == 1(january) 2(february) subtract 1 from the total
{
total-= -1;
}
total = total %7; //total is remainder of (total/7)
String finalDay = wkdayObject.weekday_name(total); // call weekday_name and pass in total, giving finalDay a string value from weekday_name
return finalDay;
}
in die Funktionen aufrufen, die funktioniert, wenn ich ein Objekt erstellen, aber sagt mir auch, die Funktion ist nicht statisch, wenn es wirklich ist.
public class monthname
{
public static String month_name(int num)
{
String month ="";
if(num == 1)
{
month ="January";
}
else if(num == 2)
{
month ="Feburary";
}
else if(num == 3)
{
month ="March";
}
else if(num == 4)
{
month ="April";
}
else if(num == 5)
{
month ="May";
}
else if(num == 6)
{
month ="June";
}
else if(num == 7)
{
month ="July";
}
else if(num == 8)
{
month ="August";
}
else if(num == 9)
{
month ="September";
}
else if(num == 10)
{
month ="October";
}
else if(num == 11)
{
month ="November";
}
else if(num == 12)
{
month ="December";
}
else
{
month ="error";
}
return month;
}
}
Und das ist eine der Klassen & Funktionen, bei denen es nicht Symbol finden. Wird mehr posten wenn nötig.
public class monthoffset
{
public static int month_offset(int month)
{
int offset =0;
if (month == 1)
{
offset=1;
}
else if (month == 2)
{
offset = 4;
}
else if (month == 3)
{
offset = 4;
}
else if (month == 4)
{
offset = 0;
}
else if (month == 5)
{
offset = 2;
}
else if (month == 6)
{
offset = 5;
}
else if (month == 7)
{
offset = 0;
}
else if (month == 8)
{
offset = 3;
}
else if (month == 9)
{
offset = 6;
}
else if (month == 10)
{
offset = 1;
}
else if (month == 11)
{
offset = 4;
}
else if(month ==12)
{
offset=6;
}
else
{
offset = -1;
}
return offset;
}
}
Ich sehe nur einen Methodennamen 'month_name' in dem Code, den Sie gepostet haben. Und es ist in der Klasse 'monthoffset' und erfordert einen int-Parameter. Offensichtlich funktioniert 'MonthName.month_name()' nicht. –
Bitte beachten Sie auch, dass Java Groß- und Kleinschreibung unterscheidet. 'monthoffset' und' MonthOffset' sind nicht dasselbe. –
Ok ... beim Einfügen in meinen Code habe ich monthoffset anstelle von monthname als Klasse eingefügt, nicht so auf meine ide. Ich habe alles gelöscht und neu gestartet, immer noch das exakt gleiche Problem. Die Klassennamen sind jetzt genau so wie sie sind. –