Java基础知识总结(下)

上传人:飞*** 文档编号:44954924 上传时间:2018-06-14 格式:DOCX 页数:7 大小:18.49KB
返回 下载 相关 举报
Java基础知识总结(下)_第1页
第1页 / 共7页
Java基础知识总结(下)_第2页
第2页 / 共7页
Java基础知识总结(下)_第3页
第3页 / 共7页
Java基础知识总结(下)_第4页
第4页 / 共7页
Java基础知识总结(下)_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Java基础知识总结(下)》由会员分享,可在线阅读,更多相关《Java基础知识总结(下)(7页珍藏版)》请在金锄头文库上搜索。

1、 Java 基础知识总结(下)三:面向对象(java 中一切皆对象)为什么要使用面向对象的思想(特点):1:将复杂的事情简单化。2:面向对象将以前的过程中的执行者,变成了指挥者。3:面向对象这种思想是符合现在人们思考习惯的一种思想。过程和对象在我们的程序中是如何体现的呢?过程就是方法;对象是将方法等一些内容进行了封装。面向对象的三大特征:继承、多态、封装继承:一个类另一个类中获取属性的过程;java 中只支持单继承,但是接口与接口间可以多继承。接口的实现也算是一种继承方式。继承基本类和抽象类用 extends,实现接口的继承使用 implement。为什么不支持多继承呢?因为当一个类同时继承两

2、个父类时,两个父类中有相同的功能,那么子类对象调用该功能时,运行哪一个呢?因为父类中的方法中存在方法体。多态:同一个行为具有多个不同表现形式或形态的能力;增强程序的扩展性和可维护性;多态的两种形式:1、重写(覆盖),2、重载同一对象多态性在于方法的重载,继承和实现类的多态主要在于重写,通常说的多态是指重写。封装:以对象的形式,对其属性,行为进行包装:为什么要封装?将变化隔离;便于使用;提高重用性;安全性。私有仅仅是封装的一种体现形式而已。匿名对象使用场景:对象的方法只进行一次调用。(通常为是用抽象类直接调用方法)在类中定义都称之为成员。成员有两种:1:成员变量:其实对应的就是事物的属性。2:成

3、员函数:其实对应的就是事物的行为。所以,其实定义类,就是在定义成员变量和成员函数。但是在定义前,必须先要对事物进行属性和行为的分析,才可以用代码来体现。类中是否要定义主函数?主函数的存在,仅为保证所在类的独立运行,是程序的入口,被 jvm 调用,如果不需要,主函数是不用定义的。成员变量静态变量(类变量)局部变量定义在类中定义在类中(static 修饰)定义在语句块中(方法中、构造 块、异常等.)对象中有效类中有效定义的语句块中有效存在于堆内存存在于方法区存在于栈内存构造函数:用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种。特点:1:该函数的名称和所在类的名称相同

4、。2:不需要定义返回值类型。3:该函数没有具体的返回值。记住:所有对象创建时,都需要初始化才可以使用。注意事项:一个类在定义时,如果没有定义过构造函数,那么该类中会自动生成一个空参数的构造函数,为了方便该类创建对象,完成初始化。如果在类中自定义了构造函数,那么默认的构造函数就没有了。一个类中,可以有多个构造函数,因为它们的函数名称都相同,所以只能通过参数列表来区分。所以,一个类中如果出现多个构造函数。它们的存在是以重载体现的。构造函数和一般函数有什么区别呢?1:两个函数定义格式不同。2:构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。一般函数,是对象创建后,需要调用才执

5、行,可以被调用多次。什么时候使用构造函数呢?分析事物时,发现具体事物一出现,就具备了一些特征,那就将这些特征定义到构造函数内。构造代码块和构造函数有什么区别?构造代码块:是给所有的对象进行初始化,也就是说,所有的对象都会调用一个代码块,只要对象一建立,就会调用这个代码块。构造函数:是给与之对应的对象进行初始化,它具有针对性。创建一个对象都在内存中做了什么事情?1:先将硬盘上指定位置的 Person.class 文件加载进内存。2:执行 main 方法时,在栈内存中开辟了 main 方法的空间(压栈-进栈),然后在 main方法的栈区分配了一个变量 p。3:在堆内存中开辟一个实体空间,分配了一个

