this关键字
public class User{
int id;
String name;
String pwd;
public User(int id,Stirng name){
this.id=id;
this.name=name;
}
public User(int id,String name,String pwd){
this(id,name);
this.pwd=pwd;
}
}
static关键字
在类中,用static声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。它有如下特点:
- 为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显示初始化。
- 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享。
- 一般用“类名.类属性/方法”来调用。(也可以通过对象引用或类名(不需要实例化)访问静态成员)。
- static方法中不能放非static的属性和方法。普通方法可以用this,static方法不可以用this。
packge
(一个包里面可以包含很多个类)使用包主要是为了解决两个问题
- 类同名
- 类管理
通过package实现对类的管理,package的使用有两个要点
- 通常是类的第一句非注释性语句。
- 包名:域名倒着写即可,再加上模块名,便于内部管理类。
例如:
com.sun.test;
com.oracle.test;
cn.sxt.gao.test;
cn.sxt.gao.view;
cn.sxt.gao.view.moel;
cn.sxt.gao.view和cn.sxt.gao.view.moel,这两个包没有包含的关系,是两个完全独立的包,只是逻辑上看起来后者是前者的一部分。
如下图,com.bjsxt.test和com.bjsxt.test2是两个不同的包,它们两个下面分别能够存在许多个类。
import导入
import 包名.类名;(制定导入哪个包里面的哪个类)或import 包名.*(导入该包下所有的类)
如果我们要使用其他包的类,需要使用import导入,从而可以在本类中直接通过类名来调用,否则就需要书写类的完整包名和类名。import后,便于编写代码,提高可维护性。
如下图,不使用import在com.bjxst.test包里面的test1类里面创建User类(位于com.bjsxt.test2包里面)对象,并用User类的对象u调用User类里面的login方法。
如下图,使用import导入后,调用不同包里面的类。
如果不同包存在同名类,当调用这个类时,最好的办法是写出完整路径去调用。
static import(静态导入)
静态导入的作用是导入指定类的静态属性和静态方法,这样我们可以直接使用静态属性和静态方法。
例如:
在com.bjsxt.test2包里面创建student类,并在类里面声明了一个静态属性
然后我需要在com.bjsxt.test包里面的test1调用此静态属性,那么可以在这个类里面使用如下代码