java不同于C语言的面向过程开发,而是面向对象开发。在java中世界万物皆为对象,一切看得见摸得着的东西都是对象,所以java开发的过程就是在把现实事物抽象成对象的过程。对象由属性和行为构成:属性用于描述对象的特征,每一个对象的属性值不同;行为称为对象的方法,表示该对象具有哪些实现功能。要想拥有对象,就必须先有类,因为类是对象的模板。现实大量的对象---->抽象相同的特殊和行为---->封装成类----->创建java中的对象。例如:现实中大量学员---->每个学员都有学号,姓名,学习,喊到---->封装成学员类----->创建java中的每一个学员对象。综上所述类的作用是用来定义对象的属性和行为。

  代码:public class Student {

private int sid;//学号

String name;//姓名

public void checkin(){

System.out.println("学员"+name+"签到成功!叮叮叮叮叮叮!");

}

}

  讲了类和对象的关系,再说说如何创建对象,创建对象一般使用关键字new,new关键字的实例化的过程就是在内存中开辟空间的过程。使用new关键字创建的对象都放在堆内存中。内存图如下:

Java基础干货分享(四)_面向对象

可见s1和s2两个对象名其实两个引用,指向堆内存的首地址,在堆内存中实例化,存储具体的数据对象,而不是在变量本身。

  如果在本类中要区别调用本类的方法和属性,需要使用关键字this,this是指当前对象自己。当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。this关键字其实也是引用,它是一个在实例内部的引用,它在每个实例内部都有一个。内存图如下:

Java基础干货分享(四)_封装_02

  最后在简单总结一下面向对象(OOP)编程的三大特征在java中的体现和使用。面向对象语言的三大特性:封装、继承、多态。封装其实就是对类的属性和特定方法使用private修饰,其目的即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,需要了解修饰符的作用域范围(文本最后附上)。继承就是使用extends关键字继承某个类使其成为被继承类的子类,减少代码的冗余,以方便实现代码的复用,提高开发效率。继承关系中成员的初始化顺序:父类成员->父类构造函数->子类成员->子类构造函数。(注意:在java继承关系中直接继承只有单继承关系,也就是说一个子类只能继承自一个父类,并且所有类都默认继承Object类)。多态是指同一类事物,在不同的子类,同一种行为,不同的表现形式。多态是面向对象特征中的核心,多态的作用:程序的可扩展性高,利于维护,提高代码的通用性。

  不同访问修饰符的作用域:

修饰符

同一类中

同一包中

子类中

全局

private

可以

不可以

不可以

不可以

default

可以

可以

不可以

不可以

protected

可以

可以

可以

不可以

public

可以

可以

可以

可以