6、内存首地址值。new4:在该实体空间中进行属性的空间分配,并进行了默认初始化。5:对空间中的属性进行显示初始化。6:进行实体的构造代码块初始化。7:调用该实体对应的构造函数,进行构造函数初始化。()8:将首地址赋值给 p ,p 变量就引用了该实体。(指向了该对象)什么时候使用静态成员?1,数据共享时静,定义静态成员属性2,方法中没有调用特有数据时就定义成静态方法静态的注意:静态的生命周期很长。静态代码块:就是一个有静态关键字标示的一个代码块区域,定义在类中。作用:可以完成类的初始化,静态代码块随着类的加载而执行,而且只执行一次(new 多个对象就只执行一次)。如果和主函数在同一类中,优先于主函

7、数执行。Public:访问权限最大。static:不需要对象,直接类名即可。void:主函数没有返回值。Main:主函数特定的名称。(String args):主函数的参数,是一个字符串数组类型的参数,jvm 调用 main 方法时,传递的实际参数是 new String0。jvm 默认传递的是长度为 0 的字符串数组,我们在运行该类时,也可以指定具体的参数进行传递。可以在控制台,运行该类时,在后面加入参数。参数之间通过空格隔开。jvm 会自动将这些字符串参数作为 args 数组中的元素,进行存储。静态代码块、构造代码块、构造函数同时存在时的执行顺序:静态代码块 构造代码块 构造函数;设计模式

8、:解决问题最行之有效的思想。是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。java 中有 23 种设计模式:单例设计模式:解决的问题:保证一个类在内存中的对象唯一性。比如:多程序读取一个配置文件时,建议配置文件封装成对象。会方便操作其中数据,又要保证多个程序读到的是同一个配置文件对象,就需要该配置文件对象在内存中是唯一的。Runtime()方法就是单例设计模式进行设计的。如何保证对象唯一性呢?思想:1,不让其他程序创建该类对象。2,在本类中创建一个本类对象。3,对外提供方法,让其他程序获取这个对象。步骤

9、:1,因为创建对象都需要构造函数初始化,只要将本类中的构造函数私有化,其他程序就无法再创建该类对象;2,就在类中创建一个本类的对象;3,定义一个方法,返回该对象,让其他程序可以通过方法就得到本类对象。(作用:可控)代码体现:1,私有化构造函数;2,创建私有并静态的本类对象;3,定义公有并静态的方法,返回该对象。final 特点:1:这个关键字是一个修饰符,可以修饰类,方法,变量。2:被 final 修饰的类是一个最终类,不可以被继承。3:被 final 修饰的方法是一个最终方法,不可以被覆盖。4:被 final 修饰的变量是一个常量,只能赋值一次。其实这样的原因的就是给一些固定的数据起个阅读性

10、较强的名称。不加 final 修饰不是也可以使用吗?那么这个值是一个变量,是可以更改的。加了 final,程序更为严谨。常量名称定义时,有规范,所有字母都大写,如果由多个单词组成,中间用 _ 连接。抽象类: abstract抽象:不具体,看不明白。抽象类表象体现。在不断抽取过程中,将共性内容中的方法声明抽取,但是方法不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字 abstract 所标示,声明为抽象方法。抽象方法所在类一定要标示为抽象类,也就是说该类需要被 abstract 关键字所修饰。抽象类的特点:1:抽象方法只能定义在抽象类中,抽象类和抽象方法必须由 abstract 关

11、键字修饰(可以描述类和方法,不可以描述变量)。2:抽象方法只定义方法声明,并不定义方法实现。3:抽象类不可以被创建对象(实例化)。4:只有通过子类继承抽象类并覆盖了抽象类中的所有抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。抽象类的细节:1:抽象类中是否有构造函数?有,用于给子类对象进行初始化。2:抽象类中是否可以定义非抽象方法?可以。其实,抽象类和一般类没有太大的区别,都是在描述事物,只不过抽象类在描述事物时,有些功能不具体。所以抽象类和一般类在定义上,都是需要定义属性和行为的。只不过,比一般类多了一个抽象函数。而且比一般类少了一个创建对象的部分。3:抽象关键字 abstract 和哪些不可以共存?final , private , static4:抽象类中可不可以不定义抽象方法?可以。抽象方法目的仅仅为了不让该类创建对象。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号