java修改类的静态变量_Java中的static关键字和静态变量、静
态⽅法
作者: Java进阶者 来源:Java进阶学习交流
⼀、static关键字
使⽤static修饰的变量和⽅法分别称为类变量(或称静态变量)和类⽅法(或称静态⽅法),没有使⽤static修饰的变量和⽅法分别称为实例变量和实例⽅法。
⼆、静态变量
1.什么是静态变量
使⽤static关键字修饰成员变量,这个变量叫做静态变量。
2.例如多个圆形对象,那每个圆形对象都有⾃⼰的半径(radius)和圆周率(PI),因为圆周率是⼀个固定的常数
3.141596,不⽤每个圆形对象各⾃拥有。圆周率(PI)作为共享的,每个圆形对象的半径可能是不⼀样的。
3.如何使⽤静态变量
例如:
/
/圆形类
public class Ball {
public double radius;//圆的半径
static double PI=3.141956;//圆周率
public static void main(String[] args) {
// TODO Auto-generated method stub
Ball b1=new Ball();//创建第⼀个圆形对象
Ball b2=new Ball();//创建第⼆个圆形对象
Ball.PI=3.141596;//静态变量赋值
b1.radius=5;//给第⼀个圆形的半径赋值
b2.radius=8;//给第⼀个圆形的半径赋值
System.out.println("第⼀个圆形对象的圆周率:"+b1.PI+" "+"半径为:"+b1.radius);//打印第⼀个圆形的圆周率和半径
System.out.println("第⼆个圆形对象的圆周率:"+b2.PI+" "+"半径为:"+b2.radius);//打印第⼆个圆形的圆周率和半径
}
}
输出的结果是:
第⼀个圆形对象的圆周率:3.141956 半径为:5.0
第⼆个圆形对象的圆周率:3.141956 半径为:8.0
上⾯的代码中,在Ball类中定义了⼀个静态变量PI,⽤来表⽰圆周率它是作为所有实例的所共享,因为这个圆周率(PI)是静态变量可以直接使⽤Ball.PI的⽅式调⽤,也可以使⽤实例化对象调⽤,b1.PI。第⼀个圆形对象和第⼆个圆形对象的PI属性均为3.141596。
三、静态⽅法
1.什么是静态⽅法
静态变量和⽅法可以在不创建对象的情况下进⾏访问。静态⽅法在类的定义⽅法前⾯加static就叫做静态⽅法。
2.静态⽅法的访问格式同静态变量⼀样
类名.⽅法名
3.怎么使⽤静态⽅法
public class Ball01 {
public double radius;//圆的半径
public static double PI=3.141596;//圆周率
//⾓度转径度
public static double toRadius(double angdeg){
return angdeg*(Ball01.PI/180);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//Ball01 b1=new Ball01();//创建⼀个圆的对象
System.out.Radius(100));//调⽤对象的静态⽅法
}
}
输出的结果是:
1.745331111111111
在上⾯代码中,在Ball01类定义了⼀个静态的⽅法toRadius()⾓度转径度,通过对象实例化调⽤对象的静态⽅法。⼀个静态⽅法只能访问static修饰的成员,因为没有被static修饰的成员⾸先需要创建对象才能访问,⽽在静态⽅法调⽤可以不⽤创建对象。
四、静态代码块
1.什么是静态代码块
静态代码块是使⽤⼀个⼤括号{}包围很多⾏的代码,并⽤static关键字修饰的代码。
2.随着类的加载⽽执⾏,⽽且只执⾏⼀次。⼀般是使⽤静态代码块来对类成员变量进⾏初始化。
3.静态代码块和⾮静态代码块的写法
静态代码块:
静态代码块:
static{
}
⾮静态代码块:
{
}
4.怎么使⽤静态代码块
例如:
class Person3{
static String name;
//静态代码块
static{
name="李华";
System.out.println("Person3类的静态代码执⾏...");
}
}
public class test {
//静态代码块
static{
System.out.println("测试类的静态代码执⾏...");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Person3 p1=new Person3();//创建第⼀个Person3对象
Person3 p2=new Person3();//创建第⼆个Person3对象
}
}
运⾏的结果是:
测试类的静态代码执⾏...
Person3类的静态代码执⾏...
我们从运⾏的结果可以看出,两个静态代码块都被执⾏。⾸先是加载类test,在加载类的同时加载静态代码块,然后执⾏主程序main()。在main⽅法中创建两个Person3对象,两次实例化对象后,静态代码只执⾏⼀次,就说明了随着类的加载⽽执⾏,⽽且只执⾏⼀次。
五、总结
本⽂主要介绍了static关键字、静态变量、静态⽅法、静态代码块。
使⽤static修饰的变量和⽅法分别称为类变量和类⽅法,没有使⽤static修饰的变量和⽅法分别称为实例变量和实例⽅法。
静态变量是使⽤static关键字修饰成员变量,如何使⽤静态变量案例理解这个⽤法。静态⽅法是在类的定义⽅法前⾯加static,通过⼀个怎么去使⽤静态⽅法案例帮助理解。
静态代码块是使⽤⼀个⼤括号{}包围很多⾏的代码,并⽤static关键字修饰的代码。希望通过本⽂的学习,对你有所帮助!
static修饰的变量
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论