美文网首页
课程学习-第八章 面向对象

课程学习-第八章 面向对象

作者: 爱叫啥叫啥去 | 来源:发表于2020-09-20 11:47 被阅读0次

    三大特征:

    封装

    继承

    多态

    类和对象的概念:

    java语言中,想得到“对象”,必须先定义“类”,对象是通过类这个模板创造出来的。类就是一个模板,类中描述的是所有对象的“共同特征信息”。对象就是通过类创建出的个体。

    java中所有的类都是引用数据类型

    创建对象对应的JVM内存图

    像这种s1变量,保存了对象内存地址的变量,有一个特殊的名字:引用

    10、对象和引用的区别?

    对象是通过new出来的,在堆内存中存储;

    引用是,但凡是变量,并且该变量中保存了内存地址指向了堆内存当中的对象的。

    引用一定是局部变量吗???不一定! 

    程序在什么情况下会出现空指针异常?NullPointerException:

    当引用变量存储的地址指向null时,找不到堆内存中的对象,无法访问对象实例了。

    java中的垃圾回收器GC主要针对回收的是堆内存当中的垃圾数据,什么时候数据会被垃圾回收器回收?:没有任何引用指向该对象的时候。

    方法调用时参数的传递问题。

    java中规定,参数传递的时候,和类型无关,不管是基本数据类型还是引用数据类型,统一都是将盒子中保存的那个“值”复制一份,传递过去。

    5、构造方法

    1、什么是构造方法? 构造方法是一个比较特殊的方法,通过构造方法可以完成对象的创建,以及实例变量的初始化。换句话说,构造方法是用来创建对象的,并且同时给对象的属性赋值。 

    2、重点!!当一个类没有提供任何构造方法,系统会默认提供一个无参数的构造方法(称为缺省构造器)

    3、调用构造方法使用new来调用

    4、[修饰符列表] 构造方法名(形式参数列表){

            构造方法体;

    }

    5、当一个类中提供了构造方法,那么系统将不再提供无参数的构造方法;无参数的构造方法和有参的都可以调用

    6、构造方法支持方法重载吗?支持!!

    7、实例变量不是在类加载时候赋初始值,而是在构造方法执行过程中完成初始化的 

    6、封装

    有了封装,才有继承,有了继承,才有多态。

    封装作用:1、保证内部结构的安全性;2、屏蔽复杂,暴露简单;

    在代码级别中,类体中安全级别较高的数据封装起来,外部人员不能随意访问,来保证数据的安全性。

    6.3、怎么进行封装,代码怎么实现?

    第一步:属性私有化(使用private关键字进行修饰)private关键字表示私有的,被这个关键字修饰之后,该数据只能在本类中访问。

    第二步:对外提供简单的操作入口:属性对外提供两个set和get方法。外部程序只能通过set方法修改,只能通过get方法获取。可以在set方法中设立关卡来保证数据的安全性。

    6.4、带有static的方法,不带有static的方法分别怎么调用?

    前者通过类名.方法名()调用,如果在一个类中调用,也可以省掉类名

    后者称为实例方法,实例变量是对象变量,实例方法是对象方法;实例相关的都需要先new对象,通过“引用.”的方式去访问。

    空指针异常导致的最本质的原因是?空引用访问“实例相关的数据”,会出现空指针异常。包括实例变量、实例方法;

    6.5、get方法要求:public 返回值类型  get+属性名首字母大写(无参){}

    set方法要求:public void set+属性名首字母大写(有一个参数){  ***=参数 }

    相关文章

      网友评论

          本文标题:课程学习-第八章 面向对象

          本文链接:https://www.haomeiwen.com/subject/figjyktx.html