static关键字和代码块
作者:互联网
static关键字
static修饰的变量叫做静态变量
class StudentBean{ private String name; private int age; static String country; public void show(){ System.out.println("name="+name+"\t age="+age+"\t country="+country); } public StudentBean() { } public StudentBean(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
public static void main(String[] args) { StudentBean s1 = new StudentBean("张三",14); StudentBean s2 = new StudentBean("李四",18); StudentBean s3 = new StudentBean("王五",22); StudentBean.country="中国"; s1.show(); s2.show(); s3.show(); }
运行结果:
在学生类中定义一个静态变量country,在main方法中创建对象,通过类名.变量名的方式来给静态变量进行赋值。
被static修饰的静态变量,只能够被static修饰的静态方法访问
static的特点:
1、静态变量属于某个类,而不属于某个具体的对象
2、只有静态才能访问静态,而非静态变量不能够出现在静态方法中
3、访问静态成员的方式:
1.类名.成员变量
2.类名.成员方法
4、静态环境下不能出现this和super关键字
5、static能够修饰的成员(成员变量、成员方法、修饰内部类)
代码块
用“{ }”包裹的就是代码块
代码块分为三类:
1、局部代码块
定义在类的方法内,作用:限定局部变量的作用域
public void show(){ { System.out.println("局部代码块"); } System.out.println("name="+name+"\t age="+age+"\t country="+country); }
2、静态代码块
static修饰的代码块就称为静态代码块
作用:一般用于初始阿虎静态成员变量
静态代码快只会执行一次,在类加载的时候执行
static { /** * 静态代码块 */ System.out.println("静态代码块执行了"); country = "中国"; }
3、构造代码块
定义在类的成员变量的位置,用来抽取多个构造方法重复的代码,做成员变量的初始化操作,
会优先于构造方法执行
{ /** * 构造代码块 执行顺序在构造方法之前 */ System.out.println("构造代码块"); }
代码块执行顺序:
静态代码块>构造代码块>构造方法
构造代码块和构造方法在类对象创建的时候执行。可以执行很多次
案例:
class StudentBean{ private String name; private int age; static String country; static { /** * 静态代码块 */ System.out.println("静态代码块执行了"); country = "中国"; } { /** * 构造代码块 执行顺序在构造方法之前 */ System.out.println("构造代码块"); } public void show(){ { System.out.println("局部代码块"); } System.out.println("name="+name+"\t age="+age+"\t country="+country); } public StudentBean() { } public StudentBean(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
public static void main(String[] args) { StudentBean s1 = new StudentBean("张三",14); StudentBean s2 = new StudentBean("李四",18); StudentBean s3 = new StudentBean("王五",22); s1.show(); s2.show(); s3.show(); }
运行结果:
标签:name,代码,StudentBean,public,关键字,static,age 来源: https://www.cnblogs.com/xjw12345/p/16379637.html