一、static 关键字
1、static关键字可以修饰成员变量和成员方法
2、特点:
- 随着类的加载而加载
- 优先于对象存在
- 被类的所有对象共享
- 可以通过类名调用
class Person{
int num1 = 10;//普通变量
static int num2 = 20;//静态变量
}
public class PersonDemo{
public static void main(String[] args){
Person p = new Person(); //初始化对象
System.out.println(p.num1);//输出10
//System.out.println(Person.num1);//会报错:不能引用非静态变量
System.out.println(Person.num2);//随类的加载而加载,输出20
System.out.println(p.num2);//输出20
}
}
3、注意:
- 在静态方法中是没有 this 关键字的
- 静态方法只能访问静态的成员变量和静态的成员方法
4、创建 Test.java 文件
public class Person{
String name;
static String contry;
public static void main(String[] args){
Person p1 = new Person();
p1.name = "";
p1.contry = "日本";
System.out.println(p1.name+"是"+p1.contry+"人"); //输出:小是日本人
Person p2 = new Person();
p2.name = "lemon";
Person.contry = "美国";//通过类名调用
System.out.println(p2.name+"是"+p1.contry+"人");//输出:lemon是美国人
Person p3 = new Person();
p3.name = "姚明";
Person.contry = "中国"; //通过类名调用
System.out.println(p3.name+"是"+p3.contry+"人");//输出:姚明是中国人
System.out.println(p2.name+"是"+p2.contry+"人");//输出:lemon是中国人
System.out.println(p1.contry);//输出:中国
}
}
二、main方法
public static void main(String[] args){
//方法体
}
1、使用 main() 方法应注意:
- 访问控制权限是公有的(public)
- main() 方法是程序的入口
- String[] args 是一个字符串数组,早期是为了键盘录入数据的
- main() 方法是静态的。如果要在 main() 方法中调用本类中的其他方法,则该方法也必须是静态的,否则需要先创建本类的实例对象,然后再通过对象调用成员方法
- main() 方法没有返回值,只能使用 void
- main() 方法具有一个字符串数组参数,用来接收执行 Java 程序的命令行参数。命令行参数作为字符串,按照顺序依次对应字符串数组中的元素
- 除了形参变量名可以任意设置以外,main() 方法中的其他内容都是固定不变的
2、在 main() 方法中调用静态方法和非静态方法
class PersonDemo{
public void play(){ //公共的非静态方法
System.out.println("我们去玩吧");
}
public static void book(){ //公共的静态方法
System.out.println("我们一起看出吧");
}
public static void main(String[] args){
//play();//不可以直接调用非静态方法
book();//可以直接调用静态方法
PersonDemo p = new PersonDemo();//实例化对象
p.play();//调用非静态方法,通过类的实例化来调用
}
}
3、创建 MainTest.java 文件,编写代码实现程序执行时统计传递参数的数量及每个参数值。
public class MainTest{
public static void main(String[] args){
int n = args.length;//获取参数数量
System.out.println("一共有"+n+"个参数");
if (n > 0){//判断参数个数大于0
for (int i = 0; i < n; i++){
System.out.println(args[i]);//循环输出每个参数的值
}
}
}
}
运行 cmd ,执行上面的程序: