对象与引用
Java中的对象是通过引用对其操作的
有两个实体:一是对象引用变量,一是对象本身
值传递和引用传递
值传递(基本数据类型):方法调用时,实际参数把它的值传递给 对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。
引用传递(引用数据类型):也称为传地址。方法调用时,实际参数是对象,这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。
基本类型传递的是该数据值本身。引用类型传递的是对对象的引用,而不是对象本身
static关键字
static被称为静态,可修饰属性,方法,代码块,内部类
特点:
1.随着类的加载而加载。只有一份,在方法区存储(没有被static修饰的成员变量,属于对象的,使用对象进行访问)
每个对象中的name,age,address值都不一样,所以不需要在类中赋值
所有对象共享共享的数据可以使用static修饰,修饰后只有一份
2.静态特点:优先于对象存在
3.修饰的成员,被所有对象共享
4.可不创建对象,直接被类调用
static可以修饰成员方法,修饰后方法中只能访问静态的成员变量,非静态可以访问静态的
代码块
类似一个没有名称的方法,分为实例代码(非静态,自动执行),静态代码
实例块:每次创建对象时自动调用
静态块:类加载时自动调用,仅一次,与是否创建对象无关
包
为了更好的组织类,Java提供了包机制,用于区别类名的命名空间(地址)
全类名:包名+类的简称
作用:
1.避免类重名
2.按照不同功能管理类
3.控制访问权限
命名规范:可以使用.号来区分包的级别,包名一般情况下是小写
第一级:项目的类型
第二级:项目所开发或者运行的公司名称
第三级: 项目的名称
第四级:项目模块的名称
优点:更好的管理逻辑相关的类,可以控制不同包之间的访问权限
导入外部的类,关键字”import“
访问权限修饰符
public 公共权限,修饰类、方法 在任何位置都可以访问
protected 受保护的,修饰属性、方法 在本类,同包的其他类
(空)默认 修饰类、属性、方法 在本类,同包的其他类
private 私有的 修饰属性、方法 只能在本类中访问
这四种访问权限修饰符也都可以修饰内部类