本文详细解释了Java中的this关键字用于类内部引用成员变量,static关键字的使用场景和特点,包括静态变量和静态方法,以及包的概念、命名规范和访问权限修饰符的作用。
this关键字
在一个类的内部可以使用this关键字来引用成员变量名,区分成员变量和局部变量.
this在类中表示当前正在访问的对象
//this在类中用来表示当前正在访问的对象, this.成员变量名--显示的访问当前对象的成员变量 public Person(String name,int age,String gender){ this.name = name; this.age = age; this.gender = gender; }
static关键字
static---静态
可以修饰类中的成员变量,成员方法,代码块,内部类(不能修饰构造方法)
1.修饰成员变量
静态成员变量也称类变量,在内存中只有一份,所有对象可以共享,一般情况下,将类中所有对象都相同的属性设置为静态的。
2.修饰成员方法
修饰的成员方法也称为类方法,可以直接使用类名访问,在静态的方法中只能访问静态的成员变量,非静态的方法中可以使用静态的成员变量。
(静态的方法中不能用this关键字,也不能用super关键字)
注意:
静态的方法中,只能使用静态的成员变量,因为他们都是随着类的加载而加载的;
一旦方法中使用了非静态的成员变量,那么此方法就不能定义为静态的;
但非静态的方法中可以使用静态的成员变量。
static关键字修饰的属性特点:
<1>随着类的加载而加载
<2>优先于对象存在
<3>静态成员被所有对象共享
<4>可以直接使用类名访问
代码块
概念:在类中声明的一个没有名字的代码块
分类:实例代码块:在每次创建对象时执行 { 实例代码块内容 }
静态代码块:在类被加载时自动执行 static { 静态代码块内容 }
类什么时候会被加载?
<1>运行类中的main方法
<2>访问类中的静态成员变量,静态成员方法
<3>创建类的对象
public class Demo1 { //实例代码块 { System.out.println("1-创建对象时,不需要显示的调用,会自动执行"); } //静态代码块 static{ System.out.println("2-在类被加载时,会自动执行"); } //运行类中的main方法,此时类被加载,静态代码块执行 public static void main(String[] args) { //创建对象,实例代码块执行 new Demo1(); } }
包
问题:项目越写越大,用到的类越来越多,会出现同名类,如何安照不同的功能管理类
java中使用包机制来管理类
包的命名规范
在包名中,可以使用.号来区分包的级别,包目前至少三级,包名一般情况用小写表示
第一级 项目类型 如:com org gov edu
第二级 公司名称 如:baidu huawei
第三级 项目名称
第四级 指项目模块的名称
包的作用:
1. 按照不同功能管理类
2. 避免类重名
3. 控制访问权限
访问权限修饰符
(访问权限修饰符可以修饰类,成员变量,成员方法,内部类.)
public :公共权限
protected :受保护权限
什么都不写 :默认权限(default)
private :私有权限
公共权限----------修饰的成员,在任何地方都可以访问到.
受保护权限-------在本类,同包的其他类中可以访问到,不同包的子类.
默认权限----------在本类,同包的其他类中可以访问到.
私有权限----------只能在本类访问到.
( protected和默认(default)的区别就是,protected可以在不同包的子类中访问 )