是否需要在同一个类中创建类的对象?

时间:2016-08-20 12:35:26

标签: java static this

    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()关键字可以访问类的所有方法,那么为什么他们需要创建类的对象构造函数最好在类中。

注释2因为privateMethod和public方法是非静态的,所以我们无法在静态函数中访问它们。我是对的吗?

评论5为什么这一行显示错误?IMO它不在有效方法内

1 个答案:

答案 0 :(得分:1)

main方法是静态的。因此,您无法在其中使用this。静态方法可以在没有对象的情况下使用,但所有非静态方法都需要一个。

带有注释5的陈述不属于任何方法。这在Java中是不允许的。