Java中static关键字的使用
1.使用static关键字可以直接用类调用,无需创建对象,再使用
public class HelloWorld {
static String name="hello";//创建一个类的静态属性
public static void main(String[] args){
System.out.println(HelloWorld.name);//直接使用静态引用变量,无需创建对象
}
}
运行结果如下:
public class HelloWorld {
static String name="hello";//创建一个类的静态属性
public static void main(String[] args){
HelloWorld hello=new HelloWorld();//创建一个HelloWorld类型的对象
System.out.println(hello.name);//调用hello对象的name属性;
}
}
运行结果如下:
2.静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。
public class HelloWorld {
public static String name="hello";//创建一个类的静态属性
public static void show(){//静态方法(方法类似与C语言中的函数)
System.out.println(name);//可以直接调用静态变量
}
public static void main(String[] args){
new HelloWorld().show();//第一步调用类的构造方法,第二部调用对象的方法
}
运行结果如下:
public class HelloWorld {
public String name="hello";//创建一个类的属性
public static void show(){//静态方法(方法类似与C语言中的函数)
System.out.println(name);//调用类的属性
}
public static void main(String[] args){
new HelloWorld().show();//第一步调用类的构造方法,第二部调用对象的方法
}
}
运行结果如下:
3.如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
public class HelloWorld {
public String name="hello";//创建一个类的属性
public static void show(){//静态方法(方法类似与C语言中的函数)
HelloWorld hello=new HelloWorld();//创建一个HelloWorld对象
System.out.println(hello.name);//调用hello对象的name属性
}
public static void main(String[] args){
new HelloWorld().show();//第一步调用类的构造方法,第二部调用对象的方法
}
}
运行结果如下:
4.使用static关键字的属性是属于类,所以修改会导致类的属性改变,重新创建的对象的属性值也会发生改变。未使用static关键字的属性是属于不属于类
public class HelloWorld {
public static String name="hello";//创建一个类的静态属性
public static void main(String[] args){
HelloWorld hello = new HelloWorld();//创建hello对象
hello.name+="world";//对hello对象的name属性修改
System.out.println(hello.name);//显示name属性值
System.out.println(new HelloWorld().name);//重新创建一个对象,显示新对象的name属性值。
}
}
运行结果如下:
public class HelloWorld {
public String name="hello";//创建一个类的静态属性
public static void main(String[] args){
HelloWorld hello = new HelloWorld();//创建一个hello对象
hello.name+="world";//修改hello对象的name属性值
System.out.println(hello.name);//显示hello对象的属性值
System.out.println(new HelloWorld().name);//重新创建一个对象,显示新对象的name属性值。
}
}
运行结果如下:
5。java中的类只有当类为内部类(类中类)时,才能被static修饰。