java课后反思

在定义变量时,我们需要对变量进行初始化才可以继续进行使用,同时,对象变量如果不引用一个真实的值,则必须·对他声明为null;
对于原始数据类型变量,可以使用==来进行相等,但当变量为对象变量时,则无法通过==来进行相等
public class Test {
public static void main(String[] args) {
Foo obj1=newFoo();
Foo obj2=newFoo();
System.out.println(obj1==obj2);
}
}
class Foo{
int value=100;}
当“==”施加于原始数据类型变量时,是比较变量所保存的数据是否相等
当“==”施加于引用类型变量时,是比较这两个变量是否引用同一对象。
引用代表地址,所以“==”实际上相当于比较两个引用类型变量中保存的对象地址是否相同。
这个方法是类的构造方法,具有参数值;
此代码无法运行是由于Foo obj1=new Foo()错误;
如果类提供了一个自定义的·构造方法,就会导致系统不再提供默认构造方法,上文代码需要添加默认的参数才可运行。
如果一个类中既有初始化块,又有构造方法,同时还设定了字段的初始值,谁说了算?
是由“public int field = 100;”说了算。就是谁比较靠后就是谁初始化起作用。执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。
构造函数,类的初始化块不接收任何的参数,只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。
静态初始化块只执行一次,创建子类型对象时,父类静态初始化块也执行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南