java什么时候用静态 java静态类在什么时候使用
大家好,关于java什么时候用静态很多朋友都还不太明白,今天小编就来为大家分享关于java静态类在什么时候使用的知识,希望对各位有所帮助!
java里静态方法在什么情况下使用,好处是什么
转:
静态方法和实例方法的区别主要体现在两个方面:
在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。
静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。
下面几个例子展示了这一区别。
1、调用静态方法示例。
//-----------文件名hasStaticMethod.java,程序编号1-----------------public class hasStaticMethod{//定义一个静态方法public static void callMe(){System.out.println("This is a static method.");}}
下面这个程序使用两种形式来调用静态方法。
//-----------文件名invokeStaticMethod.java,2-----------------public class invokeStaticMethod{public static void main(String args[]){hasStaticMethod.callMe();//不创建对象,直接调用静态方法 hasStaticMethod oa= new hasStaticMethod();//创建一个对象oa.callMe();//利用对象来调用静态方法}}
程序3.36两次调用静态方法,都是允许的,程序的输出如下:
This is a static method.This is a static method.
允许不创建对象而调用静态方法,是Java为了减少程序员调用某些常用方法时的麻烦,而允许程序员按照传统的C语言中使用函数的方式来使用方法。典型的例子是前面某些程序中使用"Math.ramdon()"来获取随机数。
2、静态方法访问成员变量示例。
//-----------文件名accessMember.java,程序编号3.37-----------------class accessMember{private static int sa;//定义一个静态成员变量private int ia;//定义一个实例成员变量//下面定义一个静态方法static void statMethod(){int i= 0;//正确,可以有自己的局部变量sa= 10;//正确,静态方法可以使用静态变量otherStat();//正确,可以调用静态方法ia= 20;//错误,不能使用实例变量insMethod();//错误,不能调用实例方法}static void otherStat(){}//下面定义一个实例方法 void insMethod(){int i= 0;//正确,可以有自己的局部变量sa= 15;//正确,可以使用静态变量ia= 30;//正确,可以使用实例变量statMethod();//正确,可以调用静态方法}}
本例其实可以概括成一句话:静态方法只能访问静态成员,实例方法可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。同样,因为实例方法可以访问实例成员变量,如果允许静态方法调用实例方法,将间接地允许它使用实例成员变量,所以它也不能调用实例方法。基于同样的道理,静态方法中也不能使用关键字this。
main()方法是一个典型的静态方法,它同样遵循一般静态方法的规则,所以它可以由系统在创建对象之前就调用。
java中什么时候用静态 ,好处是什么
/*
static(静态\修饰符)
1.static修饰成员变量:如果有数据需要被共享给所有对象使用时,那么就可以使用static修饰。
静态成员变量的访问方式:
方式1:可以使用对象进行访问。
格式:对象.变量名。
方式二:可以使用类名进行访问。
格式:类名.变量名;
注意:
1.非静态的成员变量只能使用对象进行访问,不能使用类名进行访问。
2.千万不要为了方便访问数据而使用static修饰成员变量,只有成员变量的数据是真正需要被共享的时候
才使用static修饰。
static修饰成员变量的应用场景:如果一个数据需要被所有对象共享使用的时候,这时候即可好实用static修饰。
2.static修饰成员函数:
*/
classStudent{
static Stringname;//非静态成员变量
static Stringcountry="中国";//静态的成员变量
publicStudent(Stringname){
this.name=name;
}
}
classDemo10{
publicstaticvoidmain(String[]args)
{
Students1=newStudent("狗娃");
Students2=newStudent("狗剩");
//System.out.println("国籍:"+Student.country);
System.out.println("名字:"+s1.name);
System.out.println("名字:"+s2.name);
}
}
java中,什么时候要用到静态语句块,它有何作用呢
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的.静态方法在类加载的时候就已经加载可以用类名直接调用
比如main方法就必须是静态的这是程序入口
两者的区别就是:静态代码块是自动执行的;
静态方法是被调用的时候才执行的.
静态方法
(1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是静态方法。要实现这样的效果,只需要在类中定义的方法前加上static关键字。例如:
public static int maximum(int n1,int n2)
使用类的静态方法时,注意:
a在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象。
b静态方法不能以任何方式引用this和super关键字,因为静态方法在使用前不用创建任何实例对象,当静态方法调用时,this所引用的对象根本没有产生。
(2)静态变量是属于整个类的变量而不是属于某个对象的。注意不能把任何方法体内的变量声明为静态,例如:
fun()
{
static int i=0;//非法。
}
(3)一个类可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化。例如:
static
{
}
java静态类在什么时候使用
/*
static(静态\修饰符)
1. static修饰成员变量:如果有数据需要被共享给所有对象使用时,那么就可以使用static修饰。
静态成员变量的访问方式:
方式1:可以使用对象进行访问。
格式:对象.变量名。
方式二:可以使用类名进行访问。
格式:类名.变量名;
注意:
1.非静态的成员变量只能使用对象进行访问,不能使用类名进行访问。
2.千万不要为了方便访问数据而使用static修饰成员变量,只有成员变量的数据是真正需要被共享的时候
才使用static修饰。
static修饰成员变量的应用场景:如果一个数据需要被所有对象共享使用的时候,这时候即可好实用static修饰。
2. static修饰成员函数:
*/
class Student{
static String name;//非静态成员变量
static String country="中国";//静态的成员变量
public Student(String name){
this.name= name;
}
}
class Demo10{
public static void main(String[] args)
{
Student s1= new Student("狗娃");
Student s2= new Student("狗剩");
//System.out.println("国籍:"+ Student.country);
System.out.println("名字:"+ s1.name);
System.out.println("名字:"+ s2.name);
}
}
java什么时候用静态的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java静态类在什么时候使用、java什么时候用静态的信息别忘了在本站进行查找哦。