经过一段时间的学习,我也终于来到了Java语言的核心篇,也就是对象与类的学习,今天想要和大家分享的是关于类的小知识点。
1.类的声明:
类可以看成创建Java对象的模板。类亦可以理解成Java一种新的数据类型,这种数据类型中封装了数据的内容和对象数据内容的操作。
类的基本定义方法如下:
[ 修饰符 ] class 类名 [ extends 父类 ] [ implements 接口名 ]
{
类成员变量声明 //类属性
类方法声明
}
1.类头部
修饰符:类的修饰符说明了类的属性,分为访问控制符、抽象类说明符和最终类说明符三种,格式如下:
[public | protected | private ] [ static ] [final | abstract]
访问控制符:public、private和protected.
抽象类说明符:abstract
最终类说明符:final
类修饰符应用示例如下:
public class Employe {...} //public级别
class Employee{...} //默认访问级别
static : 一般类是不允许声明为静态的,只有内部类(类中定义的类)才可以。
class 关键字:类的修饰符后面的class标志一个类定义的开始,类名由编程者定义。
类名:类名指的是具体创建的类的名字,赢遵循Java命名方式。
extends关键字:关键字后面为类的父类的名字,用来说明当前类是哪个已经存在类的子类,存在继承关系。
implements 关键字:关键字后面为类所实现的接口列表,用来说明当前类中实现了哪个接口定义的功能和方法。
2.成员变量的声明(类的属性)
[ 修饰符 ] 数据类型 变量名 ;
修饰符格式如下:
[public | protected | private ] [ static ] [final | abstract]
public:表示该变量可以被所有其他类引用。
private:表示该变量仅可被该类自身引用和修改,不能被其他任何类(包括子类)。
protected:表示该变量可由该类自身、子类、同一包中的其他类引用。
default:没有指定public、private、protected的情况下,表示该变量可由该类自身同一包中的其他类引用。
static:表明是类成员变量,该变量是对所有的实例对象一致,引用时前缀可使用类名或者对象名。
final:数值不变常量。定义同时应对其进行初始化。
数据类型:根据存储数据类型,可以是任何Java的有效数据类型,
变量名:定义变量必需的名字,用于标识该变量。
例如,在Employee中声明的类的属性:
private int employeeNo; //职员编号
private int employeeName; //职员姓名
3.成员方法的声明
类的方法也称为类的成员函数,用来规定类属性上的操作,实现类对外界提供的服务,也实现了类间的消息响应。方法包括:方法声明和方法体,
[ 修饰符 ] 返回值类型 方法名 (参数列表) throw 异常1{
局部变量声明;
语句序列;
}
修饰符:与类中属性的声明一致包括[public | protected | private ] [ static ] [final | abstract]等修饰符
返回值类型:是方法返回值的数据类型
方法名:方法名是动词-名字的组合,应该遵循Java命名规律
参数列表:传递给方法的一组信息,它被明确地写在方法名后面的括号内。
下面的代码显示了Employee类中方法的定义:
class Employee{
... //省略
public void setEmployeeSalary(double salary){ //设置职员的薪水
employeeSalary = salary;
}
public String toString(){ //输出职员的基本信息
String s;
s = "编号:"+employeeNo+"名字:"+employeeName+"工资:"++employeeSalart;
return s;
}
}
下面通过一个简单的类来理解Java中类的定义:
public class Dog{
public String breed;
private int age;
public String color;
public void barking(){}
public void hungry(){}
public void sleeping(){}
}
一个类可以包含一下类型变量:
局部变量:在方法、构造方法或者语句块中定义的变量会被成为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中的 方法、构造方法和特定类的语句块访问。
类成员变量:类成员变量也声明在类中,方法体之外,但必须声明为static类型。