类是既包括数据,又包括对数据的操作的封装体。类中的数据被称为成员变量,类中对数据的操作称为成员方法。

成员变量是反映类的状态和特征,成员方法是表示类的行为能力,不同类具有不同的特征和功能。

类的声明

类声明格式:

[修饰符] class 类名 <泛型>[父类][implements 接口列表]

{成员变量声明;

成员方法声明;

}

其中:

1、修饰符是定义类属性的关键字;

2、class是定义类的关键字,类的声明中必须包括class;

3、泛型是指将类型参数化以提高工作效率的一种数据类型,也可以理解为一种类型占位符;

4、extends是关键字,用于继承类;

5、implements是关键字,用于实现接口。

类的成员变量和成员方法

成员变量

格式:

[修饰符] 数据类型 变量名 [=表达式]{,变量=表达式};

其中:
1、修饰符是定义成员变量属性的关键字;

2、数据类型可以是基本数据类型,也可以是引用数据类型;

3、变量名是合法的Java标识符,表达式是合法的Java表达式;

成员方法

格式:

[修饰符] 返回类型 方法名 ([参数列表])[throws 异常类]
{
	语句序列;
	return 返回值;
}

其中:

1、修饰符是定义方法属性的关键字;

2、返回类型可以说基本数据类型或者引用数据类型,如果是void,return语句可以省略;

3、语句序列可包括局部变量声明和合法java指令;

变量的作用域

1、类成员变量:在类中方法体之外定义的变量,自动赋默认值。其作用域是整个类,类中所有变量均可以访问成员变量;

2、局部变量:在方法体中声明的变量,必须手动赋予其默认值。其作用域是从定义位置到方法体语句结束,当方法调用返回时,局部变量失效;

3、方法参数变量:方法的参数列表。其作用域是方法体的整个区域;

4、异常处理参数变量:异常对象,在异常处理内生效。

对象

对象是类的实例,任何一个对象都属于类,需要先声明后使用。对象是动态的,有自己的生存周期。

对象声明

格式:

类 对象;
例如:
Student s;

对象声明后,需进行赋值,才能使对象获得实例。

创建实例

格式:

对象=new 类的构造方法([参数列表]);
s=new Student(123456,"男","张",19);

对象引用变量和调用方法

格式:

对象.成员变量;
对象.成员方法([参数列表]);
s.name="张三";//对象引用成员变量
s.setName("李四");//对象调用成员方法

对象是引用类型

当对象和类都是引用数据类型时,对象之间的赋值是引用赋值。

对象的运算

使用关系运算符==和!=可以比较两个对象是否引用同一个实例。不能用<、<=、>=关系运算符比较对象。

如:

s==s1;//结果为ture

类的封装性

封装是将数据以及对数据的操作组合起来构成类,类是一个不可分割的独立单位;类中提供与外界联系的方法,又尽可能的隐藏类的实现细节。

构造方法声明

格式:

public class 类名
{
public 构造方法名([参数列表]){
    //构造方法定义语句
}
}

构造方法重载

java中允许一个类中有同名的方法带有不同的参数列表,成为方法的重载。

如果一个java类中有两个以上的构造方法,但是参数列表不同,这种方法称为构造方法的重载。在方法调用时,可以根据参数列表的不同来辨别应该调用哪一个构造方法。

成员方法的定义

类成员方法定义格式如下:

修饰符[] 返回类型 方法 ([参数列表])[throws 异常类]{
语句序列;
return 返回值;
}

成员方法的重载

一个类中可以有多个同名的方法,但这些成员方法的参数(个数or类型)必须不同。

构造方法和成员方法的区别

1、作用不同

2、调用方式不同

访问权限

1、public:说明该类成员可被所有类对象访问。

2、protected:能被同一类中的其他成员、该类的子类成员或同一包中的其他类成员访问,不能被其他包的非子类成员访问。

3、缺省:当没有使用访问权限修饰符声明成员时,其能被同一类中的其他成员访问或被同一包中的其他类访问。

4、private:只能被同一类中的其他成员访问。

类的访问权限只有:public 和 缺省。