我不知道這是什麼問題。我用其他代碼的例子做了這個。現在我因爲這件事而陷入困境。Java中的「Missing return statement」錯誤
import java.util.Scanner;
import java.util.Calendar;
public class Praktikum3
{
Scanner scan = new Scanner(System.in);
Calendar cal = Calendar.getInstance();
String NIP, nama, kelamin, jabat, sub1, sub2, sub3, sub4;
int a, b, c, d, e, umur, menjabat, tgllhr, blnlhr, thnlhr, lhr, blnjbt, thnjbt, date, month, year;
public Praktikum3() //constructor
{
System.out.printf("DATA KARYAWAN\n\n"); //menginisialkan constructor
}
public void setNama()
{
System.out.printf("Nama: ");
nama = scan.next();
}
public String getNama()
{
return nama;
}
public void setNIP()
{
System.out.printf("NIP : ");
while (!scan.hasNextLong())
{
System.out.printf("!HARUS ANGKA!\n");
System.out.printf("NIP : ");
scan.next();
}
NIP = scan.next();
if(NIP.length() != 18)
{
System.out.printf("!HARUS 18 KARAKTER!\n");
System.out.printf("NIP : ");
scan.next();
}
sub1 = NIP.substring(0,8); /*substring Tanggal lahir*/
sub2 = NIP.substring(8,14); /*substring Masa menjabat*/
sub3 = NIP.substring(14,15); /*substring Jenis kelamin*/
sub4 = NIP.substring(15,18); /*substring Nomor urut*/
date = cal.get(Calendar.DATE);
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
a = Integer.parseInt(sub1.substring(6,8));
b = Integer.parseInt(sub1.substring(4,6));
c = Integer.parseInt(sub1.substring(0,4));
d = Integer.parseInt(sub2.substring(4,6));
e = Integer.parseInt(sub2.substring(0,4));
}
public String getSub1()
{
return sub1;
}
public String getSub2()
{
return sub2;
}
public String getSub3()
{
return sub3;
}
public String getSub4()
{
return sub4;
}
public int getTgllhr()
{
return a;
}
public int getBlnlhr()
{
return b;
}
public int getThnlhr()
{
return c;
}
public int getUmur()
{
tgllhr = date - a;
blnlhr = month - b;
if(blnlhr < 0)
lhr = -1;
else if(tgllhr < 0)
lhr = -1;
else
lhr = 0;
thnlhr = year - c;
umur = thnlhr + lhr;
return umur;
}
public String getKelamin()
{
if(sub3.equals("1"))
kelamin = "Pria";
else if(sub3.equals("2"))
kelamin = "Wanita";
else
kelamin = "Ganda";
}
public int getMenjabat()
{
blnjbt = month - d;
if(blnjbt < 0)
blnjbt = -1;
else
blnjbt = 0;
thnjbt = year - e;
menjabat = thnjbt + blnlhr;
return menjabat;
}
public static void main(String[]arbi)
{
Praktikum3 dt = new Praktikum3();
dt.setNama();
dt.setNIP();
System.out.printf("\nData\n----\n");
System.out.printf("Nama : %s\n", dt.getNama());
//System.out.printf("NIP : %s.%s.%s.%s\n", dt.getSub1, dt.getSub2, dt.getSub3, dt.getSub4);
//System.out.printf("Tanggal lahir : %d-%d-%d\n", dt.getTgllhr, dt.getBlnlhr, dt.getThnlhr);
System.out.printf("Umur : %d tahun\n", dt.getUmur());
System.out.printf("Jenis kelamin : %s\n", dt.getKelamin());
System.out.printf("Lama menjabat : %d tahun", dt.getMenjabat());
}
}
這是印度尼西亞語。這是我用OOP練習子串的一個。即使是get substring方法也是錯誤的。
錯誤消息:
Praktikum3.java:125: error: missing return statement }
什麼是您的實際和完整的錯誤信息?涉及哪一行代碼? – 2014-10-22 00:22:41
Chit,您的標題完全誤導您的問題與構造函數問題無關。下一次,請多花點精力問一個完整而準確的問題。 – 2014-10-22 00:26:29
Arbintoro,請閱讀http://stackoverflow.com/help/how-to-ask另外,你的函數名稱是印度尼西亞語,請用代碼註釋說明它們,因爲它們不是英文的 – Parker 2014-10-22 00:28:25