类
类是既包括数据,又包括对数据的操作的封装体。类中的数据被称为成员变量,类中对数据的操作称为成员方法。
成员变量是反映类的状态和特征,成员方法是表示类的行为能力,不同类具有不同的特征和功能。
类的声明
类声明格式:
[修饰符] 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 和 缺省。