一、类和对象
1、定义类
类是某一批对象的抽象;对象是一个具体存在的实体;
类的定义的格式:
[修饰符] class 类名
{
零到多个构造器
零到多个属性 //有的地方属性也被称为字段
零到多个方法 //有的地方方法也被称为函数
}
定义属性的格式:
[修饰符] 属性类型 属性名 [=默认值]
定义方法的格式:
[修饰符] 方法返回值类型 方法名(形参列表)
{
//由零到多条可执行性语句组成的方法体
}
定义构造器的格式:
[修饰符] 构造器名(形参列表)
{
//由零到多条可执行性语句组成
}
2、类的产生和使用
定义对象的基本语法:
类名 变量名 = new 类名();
注意:类类型的引用必须指向对象;
如果直接写 new 类名()的话,所产生的对象叫做匿名对象
当我们对对象的方法进行一次调用的时候,可以使用匿名对象;匿名对象可以作为实际参数进行传递。
注意:局部变量存在于栈内存中,成员变量存在于堆内存中。
二、封装
封装的目的:
1、隐藏代码的具体实现。
2、让用户只能通过预先设定的方法来访问数据,因此可以在方法中加入控制逻辑。
3、可以进行数据检查,保证对象信息的完整性。
4、便于修改,提高代码的可维护性。
访问控制符:
private ——>(default)——>protected——>public //default就是什么修饰符都不添加。
——————————————————————>
访问控制级别由大到小
各访问控制级别:
| private | default | protected | public |
同一个类中 | √ | √ | √ | √ |
同一个包中 |
| √ | √ | √ |
子类中 |
|
| √ | √ |
全局范围 |
|
|
| √ |
注意:私有修饰成员,被私有修饰的成员只在本类中有效。
三、构造函数
构造函数是为了给对象进行初始化,或者说是用于创建类的实例。
因此Java类必须有一个或多个构造函数,如果不提供任何构造函数,系统会默认提供一个无参数无执行体的构造函数。
系统默认的构造方法的修饰符与类的修饰符一致。
四、this关键字
this关键字总是指向调用该方法的对象(代表的是所在方法所属对象的引用。哪个对象调用this所在方法,this就代表哪个对象)
当函数内部需要用到本类对象的时候,使用this来表示。
只有构造函数间可以使用this语句来进行相互调用;this语句必须放在构造函数的第一行。
五、static关键字
static用来修饰成员,被static修饰的成员随着程序的加载而加载(即优先于对象存在),static修饰的成员为所用对象共享,可以直接被类名调用。
注意:1、static方法只能直接访问static成员
2、static修饰的方法中不允许使用this和super
3、主函数是静态的
Static 代码块:
基本格式:
static
{
//代码块
}
特点:
1、随着类的加载而加载执行;
2、优先于主函数执行
3、只执行一次
static代码块的作用:可以用来对类进行初始化。