积极的人创造机会,消极的人等待机会。
代码块
代码块
- 普通块:方法内部。跟随方法一起执行
- 一般在流程控制语句中使用
- 构造块:方法外,类体中,没创建一次独享就执行一次
- 用来初始化操作。先于构造器执行
- 静态块:方法外,类体中,被static修饰,在类加载的时候调用,而且只会调用一次
- 做静态初始化操作,或者类加载的时候需要完成的一些一次经操作
1、普通块
public class Test7 {
public static void main(String[] args) {
{
System.out.println("我是普通块");
}
}
}
块内声明的变量不能在块外使用
2、构造块
public class Test7 {
public static void main(String[] args) {
AB ab = new AB();
}
}
class AB{
{
System.out.println("我是构造快,先于构造器执行");
}
public AB() {
System.out.println("我是构造器");
}
}
构造快先于构造器执行
3、静态块
public class Test7 {
public static void main(String[] args) {
AB.a();
AB.b();
}
}
class AB{
static {
System.out.println("我是静态块");
}
{
System.out.println("我是构造快,先于构造器执行");
}
public AB() {
System.out.println("我是构造器");
}
public static void a(){
System.out.println("我是静态方法a");
}
public static void b(){
System.out.println("我是静态方法b");
}
}
静态块会在通过类名调用静态方法或者静态属性的时候是自动调用,并且只会调用一次
public class Test7 {
public static void main(String[] args) {
AB ab = new AB();
}
}
class AB{
public static int i = 0;
static {
System.out.println("我是静态块");
}
{
System.out.println("我是构造快,先于构造器执行");
}
public AB() {
System.out.println("我是构造器");
}
public static void a(){
System.out.println("我是静态方法a");
}
public static void b(){
System.out.println("我是静态方法b");
}
}
在创建对象时,静态块会最先执行,然后执行构造块,最后执行构造器
静态块内部不能访问非静态属性和方法,可以访问静态静态和方法