课后实验代码
上了这节java课 老师叫我们在课下试试运行下面的这些代码:
public class Test {
public static void main(String[] args) {
Foo obj1 = new Foo();
Foo obj2 = new Foo();
System.out.println(obj1 == obj2);//?
}
}
class Foo{
int value=100;
}
结果是false
为什么呢?老师继续讲解了上面的Foo是新的构造函数 如果想要让她成功赋值 则需要在foo后面的括号中重新定义一个量 再让value=这个量 就可以成功运行
我觉得应该改成如下
public class Test {
public static void main(String[] args){
Foo obj1=new Foo();}
class Foo {
int value;
public Foo(int initValue) {
value = initValue;
}
}
网上是这样说的
如果程序员没有定义一个构造函数时,系统会自动定义一个不含参数的“默认构造函数”,在自定义构造函数后就不再产生默认的构造函数了。
对于同一个类来说,可以有很多个构造函数,也就是所谓方法重载的运用。其之间可以相互调用。
类的初始化块:指的是在类中用{}括起来的几行代码,可以直接作为类的成员。多用于类中变量的初始化。
在执行类成员的时候默认给出的值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?