Есть ли необходимость создавать объект класса внутри того же класса?

java static this

34 просмотра

1 ответ

    package constructorlatest;
    import java.util.*;

     public class ConstructorLatest {

     public static void main(String[] args) {

        A a1=new A();
        a1.calculate();
        a1.display(12);
        ConstructorLatest Cl=new ConstructorLatest(); //1
        Cl.privateMethod(); 
        this.privatemethod(); //2
        this.publicMethod();  //3

    }
     ConstructorLatest C2=new ConstructorLatest(); //4 
     C2.privateMethod();         // 5               

    private void privateMethod()
    {
    System.out.println("this is a private method in main class");
    }

    void publicMethod()
    {
       System.out.println("this is a public method in main class");
    }

        this.privatemethod();
        this.publicMethod();

}



   class A
  {

    void calculate()
    {
      int x,y,sum;
      Scanner sc=new Scanner(System.in);
      x =sc.nextInt(); 
      y =sc.nextInt(); 
      sum=x+y;
      display(sum);

    }

    void display(int sum)
    {   
        System.out.println("no constructor created hence default constructor");        
        System.out.println(sum);
    }

}

комментарий 1 Есть ли необходимость в создании объекта основного класса (в общем). Я слышал, что ключевое слово this () может получить доступ ко всем методам класса, тогда зачем им нужно создавать объект класса ConstructorLatest внутри класс.

комментарий 2, так как privateMethod и открытый метод не являются статическими, мы не можем получить к ним доступ внутри статической функции. Я прав?

комментарий 5, почему эта строка показывает ошибку? IMO это не внутри допустимого метода

Автор: ekaf Источник Размещён: 08.11.2019 11:19

Ответы (1)


1 плюс

mainМетод является статическим. Поэтому вы не можете использовать thisв нем. Статические методы могут использоваться без объекта, но для всех нестатических методов требуется один.

Заявления с комментарием 5 не относятся ни к какому способу. Это не разрешено в Java.

Автор: Frank Puffer Размещён: 20.08.2016 12:43
Вопросы из категории :
32x32