3.面向对象
Posted 走遍天涯心随你起落
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.面向对象相关的知识,希望对你有一定的参考价值。
面向对象
1.面向对象和面向过程
面向对象以功能来划分,面向对象可以有更好的可移植性和拓展性
面向过程以步骤划分问题
2.对象和类的关系:类是对对象特征的抽象与归纳,对象是类的实例化,如汽车和BMW(宝马)
3.栈和堆:
栈的特点:
---线程私有,不能实现线程之间的共享
---局部变量存入栈中
---系统自动分配,内存连续,速度快
堆的特点:
---new出来的对象
---空间不连续,分配灵活,速度慢
---方法区的堆被所有线程共享,用来存放永远不变或唯一内容
4.局部变量、成员变量、静态变量
局部变量:在方法或语句块中声明,必须要手动初始化,从属于方法或语句块
成员变量:在类中方法外声明,从属于对象
静态变量:类中方法外声明(用关键字static),从属于类
5.构造方法用于对类的成员变量的初始化,构造方法名必须跟类名保持一致,没有返回值,构造方法在对象实例化时被调用(构造方法可以重载)
6.this指针在普通方法中指的是当前类,在构造方法中指的是当前类的其他构造方法
7.static变量在内存中放置在堆中的方法区,属于静态不变;静态初始化块相比于main先执行
8.一个构造方法调用另一个构造方法通过this(参数),必须位于第一句
9.package的作用
---提供多层命名空间,解决命名冲突
---对类按功能分类,使项目组织更加清楚
10.import java.util.*;不会影响运行速度,但会影响编译速度。import static 静态导入的作用是导入类的静态属性和方法
11.java.util.Date和java.sql.Date怎么区分
申明引用或者实例化的时候必须全路径
12.javadoc注释/** */
13.内聚和耦合
内聚:一个模块内部各个元素彼此结合的紧密程度的度量
耦合:软件系统结构间相互联系紧密程度的一种度量
14.一般属性需要设置为private =>封装数据,通过调用对象方法修改,不让其他人随意修改
15.继承的好处
逻辑关系更清晰,减少代码重复,在使用时,通过父类定义引用,可以组织所有子类
16.单继承能避免诸如父类命名重复等错误的发生,java可以通过接口组合来实现多继承
17.假如父类有main方法,子类不能继承(main方法是静态方法)
18.多态实现的三个必要条件
---继承
---重写
---父类引用指向子类对象
19.java中,final修饰的方法属于静态绑定,其他方法是动态绑定
20.final变量是只读的。方法前面加上final关键字,代表这个方法不能被子类的方法重写。使用final修饰的类叫fina类。final类不能被继承
21.String类是final类,不能被继承
22.*向上转型和向下转型
23.抽象类和接口的区别
抽象类:
1.包含抽象方法的类是一定抽象类,抽象类不一定包含抽象方法。抽象类可以有普通方法,可以定义构造方法。(抽象类不能被new出来,抽象类的构造方法不能被调用)
2.抽象方法一定是public abstract
3.抽象类中可以定义一些子类的公共方法,子类只需要增加新的功能,不需要重写已存在的方法。
接口:
1.接口中只能定义常量和抽象方法
2.接口中的常量一定是public static fianl
3.接口不能定义普通变量,普通方法,不能被new
4.接口之间可以多继承,一个类可以实现多个接口
24.GC(Garbage Coolection)指垃圾回收机制。没有提供相关api,手动回收,所有的内存分配和回收权限都在jvm中
25.System.gc():呼叫java虚拟机的垃圾回收器运行回收内存的垃圾
26.finalize()方法
当垃圾回收器认为一个对象没有存在意义时,会回收该对象的内存,会调用该对象的finalize()方法,释放该对象在堆中占用的内存(继承于Object类)
以上是关于3.面向对象的主要内容,如果未能解决你的问题,请参考以下文章