android便利构造方法,Android-Java构造代码块&构造方法隐式三行

构造代码块:

描述Teacher对象/实体:

package android.java.oop06;

public class Teacher {

private int id = 007;

private String name = "零零发";

private int age = 98;

private float height = 1.78F;

/**

* 静态代码块:当前Teacher类,被加载进内存时 就会执行此静态代码块里面的主体{}

* 可以说是最先执行的,可以在这里做一些静态成员的初始化工作

*/

static {

System.out.println("静态代码块:当前Teacher类,被加载进内存时 就会执行此静态代码块里面的主体{}");

System.out.println("");

}

/**

* 构造代码块:每一个构造函数,的第三行执行者 就是构造代码块;

* 构造代码块可以给成员变量字段进行初始化工作等;

*/

{

System.out.println("构造代码块 被所有构造方法的第三行执行者 执行了...");

showAllValue();

}

/**

* 构造函数是专门给对象实例化用的:

* new Teacher(); ---> public Teacher(){}

* ...

*

* 就算不写构造函数 也会默认有一个无参构造函数;

* 一旦写了 无参构造函数/有参构造函数 后 默认隐式的那个构造函数就不见了

*/

public Teacher() {

System.out.println("无参构造函数,我被new Teacher()实例化了");

showAllValue();

return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;

}

/**

* 构造函数是专门给对象实例化用的:

* new Student(9); ---> public Student(int value){}

* ...

*

* 就算不写构造函数 也会默认有一个无参构造函数;

* 一旦写了 无参构造函数/有参构造函数 后 默认隐式的那个构造函数就不见了

*/

public Teacher(int value) {

System.out.println("有参构造函数,我被new Teacher(int类型的值)实例化了 value:" + value);

showAllValue();

return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;

}

/**

* 构造函数是专门给对象实例化用的:

* new Student("刘俊", true); ---> public Student(String value1, boolean value2){}

* ...

*

* 就算不写构造函数 也会默认有一个无参构造函数;

* 一旦写了 无参构造函数/有参构造函数 后 默认隐式的那个构造函数就不见了

*/

public Teacher(String name, boolean isSuccess) {

System.out.println("无参构造函数,我被new Student(String类型的值, boolean类型的值)实例化了 name:" + name + " isSuccess:" + isSuccess);

showAllValue();

return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;

}

// 打印所有的成员变量值

private void showAllValue() {

System.out.println("id:" + id + "\nname:" + name + "\nage:" + age + "\nheight:" + height + "\n");

return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;

}

}

main测试方法:

package android.java.oop06;

public class Demo01 {

public static void main(String[] args) {

// new Teacher(); ---> public Teacher(){}

Teacher teacher1 = new Teacher();

// new Student(9); ---> public Student(int value){}

Teacher teacher2 = new Teacher(9988);

// new Student("刘俊", true); ---> public Student(String value1, boolean value2){}

Teacher teacher3 = new Teacher("毛对皮", true);

}

}

执行结果:

分析打印执行的结果中,每次调用构造方法,构造方法都会,先调用构造代码块,这是为什么呢,等结束完(构造方法隐式三行)就明白了;

c8a988f7db9a82073c9ca6fe870278ba.png

构造方法隐式三行

1.分析打印执行的结果中,每次调用构造方法,构造方法都会,先调用构造代码块,这是为什么呢?;

解释:因为在所有构造方法中,【第三行】隐式的 会调用构造代码块;

2.为什么构造代码块中打印的成员变量是有值得呢?

解释:因为【第二行】给所有成员变量赋值了,所以构造代码块可以打印成员变量的值;

3.为什么构造方法中打印的成员变量是有值得呢?

解释:因为【第二行】给所有成员变量赋值了,所以构造方法可以打印成员变量的值;

package android.java.oop06.teacher;

public class Teacher {

private int id = 007;

private String name = "零零发";

private int age = 98;

private float height = 1.78F;

/**

* 构造代码块:每一个构造函数,的第三行执行者 就是构造代码块;

* 构造代码块可以给成员变量字段进行初始化工作等;

*/

{

System.out.println("构造代码块 被所有构造方法的第三行执行者 执行了...");

showAllValue();

}

/**

* 每一个构造函数/所有构造函数都是这样的

* 就以此构造函数为例:来介绍隐式 第一行 第二行 第三行 执行操作

* 隐式的第一行、第二行、第三行、执行操作是默认执行的,是看不到的 隐式的

*/

public Teacher() {

// 【第一行】super(); 调用父类的 无参构造方法

/**

* 【第二行】

* 给所有成员属性赋值 例如:一开始这些成员变量的值是id=0 name=null age=0

* 就是执行了【第二行】才会去执行-->给id=赋值为007 name=赋值为="零零发" age=98)

*/

// 【第三行】调用-->(构造代码块)

System.out.println("无参构造函数,我被new Teacher()实例化了");

showAllValue();

return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;

}

/**

* 每一个构造函数/所有构造函数都是这样的

* 就以此构造函数为例:来介绍隐式 第一行 第二行 第三行 执行操作

* 隐式的第一行、第二行、第三行、执行操作是默认执行的,是看不到的 隐式的

* @param value

*/

public Teacher(int value) {

// 【第一行】super(); 调用父类的 无参构造方法

/**

* 【第二行】

* 给所有成员属性赋值 例如:一开始这些成员变量的值是id=0 name=null age=0

* 就是执行了【第二行】才会去执行-->给id=赋值为007 name=赋值为="零零发" age=98)

*/

// 【第三行】调用-->(构造代码块)

System.out.println("有参构造函数,我被new Teacher(int类型的值)实例化了 value:" + value);

showAllValue();

return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;

}

/**

* 每一个构造函数/所有构造函数都是这样的

* 就以此构造函数为例:来介绍隐式 第一行 第二行 第三行 执行操作

* 隐式的第一行、第二行、第三行、执行操作是默认执行的,是看不到的 隐式的

* @param name

* @param isSuccess

*/

public Teacher(String name, boolean isSuccess) {

// 【第一行】super(); 调用父类的 无参构造方法

/**

* 【第二行】

* 给所有成员属性赋值 例如:一开始这些成员变量的值是id=0 name=null age=0

* 就是执行了【第二行】才会去执行-->给id=赋值为007 name=赋值为="零零发" age=98)

*/

// 【第三行】调用-->(构造代码块)

System.out.println("无参构造函数,我被new Student(String类型的值, boolean类型的值)实例化了 name:" + name + " isSuccess:" + isSuccess);

showAllValue();

return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;

}

// 打印所有的成员变量值

private void showAllValue() {

System.out.println("id:" + id + "\nname:" + name + "\nage:" + age + "\nheight:" + height + "\n");

return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;

}

}

标签:Java,name,构造方法,第三行,Teacher,return,Android,隐式,构造函数

来源: https://www.cnblogs.com/android-deli/p/10349233.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值