Java面向对象
面向对象分为面向过程(过程式),面向对象(对象式:万事万物皆为对象)
编写面向对象的代码的时候,本质上对象完成的功能还是按照面向过程去编写的,面向对象和面向过程不是对立的。
对象和类
-
类:广义上来说,具有共同性质的事物的集合就称为类(class)。
类中:标识符 class 类名{
成员变量;
构造器(){
}
成员方法(){
}
}
-
对象:是类的实例化后的产物。
对象的特征分为静态特征和动态特征两种。
类和对象的关系
类是对于对象的抽象,抽取对象的部分,是一个模板,由此可以产生N个对象。new
对象是类的具象化表现形式,具体之后的产物,每个对象都是通过类产生的一个唯一的、独立的个体。
构建时:先有对象才有类
实现时:先有类才有对象
类的声明与定义
[标识符]class 类名称
{
//类的成员变量
//类的方法
}
标识(修饰)符\可见性 | 本类 | 同包子类 | 同包异类 | 异包子类 | 异包异类 |
---|---|---|---|---|---|
public | √ | √ | √ | √ | √ |
protected | √ | √ | √ | √ | × |
default | √ | √ | √ | × | × |
private | √ | × | × | × | × |
变量分为成员变量(声明在类中方法外的变量)和局部变量(声明在方法中或者代码块中的变量)。
成员变量无需初始化,为自动给一个默认值。
声明在类中方法外。
-
所有的整数:byte、short、int、long 初始值 0
-
所有小数:double float 初始值 0.0
-
Boolean: true / false 初始值 false
-
char: 字符型 初始值 ‘ ’ 空格
-
应用类型:例如:String Scanner …… 初始值 null
局部变量:
-
声明在方法中或者是代码块中的变量
-
局部变量想要使用必须保证先赋值(声明和初始化在一起)
-
局部变量的生命周期在当前声明之后到整个声明的代码块结束的位置结束
创建对象的模板:
类名 变量名= new 类名();
自己创建的类就是创建了一个新的数据类型,这个新的类型是引用类型。
new做了三件事:
-
开空间(堆)
-
初始化(成员变量)
-
指向引用(将堆的地址赋值给变量存放)
构造器
构造器的作用是通过new关键词调用之后,产生当前类的实例的方法。
规定:
-
方法名称和类的名字一致
-
没有返回值
-
没有返回语句
-
每个类会默认存在一个空参数的构造器,当当前类中存在其他任意构造器时,系统默认增加的空构造器就不存在了。