class Ask2
{
        public Ask2()
       {
          System.out.println("iiiiiiiii");
       }
    
   
 void Ask2()
         {
System.out.println("........");
}
public static void main(String[] args)
{
Ask2 as=new Ask2();
as.Ask2();
}
}为什么同类名一样的方法名都可以执行,原来我以为不行

解决方案 »

  1.   

    第一个是构造函数,第二个是普通的方法,两个是不同的方法,你new了类Ask2的一个新对象,调用了同名Ask2()方法,当然都要执行了...
      

  2.   

    属性名,方法名 除了标准的的0-9,a-z,A-Z $_ 外,还不可以是java的关键字。
    类名不是java关键字当然可以做为方法名,
    你甚至可以这样定义
    Integer Integer = new Integer(100);明白?明白就给点分吧,现在CSDN人太扣了,分难得呀
      

  3.   

    注Integer是JDK内置类,也不是java关键字,所以可以做为变量名。
    java5.0的所有关键字如下:abstract  boolean  break  byte  case  catch  char  class  const  continue  default  do  double  else  extends  final  finally 
    float  for  goto  if  implements  import  instanceof  int  interface  long  native  new  package  private  protected  public 
    return short  static  strictfp  super  switch  synchronized  this  throw  throws  transient  try  void  volatile  while  assert  enum 它们不可以做为方法名和变量名。
      

  4.   

    打印结果第一个:调用的是构造函数,类实例化时,会调用无参的构造函数.public Ask2()
    打印结果第二个:这个是类里的普通方法,即调的是void Ask2()