static关键字、package关键字、import关键字
static关键字
静态成员变量与成员变量的区别
静态成员变量 | 成员变量 |
---|---|
所属不同 | |
静态属于类,因此也叫类变量 | 成员变量属于对象,因此也叫实例变量或对象变量 |
内存中的位置不同 | |
存储于内存中方法区的静态区 | 存储于堆内存中 |
出现在内存中的时间不同 | |
随着类的加载而加载,随着类的消失而消失 | 随着对象的创建而创建,随着对象的消失而消失 |
调用不同 | |
可以通过对象名调用,也可以通过类名调用 | 成员变量只能通过对象名调用 |
package关键字(打包)
import关键字
有时候我们会遇到我需要的两个java文件在不同包下,可是并不能直接把这两个java文件用在一起,这时候我们就需要import关键字进行导包。
格式:import 包名; |
注:这个包名是具体到类名(如:import org.ccc.code.Sum,后面这个Sum就是你需要的类的名字,当然这个Sum的位置你也可以写 *,这个星号表示导入包里的全部文件,但是不建议这么用) |
代码演示
Sum类package org.ji11.code;//org.ji11.code是多级包名
public class Sum {
public int i=10;
public static int j=100;
public void show(){
System.out.println("我是org.ji11.code包下的Sum类的show方法");
}
public static void show1(){
System.out.println("我是org.ji11.code包下的Sum类的静态show1方法");
}
}
Text类
package org.ji12.code;//org.ji12.code是多级包名
import org.ji11.code.Sum;//导入org.ji11.code包下的Sum类
import static org.ji11.code.Sum.show1;//导入org.ji11.code包下的Sum类的show1静态方法
import static org.ji11.code.Sum.j;//导入org.ji11.code包下的Sum类的j静态变量
public class Text {
public static void main(String[] args) {
Sum s = new Sum();
s.show();
Sum.show1();//通过类名调用静态方法
s.show1();//通过对象调用静态方法
show1();//静态方法可以直接调用
System.out.println(s.i);//Sum.i这句话会出错,成员变量只能用对象名调用,不能用类名调用
System.out.println(Sum.j);//通过类名调用静态变量
System.out.println(s.j);//通过对象名调用静态变量
System.out.println(j);
}
}
结果
我是org.ji11.code包下的Sum类的show方法
我是org.ji11.code包下的Sum类的静态show1方法
我是org.ji11.code包下的Sum类的静态show1方法
我是org.ji11.code包下的Sum类的静态show1方法
10
100
100
100
注:静态方法和变量都需要另外导包