static也可以进行方法的定义,static方法的主要特点在于可以直接由类名称在没有实例化对象的情况下进行调用。
//定义一个static方法
class Person{ //创建所有同一个国家的类
private String name;
private int age;
private static String country = "中华民国";
public Person(String name,int age){//把值传递给私有变量
this.name = name;
this.age=age;
}
public String getInfo(){//返回信息方法
return "姓名"+this.name+
"、年龄"+this.age+
"、国家"+this.country;
}
public static void steCountry(String c){
country = c;
}
}
public class static练习{
public static void main(String[] args){//实例化对象并输出
Person.steCountry ("中华人民共和国");//调用static方法
Person PerA= new Person("张三",21);
System.out.print(PerA.getInfo());
}
}
这个时候对于程序而言就有了两种:
- static方法
- 非static方法
在调用方面的区别:
- static方法只允许调用static属性或者static方法
- 非static方法允许调用static属性或static方法
所有的static定义的属性和方法都可以在没有实例化对象的前提下使用,而所有的非static方法或属性在实例化对象以后才可以使用。
结论:static定义的方法或者是属性都不是代码编写之初所需要考虑的,只有在回避实例化对象调用并且描述公共属性的情况下才会考虑使用static定义的方法或者属性。