This关键字
this关键字代表当前对象
使用this引用成员变量
使用this引用成员方法或构造方法
在编码时,为了区分成员变量和局部变量,可以在编码时使用this关键字进行指示
使用this调用的时成员变量或成员方法,
This在实际运行时,表示当前正在调用此方法的对象
Static 关键字
Static被称为静态 可以修饰成员变量、成员方法、代码块、内部类
类—class –静态代码 只有一份的存在
静态—在内存中只有一份的存在
静态方法在本类的任意方法、代码块、构造器中都可以直接被调用。
静态方法在其他类中可以通过类名。 静态方法的方式调用。也可以通过对象.静态方法的方式调用
static 关键字修饰的方法就是静态方法,属于类,可以通过类名直接进行访问
当方法中不需要使用非静态的成员变量时候,我们可以将方法设计为静态方法,不需要创建对象,直接同各国类名访问
在静态方法中不能使用非静态的成员,因为静态的成员随着类的加载而加载
非静态成员方法中,可以使用静态的成员变量,因为静态变量先加载
Static 修饰后的成员,随着类的加载而加载
先于对象而存在
Static修饰的成员变量在内存中只有一份,适合将所有实例都相同的属性设计为静态
静态的成员可以使类名/对象名调用,一般建议使用类名访问
Static 修饰方法
静态方法只能访问静态的变量,不能访问非静态的变量
在方法中不使用非静态成员变量时。可以将方法设计为静态
类中可以定以:
成员变量(非静态的成员变量属于对象,每个对象中都有一份,
静态的的成员变量属于类,和类一样只有一份)
成员方法(非静态的成员方法,属于对象,可以使用非静态的成员变量和静态的成员变量
静态的成员方法,只能使用静态的成员变量)
构造方法 在创建对象后,为对象成员变量进行初始化,有无参,也可以有有参的
代码块:
定义在类中,类似于一个没有名字的方法,
分为实例代码块
静态代码块
因为代码块没有名字 ,只能在满足条件时,自动有系统调用
实例代码块:每次创建对象时自动调用
静态代码块::类加载时自动调用,仅一次,与是否创建对象无关
/* 类什么时候被加载
通过类名访问类中静态成员时,类会被加载
在一个类中使用main方法,也会加载类
创建对象也会加载类
类只被加载一次
*/
如果有多个实例代码块或多个静态方法,会按照先后顺序执行
实例代码块的加载先于构造方法
包:
为了解决一些类管理的问题,java引入了包机制来解决
包称为类的命名空间(可以理解为一个文件夹)
类名(全类名)= 包名(地址)+类名的简称
Day1.demo2.car
作用:
一个类属于不同的包,就可以避免类名相同的问题
不能一次导入两个名词相同不同包的类
按照不同的功能管理类(web层,service 逻辑处理,dao 数据访问层)
控制访问权限
命名:
在包名中,可以使用.号来区分包的级别,包名单词全部小写
第一级 指该项目的类型,如com,org,gov等
第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei等
第三级 指项目的名称,如:bcms,oa,erp,cms等
第四级 指项目模块的名称,如:bean,action,exception等
在类中,使用其他包中的类时,需要使用import关键字导入类的地址(全类名)
Java.lang 包中的类不需要导入
访问权限修饰符
用来修饰类中的成员,控制是否可以被访问
从大到小
Public:公共权限,在系统中哪里都可以访问
修饰类(包含内部类),方法(构造方法,成员方法),成员变量
Protected:受保护权限,在本类,同包类,不同包 子类中可以访问
修饰内部类 方法(构造方法,成员方法),成员变量
:默认权限 在本类,同包类访问
修饰类(包含内部类),方法(构造方法,成员方法),成员变量
Private:私有权限 只能在本类中使用
修饰类(包含内部类),方法(构造方法,成员方法),成员变量
将成员变量设置为私有权限,在其他类中就不能直接被访问了
在外部没有办法赋值时进行控制
提供公共权限的构造方法,外界可以通过构造方法对私有问题进行赋值
但是需要使用成员变量的值时,就不能获取到