java 声明的对象与类名相同

发现声明的对象名可以和类名相同,并且可以正常使用……
运算出来的结果也是正确的,如果这样说的话能不能以后都用类名当做对象
比如一个Dome类定义成
Dome Dome=new Dome();
Dome这个对象是一个主要对象如果再创建新对象
声明一个dome=new Dome();这个不是更方便吗?
类和对象混用不是很好为什么规范没有这个用法?
public class No13_test_1 {
public static class Calculator{
public int ope(int chose,int a,int b){
switch(chose){
case 1://加法return a+b;
case 2://减法return Math.abs(a-b);
case 3://乘法return a*b;
case 4://除法return a/b;
}return 0; }}
public static void main(String[] args) {
Scanner Scanner=new Scanner(System.in);
System.out.print("请选择运算:1.加法2.减法3.乘法4.除法:");
int chose=Scanner.nextInt();
System.out.println("请输入第一个数:");
int a=Scanner.nextInt();
System.out.println("请输入第二个数:");
int b=Scanner.nextInt();
Calculator Calculator=new Calculator();
System.out.println("***运算结果为:"+Calculator.ope(chose, a, b));

}
}

import java.util.Scanner;
class Calculator{

public int ope(int chose,int a,int b){
switch(chose){
case 1://加法
return a+b;
case 2://减法
return Math.abs(a-b);
case 3://乘法
return a*b;
case 4://除法
return a/b;
}
return 0;
}
}
public class No13_test_1 {

public static void main(String[] args) {
Scanner Scanner=new Scanner(System.in);
System.out.println("请选择运算:1.加法2.减法3.乘法4.除法:");
int chose=Scanner.nextInt();
System.out.println("请输入第一个数:");
int a=Scanner.nextInt();
System.out.println("请输入第二个数:");
int b=Scanner.nextInt();
Calculator Calculator=new Calculator();
System.out.println("***运算结果为:"+Calculator.ope(chose, a, b));
}
}追问

恩 其实我是想问main方法中的
Scanner Scanner=new Scanner(System.in);
Calculator Calculator=new Calculator();
这个声明,对象名和类名相同java如何判断?

追答

这个是这样的。一般Calculator Calculator=new Calculator();得这么写
Calculator calculator=new Calculator();
这个变量命名规范叫做驼峰法则。
不推荐对象名和类名相同的写法。
具体区别的话,一般类的定义里面没有加static的,main函数里用的是实例。加了static修饰的,你可以当做是类名

追问

恩 一般规则就是Calculator calculator=new Calculator();
这样写,不推荐对象名和类名相同的写法,既然不推荐就有不能这样用的理由 ,这样对象名和类名相同的写法肯定有一定的弊端,难道是说类名和对象名相同,使用的时候容易混淆吗?
还有就是在类中方法和类重名叫做构造方法,那这个对象名和类名相同有什么说法吗?
问的有点多了 大师多多关心我们新手啊O(∩_∩)O~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-20
是...创建对象 只能用new
追问

我的问题不是创建对象的问题 我的意思是对象与类同名的问题……

第2个回答  2011-06-18
本来就是呀。。。。。本来就可以了。。。追问

Scanner Scanner=new Scanner(System.in);
Calculator Calculator=new Calculator();
就这句,类名和对象名相同了,但是java怎么知道我下面用的是对象还是类地?
我初学的不太懂

追答

Calculator要声明后面就必须跟变量。。。。
没跟的就是已经声明好的。。

追问

那我可不可以这样理解呢?Calculator后面如果是有.像这样的Calculator.ope(),我们都可以统统理解为Calculator是一个对象,而类的后面是没有.的?

追答

嗯。。。

追问

哦 谢谢你啦O(∩_∩)O!多谢你在这里回答我们新手问题啦,可能不能把你选成最佳答案了你和 EF0718的回答都很好,对我很有帮助,但是最佳答案只有一个,还是谢谢你的帮助,你再回下,我等会再追问一个问题帮你加十分吧O(∩_∩)O~