Hoe een object in Java instantiëren?

Ik ben nieuw in programmeren en ik zou graag willen weten waar ik fout ben gegaan bij het instantiëren van een object. Hieronder staat de code:

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);
    }
}

Antwoord 1, autoriteit 100%

Er is geen klasse Samplein uw code. Degene die je hebt gedeclareerd is een privémethode.

// 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;
}

Met het huidige fragment moet u de klasse Testinginstantiëren en de Sample-methode gebruiken. Merk op dat uw klassedefinitie wordt voorafgegaan door het trefwoord class, in dit geval 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);
 }
}

Maar dat is niet echt logisch, je Sample-methode retourneert altijd 3.

Probeer je zoiets als dit te doen:

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);
 }
}

Antwoord 2, Autoriteit 17%

Ik betwijfel of u eigenlijk een object wilt maken.

Vanuit uw code Snippet begrijp ik dat u een ‘methode’ wilt uitvoeren, genaamd Sampledie twee cijfers toevoegt. En in Java hoef je geen methoden te instantiëren. Objecten zijn gevallen van class. Een methode is slechts een gedrag dat deze klasse heeft.

Voor uw vereiste hoeft u niets expliciet te instantiëren als wanneer u de gecompileerde code Java uitvoert, maakt automatisch een exemplaar van uw klas en zoekt u naar main()-methode om uit te voeren.

Waarschijnlijk wilt u het volgende doen:

public class Testing{
    private int sample(int a, int b) {
        return a + b;
    }
    public static void main(String[] args) {
        int c = sample(1, 2);
        System.out.println(c);
    }
}

Opmerking: ik heb Samplegewijzigd in SampleAS WORDT ALTEMAAL AANGEVONDIGE PRAKTIJK OM EEN METHODE NAAM TE STAREN MET KLEINE-CASE EN KLASSE NAAM MET EEN HOOFDSCHAPPELIJKE LETTER, ZO Testingis correct op dat front.


Antwoord 3, Autoriteit 6%

U dient het correct met newTrefwoord, maar uw Calss-naam en methode die aanroepen is verkeerd

Testing myTest = new Testing();
  int result =myTest.Sample(1);  //pass any integer value
  System.out.println(result );

Antwoord 4, Autoriteit 6%

Voorbeeld is geen klasse, het is slechts een methode. U kunt er geen exemplaren van maken.
Je voert het alleen uit –

int sample = Sample(3);

Als u wilt dat voorbeeld een klasse is, definieer het dan als een klasse.

In jouw geval is de methode niet statisch, dus je kunt er niet rechtstreeks toegang toe krijgen vanuit de Statische methode Main. Maak het statisch zodat je er toegang toe hebt. Of maak gewoon een nieuw exemplaar van Testing en gebruik het –

Testing testing = new Testing();
int sample = testing.Sample(3);

Antwoord 5, autoriteit 6%

Voorbeeldmethode retourneert integer, dus verkrijg het resultaat en gebruik het overal.

public static void main(String []args)
{
    int myTest = Sample(4555);//input may be any int else
    System.out.println(myTest);
}

Antwoord 6, autoriteit 6%

Dit is hoe je dit zou moeten doen.

public class Testing{
public int Sample(int c)
{
    int a = 1;
    int b = 2;
    c = a + b;
    return c;
}
public static void main(String []args)
{
    // Creating an Instance of Testing Class
    Testing myTest = new Testing();
    int c =0;
    // Invoking the Sample() function of the Testing Class
    System.out.println(myTest.Sample(c));
}

Antwoord 7

Nou, het is makkelijk. Om een object in Java te instantiëren, moet je de klassenaam gebruiken en daarmee heeft de klasse een waarde gekregen. Bijvoorbeeld:

Car c1 = new Car();

Other episodes