Saya baru dalam pemrograman dan saya ingin tahu di mana kesalahan saya dalam menginstansiasi sebuah objek. Di bawah ini adalah kodenya:
public class Testing{
private int Sample(int c)
{
int a = 1;
int b = 2;
c = a + b;
return c;
}
public static void main(String []args)
{
Sample myTest = new Sample();
System.out.println(c);
}
}
Tidak ada kelas Sample
dalam kode Anda. Yang telah Anda deklarasikan adalah metode pribadi.
// private method which takes an int as parameter and returns another int
private int Sample(int c)
{
int a = 1;
int b = 2;
c = a + b;
return c;
}
Dengan cuplikan saat ini, Anda perlu menginstansiasi kelas Testing
dan menggunakan metode Sample
. Perhatikan definisi kelas Anda didahului dengan kata kunci class , dalam hal ini class Testing
.
public class Testing{
private int Sample(int c)
{
int a = 1;
int b = 2;
c = a + b;
return c;
}
public static void main(String []args)
{
Testing t = new Testing(); // instantiate a Testing class object
int result = t.Sample(1); // use the instance t to invoke a method on it
System.out.println(result);
}
}
Tetapi itu tidak masuk akal, metode Sample
Anda selalu mengembalikan 3
.
Apakah Anda mencoba melakukan sesuatu seperti ini:
class Sample {
int a;
int b;
Sample(int a, int b) {
this.a = a;
this.b = b;
}
public int sum() {
return a + b;
}
}
public class Testing {
public static void main(String[] args) {
Sample myTest = new Sample(1, 2);
int sum = myTest.sum();
System.out.println(sum);
}
}
Sample bukanlah sebuah kelas, itu hanya sebuah metode. Anda tidak dapat membuat instance dari metode ini. Anda hanya menjalankannya -
int sample = Sample(3);
Jika Anda ingin sampel menjadi sebuah kelas, definisikan sebagai sebuah kelas.
Dalam kasus Anda, metodenya tidak statis sehingga Anda tidak bisa langsung mengaksesnya dari metode statis Main. Buatlah statis sehingga Anda bisa mengaksesnya. Atau buat saja instance baru dari Testing dan gunakan -
Testing testing = new Testing();
int sample = testing.Sample(3);