- 区别
- 生命周期不同
- 成员变量随着对象的创建而存在,随着对象的被回收而释放
- 静态变量随着类的加载而存在,随着类的消失而消失
- 调用方式不同
- 成员变量只能被对象调用
- 静态变量可以被对象调用,还可以被类名调用
- 别名不同
- 成员变量也成为实例变量
- 静态变量成为类变量
- 数据存储位置不同
- 成员变量存储在堆内存的对象中,也就是对象的特有数据
- 静态变量存储在方法区(的静态区),所以也叫对象的共享数据
- 在调用时不会有this(即对象调用)
- 生命周期不同
主函数的特殊之处:
1、格式是固定的
2.被jvm所识别和调用的
3.public,因为权限必须是最大的
4.static因为不需要对象的,直接用主函数所属类名调用即可
5.main函数名,不需要关键字
6.String[] args:这是主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型
例代码
package Person;
public class Person {
private int age;
private String name;
static String country = "CN";
Person(){
this.name = "baby";
this.age = 1;
System.out.println("Person run");
}
Person(String name){
this.name = name;
System.out.println("Person(n) run");
}
Person(String name,int age){
this(name);
this.age = age;
System.out.println("Person(n,a) run");
}
public void show(){
System.out.println(Person.country + ":" + name + ":" + age);
}
public static void mathod() {
System.out.println(Person.country);
}
}
class ConsDemo{
public static void main(String[] args){
Person.mathod();
Person p = new Person();
p.show();
}
}