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

2020-09-20  本文已影响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+属性名首字母大写(有一个参数){  ***=参数 }

上一篇下一篇

猜你喜欢

热点阅读