Soy nuevo en programación y me gustaría saber dónde me he equivocado al instanciar un objeto. A continuación se muestra el código:
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);
}
}
No hay ninguna clase Sample
en su código. El que usted ha declarado es un método privado.
// 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;
}
Con el fragmento actual, necesitas instanciar la clase Testing
y hacer uso del método Sample
. Observa que la definición de tu clase está precedida por la palabra clave class, en este caso 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);
}
}
Pero eso no tiene sentido, tu método Sample
siempre devuelve 3
.
¿Estás tratando de hacer algo como esto:
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 no es una clase, es sólo un método. No se pueden crear instancias de él. Sólo se ejecuta -
int sample = Sample(3);
Si desea que sample sea una clase, defínala como clase.
En tu caso, el método no es estático por lo que no puedes acceder a él directamente desde el método estático Main. Hazlo estático para que puedas acceder a él. O simplemente cree una nueva instancia de Testing y utilícela -
Testing testing = new Testing();
int sample = testing.Sample(3);