java 面向对象(二)
static 修饰符
static 介绍
在我们日常生活中,有些事物不属于某一个对象,而是属于整个事物的类型。
比如:全世界人口总数、人的毁灭行为 应该属于人类,不应该属于某一个人。
状态和行为应该有 对象 和 类 之分:
- 有的状态和行为,应该属于某个对象;
- 有的状态和行为,应该属于类型;
通过Static修饰符就能解决这个问题,它修饰的成员就不属于对象,它属于类本身。
它可以修饰字段、方法、内部类。
static 作用
确定修饰的内容是属于类还是属于对象。
static 特点
1、static修饰的内容,是随着类的加载而加载的。
当JVM把class字节码加载到虚拟机当中时,static他修饰的成员会自动的加载到内存当中。(方法区)
2、static修饰的内容,优先于对象的存在。
对象是需要我们手动new出来的,static加载字节码时已经自动加载到JVM了。
3、static修饰的内容,被该类型的所有对象所共享
根据该类创建出来的对象,都可以访问static成员,表面上是通过对象访问,其本质依然是使用类名访问,和对象没有任何关系。
4、static修饰的内容,可以直接使用类名来调用。
因为static修饰的成员属于类,不属于对象。
变量划分
变量
数据类型 变量名 = 值;
1. 成员变量
直接定义在类中的变量
(1)类成员变量:在成员变量前加static,就是类成员变量
(2)实例成员变量: 没加static就是实例成员变量
类成员和实例成员的访问:
- 在static方法中只能调用static成员
- 非static方法,可以访问静态成员,也可以访问非静态成员
注意:在方法当中不能定义static变量
成员变量是有初始值的;不给初始值, 会有默认,可以直接使用。
2. 局部变量
定义在方法或代码块当中的变量(包括参数列表,和内部定的变量)
必须得要初始化之后才能使用
变量的作用域和生命周期
包
什么是包
在开发中,我们存在几百上千个Java文件,如果所有的Java文件都在一个目录中,管理起来也很痛苦,Java可以创建一个类似文件夹的东西,我们称这个文件夹为包。
包的作用
(1)把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
(2)如同文件夹一样,包也采用了树形目录的存储方式,同一个包中的类的名字是不同的,不同的包中的类的名字是可以相同的,但同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
(3)包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
包的语法
package 包名.子包名.子子包名;
必须把该语句作为Java文件中的第一行代码。
包名定义
(1)包名必须遵循标识符规范,全部小写。
(2)企业开发中,包名用公司域名倒写
使用格式: package 域名倒写.模块名.组件名;
类的名称
类的简单名称:直接类名
类的全限定名称:包名.类名
import 语句
当 A 类和 B 类不在同一个包中,若 A 类需要使用到 B 类,此时就得让 A 类去引入 B 类。
属性
属性和字段类似,也是一个成员变量。但是必须要有 getter/setter 方法。
有 getter/setter 方法才是属性,没有就是字段。
一般属性都是私有的,公有的别人可以直接获取和设置值。