类与对象
对象根据类创建,在Java中使用关键字new来创建一个新的对象
类,类是一个模板,它描述一类对象的行为和状态
对象:对象是类的一个实例,有状态和行为
类的组成
一个基础的类应该包含以下内容;
成员变量:
实例变量,是对象的特有属性,每个对象都应该具有这些属性,并且每个对象的该属性的值不一定一样。
语法:权限修饰符 数据类型 变量名 = 值;
特点:(1)语法变量是具有默认初始化的,比如int类型的成员变量默认初始化的值为0.
(2)成员变量是具有显式初始化的,比如int a=3;显式初始化由0->3;
(3)成员变量的初始化过程:默认初始化-显式初始化-针对性初始化
成员函数(属性修改器和属性访问器):
实例函数,对象的特有行为
每个对象都应该具有的行为,这个行为每个对象的流程都是一样的
语法格式:权限修饰符 返回值类型 函数名(参数列表){函数体}
当外界执行一个类的时候,外界不仅可以访问对象的属性,同时也可以修改类的属性,尤其是在修改的时候,可能会产生一些业务逻辑的问题,因此一般类的属性建议设置不对外开放。
属性修改器和属性访问器的创建,将外界想要修改对象的属性的权利转换为由对象决定,外界只是提供修改的意见。
//属性的访问器,返回成员变量的属性
public double getX(){return x;}
//属性的修改器,修改成员变量的属性
public void setX(double X){
//对象选择修改与否
if(x>0||x>100){
this.x = 0;
}else{
this.x = x;
}
}
注:(1):函数中的参数 实际上是该函数的局部变量(在函数内部创建的变量)
(2):局部变量与成员变量重名,一般用this关键字进行区分
(3):成员函数是可以重载的
(4):创建成员变量是没有static的
构造函数:
如果对象属性仅仅使用默认值或显式初始化的值,并不能显式出对象之间的差异,而在对象创建之后,对每个对象进行修改值又比较麻烦。构造函数就是让这种问题化繁为简的一种常用方法。
构造函数的作用:针对性初始化
语法格式:权限修饰符 类名(参数列表){函数体 return;}
//类中定义一个构造函数
public Circle(double radius,double center){
this.radius = radius;
this.center = center;
}
//外界在创建对象的过程中修改对象的值
Circle c1 = new Circle(radius:10,center:22);
注:(1):任何一个类,在没有明确定义构造函数的时候,它会有一个默认无参的构造函数,一旦定义任何一个构造函数,那么默认无参构造函数就会消失,建议写出无参构造函数。
(2)构造函数在创建对象的时候执行,并不会在创建对象之后由对象调用
(3)构造函数是可以重载的
(4)构造函数没有返回值类型的,但是并不代表没有return,return仅仅表示函数弹栈/结束
(5)构造函数中可以调用成员函数,但是成员函数不能调用构造函数
(6)构造函数中可以调用构造函数的(不能进行回调)