java修饰静态_Java-static修饰符及静态代码块

在java面向对象设计的类中,经常使用到static修饰符修饰变量,现在来看看static修饰符作用和特点

一:static修饰的变量可以直接通过类名.的方式直接调用

public class static_about {

public static void main(String[] args) {

Student student1 = new Student();

Student student2 = new Student();

student1.room="101";

System.out.println(student1.room);//输出101

System.out.println(student1.room);//输出101

student1.method();//输出成员方法

Student.methodstatic();//输出静态方法

}

}

class Student{

private String name;

private int age;

static String room;

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 Student(){

}

public Student(String name, int age) {

this.name = name;

this.age = age;

}

public void method(){

System.out.println("成员方法");

}

public static void methodstatic(){

System.out.println("静态方法");

}

}

在上述代码中,Student类当中,有三个属性,但是room这个属性和methodstatic这个方法被static修饰了 ,所以此时 room这个成员变量就成了静态变量,methodstatic也就成了静态方法,且无论是静态方法还是静态变量都需要new出对象可以直接通过类名.的方式调用,且当我们通过对象调用静态方法其实再javac中还是通过类名.静态变量的方式去获取,所以和对象是无关的。由于这个原因,静态方法中也就不能使用this关键词(this代表的是当前调用的对象,但是静态方法是和对象无关,所以不能使用this关键词)

二:静态方法访问不了非静态变量

private String name;

private int age;

static String room;

public String getName() {

return name;

}

public void method(){

System.out.println("成员方法");

}

public static void methodstatic(){

System.out.println(age);//此时报错

System.out.println("静态方法");

}

在java内存当中,会先加载静态变量,再加载非静态变量,所以内存先加载了静态方法,但是非静态变量此时还没加载到内存当中,所以程序报错:Error:无法从静态上下文获取非静态变量age

三:静态代码块

51966e9c4834e5b4cf10e760496f8374.png

在上述类中,加入了static修饰的代码块,也就是静态代码块,静态代码块,可以看出静态代码块有两个特点:

1.比非静态变量先执行(在method方法后面但是先输出)

2.在本类中只执行一次(两次new对象只打印了一次)

标签:Java,name,静态,age,修饰符,static,静态方法,public

来源: https://www.cnblogs.com/bai-boy/p/12175947.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值