2016-08-20 2 views
0
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 Есть ли необходимость в создании объекта основного класса (в общем). Я слышал, что это ключевое слово() может получить доступ ко всему методу класса. Тогда почему их нужно будет создать объект класса ConstructorLatest внутри класса.Нужно ли создавать объект класса внутри одного класса?

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

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

+0

Строгое создание объекта, содержащего другую версию, приведет к бесконечному циклу. Если каждая кошка содержит другого кота, и я создаю кошку, то эта кошка будет содержать еще одну кошку, в которой будет еще одна кошка, в которой будет еще одна кошка ... Пока у вас не закончится память. – Carcigenicate

+0

Не компилятор жалуется на все эти объяснения, почему _anyway_? Да 'this' обращается к методам _ в том же экземпляре_ thenthe почему требуется' // 1' - '2' и' 3' даже не компилируются. – vlaz

+0

@Carcigenicate, поэтому я не должен создавать объект класса внутри одного класса :) Спасибо за объяснение. Можете ли вы объяснить комментарий 5, почему эта строка не работает. я не понимаю предупреждения, вызванного netbeans. – ekaf

ответ

1

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

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

Смежные вопросы