一、什么是类?
1、类是一种抽象的概念。
2、类:是具有相似特征和行为的对象的集合。
二、什么是对象?
1、对象是一种具体概念(也称为实例)。
2、对象的特征:状态(属性)和行为(方法)。
*状态(属性)用来描述对象的静态特征。
-属性通常是采用一个变量的形式来定义的。
例:int age;//定义年龄属性
String name;//定义姓名属性
*行为(方法)用来描述对象的动态特征。
三、类与对象之间是什么关系?
类的实例化就是对象,而对象的抽象就是类,例如:人是一个类,具体哪一个人就是一个对象,每一个对象都符合这个类的标准。一个类的所有对象都有相同的属性(都是人),但是有着不同的属性信息(名字,长相、身高)与行为信息(吃饭,睡觉)。
四、类定义的具体格式(想得到对象,首先得定义类):
[public] [abstract|final] class ClassName{
类体 = 属性+方法
//属性在代码上以“变量”的形式存在(描述状态)
//方法描述动作/行为
}
对定义格式进行说明:
-类的访问修饰符可以是public或缺省(为空)
-public:公共类(可被任何包中类使用)
-若不加public修饰符,该类只能被同一包中的其他类使用。
-abstract:抽象类
-final:最终类
类体中包含:
1.构造方法(用于创建类的实例)
2.成员变量(定义对象的状态)
五、对象的声明与创建:
(1)声明格式:
TypeName objectName;(Employee employee)
TypeName:应用类型名,可以是类名也可以是接口名;
objectName:对象名、引用名、实例名。
-若要声明多个同类型的对象名,可用逗号隔开。
Employee emp1,emp2;
-对象的声明和创建可以使用一个语句完成。
Employee employee = new Employee();
-若对象仅在创建处使用,也可以不声明引用名。
new Employee().sayHello();
(2)对象的使用:
-主要使用点号运算符(.)
-通过对象引用访问对象的成员变量和调用对象的成员方法
(3)对象引用赋值
对于基本数据类型的变量赋值,是将变量的值的一个副本赋给另一个变量。
对于对象的赋值是将对象的引用(地址)赋值给变量。
(4)对象初始化
1、实例变量(成员变量)初始化。
*成员变量的默认值(类的定义中若没有为变量赋初值,编译器会为每个成员变量指定一个默认值),引用类型的变量默认值为null。
*对于方法或代码块中声明的变量,编译器不为其赋初始值,使用之前必须为其赋初值。
变量类型 | 初始值 | 变量类型 | 初始值 |
byte | 0 | float | 0.0F |
short | 0 | double | 0.0D |
int | 0 | boolean | false |
long | 0L | char | \u0000 |
初始化:
(1)在变量声明时初始化
int id = 1001;
(2)使用初始化块初始化
int id;
String name;
{ //这里是初始化块
id = 1001;
name = "李明";
} // 初始化块是在构造方法之前调用的。
(3)使用构造方法初始化
public Student (int id, String name, double marks,boolean pass) {
this.id = id;
this.name = name;
this.marks = marks;
this.pass = pass;
}
(4)初始化次序
1.首先使用默认值或指定的初值初始化
2.接下来执行初始化块
3.最后再执行构造方法
2、静态变量(类变量)初始化。
*静态变量未指定初始值时,编译器也会赋默认值。
*对于static变量不论创建多少对象(甚至没有创建对象时)都只占一份存储空间。
初始化方法:
(1)声明时初始化
(2)使用静态初始化块初始化
public class StaticDemo{
static int x = 100;
static{ //静态初始化块
x = 48;
}
public StaticDemo{
x = 88;
}
//其他代码
}
(3)使用构造方法初始化
(4)初始化顺序
1.用默认值给静态变量赋值,然后执行静态初始化块为static变量赋值。
2.用默认值给实例变量赋值,然后执行初始化块为实例变量赋值。
3.最后使用构造方法初始化静态变量或实例变量