[java][17]static关键字

java小白的学习记录......

1、static可以修饰

属性、方法、代码块

2、static修饰与非static修饰的区别


3、实例

1)Penguin.java代码

public class Penguin {

static String name;//静态成员变量 类变量
int health;//实例变量 普通成员变量
int love;
String sex;
static final String PENGUIN_SEX1="Q仔";//final:常量
static final String PENGUIN_SEX2="Q妹";

        //静态方法

        public static void showPeng(){

System.out.println("静态方法中名称为:"+name+"\n");
}

//静态代码块中只能给static的属性赋值
//代码块作用:给静态属性赋予初始值使用的
//永远都比构造方法先执行一步

static{
name="Lucky";
System.out.println("This is a static代码块");

}

        public void print(){

System.out.println("Penguin name "+this.name+"\nhealth "+health
+"\nlove "+love+"\nsex "+sex+"\n");
}

}


2)Test1.java代码

public class Test1 {
public static void main(String[] args){
//----Penguin.java
Penguin pen=new Penguin();
pen.print(); //(2)

//调用静态的方式1:实例化对象,对象.静态方法(); 对象.静态属性
pen.showPeng(); //(3)
pen.sex=pen.PENGUIN_SEX1;
pen.print(); //(4)

//调用静态的方式2:类名.属性或方法
Penguin.name="QiuQiu";

Penguin.showPeng(); //(5)

                }

}


运行结果,对应Test1.java中标出的(2)~(5):


分析上述5个结果:

(1)第一行:因为静态代码块永远比构造函数先执行,所以先输出静态代码块的内容

(2)静态代码块给pen.name属性赋值为lucky,其他属性为--默认构造函数进行的初始化

(3)执行showPeng()函数

(4)pen.sex属性改变,(4)与(2)区别--sex属性改变

(5)执行showPeng()函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值