当前位置: 首页 > news >正文

广州市天河区建设局网站北京网站建设联系兴田德润

广州市天河区建设局网站,北京网站建设联系兴田德润,江苏seo,域名等于网站网址吗代码块 SE.10.0…02.28 非静态普通代码块:定义在方法内部的代码块,不用任何关键字修饰,又名构造代码块、实例代码块 静态代码块:用static修饰的代码块 非静态代码块 public class Test {public static void main(String[] args…

代码块
SE.10.0…02.28

非静态普通代码块:定义在方法内部的代码块,不用任何关键字修饰,又名构造代码块、实例代码块
静态代码块:用static修饰的代码块

非静态代码块

public class Test {public static void main(String[] args) {{//普通代码块int a = 10;System.out.println(a);//打印10}int a = 100;System.out.println(a);//打印0100}
}

构造代码块(实例代码块,非静态代码块)

class Student {private static String classroom = "八年级二班";//班级private String name;//姓名private int age;//年龄public Student(String name, int age) {this.name = name;this.age = age;}{System.out.println("构造代码块/非静态代码块/实例代码块,一般用于初始化非静态的对象属性");System.out.println("而且在顺序上他会比构造方法先被编译器调用");name = "baixian";//所以这里对象实例化后的name应该是白线,因为构造方法最后运行}
}public class Test {public static void main(String[] args) {Student student = new Student("白线",18);}
}

但是如果我的构造方法是空的,或者我没有写构造方法,那么实例化就赋值的就是我构造代码块里面的值

class Student {private static String classroom = "八年级二班";//班级private String name;//姓名private int age;//年龄public Student() {}{System.out.println("构造代码块/非静态代码块哦/实例代码块吗,一般用于初始化非静态的对象属性");System.out.println("如果构造代码为空,那么实例化的值就会优先选择这");name = "baixian";//所以这里对象实例化后的name应该是baixian}public String getName() {return name;}}public class Test {public static void main(String[] args) {Student student = new Student();System.out.println(student.getName());}
}

那么如果定义类的成员变量的时候初始就附了值,构造代码块里也赋了值,那么究竟实例化成哪一个的

class Student {private String classroom = "八年级二班";//班级private String name = "白线";//姓名private int age;//年龄{System.out.println("无论是一开始赋值,还是构造代码块赋值,本身都是非静态的,所以谁最后执行,谁就是实例化都的值");this.name = "baixian";//所以这里对象实例化后的name应该是白线}public Student() {}public String getName() {return name;}}public class Test {public static void main(String[] args) {Student student = new Student();System.out.println(student.getName());}
}

实际底层是编译器将构造代码块(非静态代码块)全部拷贝到构造方法里面,并且放在最前面。这样就能更深刻理解是这样的一个执行顺序了。

静态代码块

只要类被加载,就会先执行静态代码块,并且无论实例化几次,静态代码块只会被执行一次

class Student {static {System.out.println("执行静态代码块");}private String classroom = "八年级二班";//班级private String name = "白线";//姓名private int age;//年龄{System.out.println("执行非静态代码块");}public Student() {}}public class Test {public static void main(String[] args) {Student student1 = new Student();Student student2 = new Student();}
}

在这里插入图片描述

在继承背景下的静态代码块与非静态代码块,构造方法的执行顺序

看下面的代码思考123456这六行代码的执行顺序

class Animal {static {System.out.println("Animal static{}");//1}public String name;public int age;{System.out.println("Animal{}");//2}public Animal() {System.out.println("Animal()");//3}
}class Dog extends Animal {static {System.out.println("Dog static{}");//4}{System.out.println("Dod{}");//4}public Dog() {System.out.println("Dog()");//6}public void wangwang() {System.out.println(name + "汪汪叫");//5}
}public class Test {public static void main(String[] args) {Dog dog = new Dog();}
}

在这里插入图片描述
1、父类静态代码块优先于子类静态代码块执行,且是最早执行
2、父类实例代码块和父类构造方法紧接着执行
3、子类的实例代码块和子类构造方法紧接着再执行
4、第二次实例化子类对象时,父类和子类的静态代码块都将不会再执行

http://www.15wanjia.com/news/156060.html

相关文章:

  • 制作网站制作网站建设的公司网站设计
  • 常熟专业做网站咸宁住房和城乡规划建设局网站
  • python做网站好不好蚌埠seo
  • 公司网站建设需要注意哪些内容建设银行官方网站手机版下载
  • 自做网站北京公司注销流程
  • 六安网站磁县网络推广
  • 酒泉网站建设平台wordpress文章语言切换
  • 微网站开发素材生物科技网站模板
  • 手机网站技术做百度移动端网站软件下载
  • 京东的网站规划与建设ppt模板怎么做 下载网站
  • 怎么为自己做的网站申请域名app开发需要多久
  • 网站备案 手印随便做一套小程序设计多少钱
  • 呼市做网站建设的公司哪家好购物网站开发多少钱
  • 网页设计网站模板做毕业证教育网站
  • 成都网站制作成都网站制作做淘宝客网站用什么程序最好
  • 重庆建站模板展示wordpress phpdisk
  • 台州网页设计公司乐天seo视频教程
  • 临沂网站制作公司哪家好青岛做网站
  • 自己做的网站怎么才能被收录做网站接活犯法吗
  • 建网站手续寿光网站建设优化
  • 东莞南城做网站推广的公司做网站制作外包
  • 怎样提高网站点击率网易企业邮箱客户端下载
  • 百度商桥 手机网站招聘网站建设工作总结
  • 菏泽市住房和建设局网站河北区做网站公司
  • 网站创建公司网站自定义wordpress邮件找回密码
  • 龙华个人网站建设企业英语网站
  • 百度有没有做游戏下载网站中国建设的网站
  • 香洲区建设局网站苏州有哪些it大厂
  • 给人做ppt的网站微信推广怎么做
  • 怎么做企业网站运营上海到北京高铁价格查询