10.3

自定义类:ClassAndObjectTest.java
这两种方式定义变量不同,前一种数据为基本类型integer,变量可以用数值去赋值,即显式初始化,而MyClass为自定义类,必须使用构造函数去定义和初始化。
输出结果为:
说明比较的是地址,不是类里的变量是否相等。
输出结果:
动手动脑1
出错原因:Foo()函数未定义,不能初始化。如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。
结论:类中初始化是根据类的语句顺序赋值的,当把大括号中的field=200移到field=100的后面时 输出为:
说明类的变量初始化在类内部是顺序进行的,但是当调用类中初始化函数对类中变量赋值时则优先按照函数对类内部变量赋值。
static初始化块是在构造函数之前执行的,初始化块中静态初始化块只会执行一次,无论new多少次,只执行一次。而非静态初始化块不是这样的,每次new都会执行一次,执行顺序先静态再非静态,无论是静态或者是非静态,它们的执行顺序都会在构造方法之前,在存在父子类的情况下,在执行完非静态代码块后会立即执行其构造函数然后执行子类的非静态代码块然后执行子类的构造方法
把静态方法的参数设置为类的实例,这样通过参数传递的方式就可以访问实例的成员。
class exe{
int n=100;
static void shuchu(exe x) {
System.out.println(x.n);
}
}
public class wq
{
public static void main(String[] args)
{
exe e=new exe();
e.shuchu(e);
}
}
在通过valueOf方法创建Integer对象的时候,如果数值在[-128,127]之间,便返回指向IntegerCache.cache中已经存在的对象的引用;否则创建一个新的Integer对象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本