Java中,构造方法,创建两个对象的时候,找不到符号了。。自学,求解。。
问题描述
public class Lan{ public static void main(String []agrs){/*Person p1=new Person();p1.age=8;p1.Test();System.out.println('第一个为'+p1.age);创建这一个的时候就不行,提示找不到符号,在“Person p1=new Person()”的new这里提示的,去掉可就没问题。。*/Person p2=new Person(7,'小五');p2.Test();p2.jisuan();System.out.println('第二个为'+p2.age); }}class Person{ int age; String name; public void jisuan() {int i=2;System.out.println(i); } public void Test(){System.out.println('做测试1'); } Person(int age,String name){this.age=age;this.name=name; }}
问题解答
回答1:没写默认构造器啊
回答2:回复一下楼上,什么时候java不写访问修饰符变成private了?难道我用的是假java?
回答3:当你显示 的写了 构造器 。 是不会生成 默认构造器的。添加 就可以了 Person(){
}
注意 当一个类你重写了构造器 一定要重写 为空的 构造器。 因为有些框架 在反射创建对象的时候 会去找这个默认的构造器。
还有那 Test() 方法请修改为test().
回答4:Person类的带参数的构造方法覆盖了默认的构造方法。注:默认的构造方法是没有参数的所以如果这么用:Person p1=new Person();需要在Person类指定无参的构造器。或者直接去掉带参数的构造器。
回答5:因为你在Person类中定义了构造函数,所以默认的构造函数Person()就不会创建了,而是采用你自定义的构造函数。你也可以用函数重载,再写一个构造函数Person().
回答6:补充:不要用拼音
相关文章:
1. java中在哪些情况下需要使用泛型通配符如:? extends T 或者 ? super T2. android - rxjava中的filter不就是if吗,有别的高端的地方吗3. Java中List的contains方法为什么不能实现二维数组中的去重?4. 我想从Java Date中获取Year,Month,Day等,以便与Java中的公历日期进行比较这可能吗?5. 我需要学习Java中的Web服务。里面有什么不同的类型?6. 在Java中,相同代码块的运行时间不同。这是为什么?7. android - java中使用MAT是shallow size 单位是什么8. 关于用java中正则表达式匹配单个字符9. Java中的多人游戏。将客户端(玩家)连接到其他客户端创建的游戏10. JAVA中获取文件输入流跟内存占用的关系
![docker-machine添加一个已有的docker主机问题](http://www.haobala.com/attached/image/news/202311/1028320972.png)