一.this关键字
①this关键字代表
当前对象
②使用this关键字引用
成员变量
③使用this关键字引用
成员方法或构造方法
在一个类的方法或构造方法内部,可以使用“
this.成员变量名
”这样的 格式来引用成员变量名,常常用来区分同名的成员变量和局部变量(局部变量不能使用this)。例如:
public class Demo{
int name;
public Demo(int name){
this.name = name;
}
}
二.static 关键字
•概念
static被称为静态,可以用来修饰类的成员变量,成员方法,代码块,内部类。
静态成员不依赖于类的实例(创建对象),被类的所有实例共享,就是说static修饰的方法或者变量不需要依
赖于对象来进行访问,只要这个类被加载,静态成员就会被加载创建。
•特点
• 随着类的加载而加载
• 优先于对象存在
• 修饰的成员,被所有对象所共享
• 可不创建对象,直接使用类名调用static关键字。
注意:静态成员变量属于类而不是类的实例,因此它们可以直接通过类名来访问,而不需要创建类的实例。
•属性
静态属性是类的所有对象共享的,即不管创建了多少个对象,静态属性在内存中只有一个。
• 静态变量在类被加载时由系统默认初始化。
• 静态变量值是所有对象共享。
• 静态变量可以在任意方法、代码块、构造器中直接使用。
• 可以通过类名.静态变量直接访问,也可以通过对象.静态变量的方式访问(但是更推荐使用类名.静态变量的方式)。如下例:Chinese.country
public class Chinese{
String name ;//姓名
static String country=”中国”;//国家
}
三.static 关键字(静态方法)
• 用static修饰的成员方法就是静态方法。
• 静态方法在本类的任意方法、代码块、构造器中都可以直接被调用。
• 静态方法在其他类中可以通过类名.静态方法的方式调用。也可以通过对象.静态方法的方式调用(但是更推荐使用类名.静态方法的方式)。
• 在static方法内部只能访问类的static修饰的属性或方法,不能访问类的非static的成员。(方法内部只能是静态变量,不能是成员变量)
• 因为不需要实例就可以访问static方法,因此static方法内部不能有this,也不能有super。
四.代码块
• 代码块在类中声明,类似一个没有名称的方法体(代码块),代码分实例块和静态块实例块:每次创建对象时自动调用
{
//任何符合语法的Java代码
}
静态块:类加载时自动调用,仅一次,与是否创建对象无关,用static修饰。
static {
//任何符合语法的Java代码
}
五.包
• 在编写 Java 程序时,随着程序架构越来越大,类的个数也越来越多,这时就会 发现管理程序中维护类名称也是一件很麻烦的事,尤其是一些同名问题的发生。 有时,开发人员还可能需要将处
理同一方面的问题的类放在同一个目录下,以便于管理。
• 为了解决上述问题,Java 引入了包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突、类管理等问题。
•概念
包(Package)是用于组织类和接口的命名空间。
•解决方案
1)使用package关键字修饰包
2) 每个类属于一个特定的包,所以java中一个类的完整名称等于包名+类名
•包的作用
1)按照不同功能管理类
2)避免类重名
3)控制访问权限
•包(package)的命名规范
在包名中,可以使用.号来区分包的级别;包名一般情况下是小写
第一级 指该项目的类型,如com,org,gov等
第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei等
第三级 指项目的名称,如:bcms,oa,erp,cms等
第四级 指项目模块的名称,如:bean,action,exception等
•导入外部包的类
关键字“import”
当在一个类中使用其他包中的类时,需要先使用import关键字导入进来. 只有java.lang包中的类比较特殊,使用时不需要导入.
六.访问权限修饰符
1)public
2)protected
3)(default)
4)private
• Java语言有四个权限访问修饰符,权限从大到小依次为:
1)public :公共权限 修饰类、属性、方法。可以在任意类中访问
2)protected:受保护的权限 修饰属性、方法。可以在同包类访问,如果 不是同包类,必须是该类的子类才可以访问。
3)default:同包权限 修饰类、属性、方法。只能在同包的类访问
4)private:私有权限 修饰属性、方法。 只能在本类中访问