建设房地产法律网站,网上开小店怎么开,网件,仿站容易还是建站容易目录 一、如何初始化对象 
二、构造方法 
1.概念 
2.特性 
三、默认初始化 
四、就地初始化 
总结 一、如何初始化对象 在Java方法内部定义一个局部变量的时候#xff0c;我们知道必须要进行初始化。 
public class Test4 {public static void main(String[] args) {//未初始化…目录 一、如何初始化对象 
二、构造方法 
1.概念 
2.特性 
三、默认初始化 
四、就地初始化 
总结 一、如何初始化对象 在Java方法内部定义一个局部变量的时候我们知道必须要进行初始化。 
public class Test4 {public static void main(String[] args) {//未初始化的变量nint n;System.out.println(n);//尚未初始化变量n编译失败}
}如果要上述代码通过编译只需要在使用n之前给它一个初始值即可。 
如果要是一个对象则如下面代码需要调用之前写的SetDate方法才可以将具体的日期设置到对象中。         
class Date{public int year;public int mouth;public int day;public void setDay(int year,int mouth,int day){this.year  year;this.mouth  mouth;this.day  day;}public void printfDate(){System.out.println(year  年  mouth  月  day  日);}
}
public static void main(String[] args) {Date d  new Date();d.printDate();d.setDate(2023,3,30);d.printDate();
}
// 代码可以正常通过编译 但大家发现问题没有 
1.每次对象创建好后调用SetDate方法设置具体日期比较麻烦那对象该如何初始化  
2.  为什么局部变量必须要初始化才能使用为什么字段声明之后没有给值依然可以使用 
下面为大家解释。 二、构造方法 
1.概念 
构造方法是一个特殊的成员方法名字必须与类名相同在创建对象时由编译器自动调用并且在整个对象的生命周期内只调用一次。 
构造方法的作用就是对对象中的成员进行初始化并不负责给对象开辟空间。 
public class Date {public int year;public int month;public int day;// 构造方法// 名字与类名相同没有返回值类型设置为void也不行// 一般情况下使用public修饰// 在创建对象时由编译器自动调用并且在对象的生命周期内只调用一次public Date(int year, int month, int day){this.year  year;this.month  month;this.day  day;System.out.println(Date(int,int,int)方法被调用了);}public void printDate(){System.out.println(year  -  month  -  day);}public static void main(String[] args) {// 此处创建了一个Date类型的对象并没有显式调用构造方法Date d  new Date(2021,6,9);  // 输出Date(int,int,int)方法被调用了d.printDate();   // 2021-6-9}
} 
2.特性 1. 名字必须与类名相同 2. 没有返回值类型设置为void也不行 3. 创建对象时由编译器自动调用并且在对象的生命周期内只调用一次 4. 构造方法可以重载(用户根据自己的需求提供不同参数的构造方法) public class Date {public int year;public int month;public int day;// 无参构造方法public Date(){this.year  1900;this.month  1;this.day  1;}// 带有三个参数的构造方法public Date(int year, int month, int day) {this.year  year;this.month  month;this.day  day;}public void printDate(){System.out.println(year  -  month  -  day);}public static void main(String[] args) {Date d  new Date();d.printDate();}
} 
上述两个构造方法名字相同参数列表不同因此构成了方法重载。 注意 类中没有定义任何构造方法编译器会默认生成一个不带参数的构造方法。 构造方法中可以通过this调用其他构造方法来简化代码三、默认初始化 
在上文中提出的第二个问题为什么局部变量在使用时必须要初始化而成员变量可以不用呢 这是因为关键词new当你new出一个对象的时候在程序层面只是一条简单的语句而在JVM层面会发生很多的事情例如 1. 检测对象对应的类是否加载了如果没有加载则加载 2. 为对象分配内存空间 3. 处理并发安全问题 4. 初始化所分配的空间         即对象空间被申请好之后对象中包含的成员已经设置好了初始值比如 数据类型默认值    byte0int 0double0.0char\u0000   short0long0Lbooleanfalsefloat0.0freference null5. 设置对象头信息 6. 调用构造方法给对象中各个成员赋值 四、就地初始化 在声明成员变量时就直接给出了初始值。 
public class Date {public int year  1900;public int month  1;public int day  1;public Date(){}public Date(int year, int month, int day) {}public static void main(String[] args) {Date d1  new Date(2021,6,9);Date d2  new Date();}
} 
总结 为大家带来对象的构造及初始化的小文希望能够帮助大家