构造代码块
1.在方法之外,类里只有{}
2.属性初始化
3.优先于所有的构造方法先执行
package cn.tedu.object;
import java.util.jar.JarOutputStream;
public class ObjectDemo2 {
public static void main(String[] args) {
//创建对象
Baby b=new Baby();
//
System.out.println(b.name+","+b.age);
}
}
//代表婴儿的类---创建的对象就是一个真实的婴儿
class Baby{
//属性
//成员变量
String name;
int age;
char gender;
//构造代码块
//优先于所有的构造方法先执行(当构造方法里没有定义属性时)
//属性初始化
{
this.name="ldld";
this.age=3;
}
}
结果为ldld ,3
package cn.tedu.object;
import java.util.jar.JarOutputStream;
public class ObjectDemo2 {
public static void main(String[] args) {
//
Baby b=new Baby();
//
System.out.println(b.name+","+b.age);
}
}
//代表婴儿的类---创建的对象就是一个真实的婴儿
//要求:不管怎么出生个,婴儿的名字都是莉莉,年龄1岁
class Baby{
//属性
//成员变量
String name;
int age;
char gender;
//构造代码块
//优先于所有的构造方法先执行(当构造方法里没有定义属性时)
//属性初始化
{
this.name="ldld";
this.age=3;
}
//无参构造---婴儿没有名字之类的属性
public Baby(){
this.name="莉莉";
this.age=1;
}
结果为:莉莉,1
当构造方法里有定义属性时,执行的是构造方法
局部代码块
1.在方法内{}
2.控制变量的生命周期,提高内存利用率