java学习_面向对象

来源:互联网 发布:女变男网络电影 编辑:程序博客网 时间:2024/06/11 20:17
面向对象


面向过程 :程序 = 算法 + 数据结构
面向对象 :程序 = 数据结构 + 算法


java是由类组成的,类的实现就是对象。
比如说:
1.我想找一个女朋友。
2.我想找范冰冰当女朋友。 
一个女朋友就是类,范冰冰就是对象。
类是抽象的,对象就很具体。





java对象的三大特性:封装、继承、多态



封装:
1.对象本身就是一种封装。将属性与方法放到一起组成一个类。
  就像一个柜子:属性是长宽高材质形状,方法也就是功能,放东西。
2.属性封装:属性私有化,通过方法去访问属性。
3.方法封装:不需知道实现细节,调用即可。就比如说放东西,你把东西给了柜子(调方法),他就帮你放进去了,
你不用知道他怎么放进去的。



继承:
继承可实现代码的复用。抽象类、接口就是具体应用。接口是为了实现多继承。
子类继承父类,可继承方法与属性。私有属性不可继承。
方法重写:子类重新定义父类的这一个方法。
方法重载:方法名一样,参数类型或个数不一样。一个类中有同名的方法,根据传入参数的不同决定调用哪个。
重写父类方法时注意事项:子类访问访问权限要大于等于父类访问权限。
继承具有传递性。
子类构造之前必须先构造父类。子类构造方法中默认调用super()父类无参构造方法。


多态:

定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象
的不同而采用多种不同的行为方式。(发送消息就是函数调用)
实现技术:动态绑定,是指在执行期间判断所引用对象的实际类型,
根据其实际的类型调用其相应的方法。
作用:消除类型之间的耦合关系。



多态存在的三个必要条件
1.要有继承 2 要有重写 3 父类引用指向子类对象
多态的好处:
可扩充性、接口性
多态实现方式:接口实现,继承父类进行方法重写,同一个类中方法重载。



类的多态表现: 1.方法重载2.子类重定义从父类继承来的成员。
   
多态类型:
1.编译时多态性:
对于多个同名方法,如果在编译时能够确定执行同名方法中的哪一个则为编译时多态
2.运行时多态:
编译时不能确定,只能在运行时才能确定执行多个同名方法中的哪一个,则称为运行
时多态性。

java内存管理: 由JVM管理



1.堆:存储new出来的对象。没有任何引用指向的对象垃圾,垃圾回收器(GC)不定时到内存中 清扫垃圾。
 内存泄漏:不再使用的内存没有被及时的回收。
2.栈: 存储正在调用中的方法的所有局部变量包括参数。
  调用方法时,在栈中为该方法分配一块对应的栈帧,方法调用结束时,栈帧被清除,局部变量一并失效。
3.方法区:
     存储的是.class字节码文件(包括方法、静态变量)
      static:静态的
      静态变量:存在方法区,只有一份。
      静态方法:存在方法区,只有一份。静态方法中不可访问非静态变量。
      静态块:在类被加载时自动执行。与类一样,只被加载一次。多在加载/初始化静态资源时使用。
                    
       final:最终的、不可改变的
       修饰变量:变量不能被改变
       修饰方法:方法不能被重写

       修饰类: 类不能被继承
       static final:常量  

    

抽象类:由abstract修饰(一种特殊类)
   包含抽象方法的类必须是抽象类。
   抽象方法:abstract修饰,没有方法体。
抽象类意义:封装子类共有的属性和行为---代码复用。
            为子类提供一种同意的类型---向上造型。每个子类的实现不同,但入口是一致的。
接口:interface  是一个规范、标准。(一种特殊类)
       只能包含常量和抽象方法。一个类可实现多个接口,用,隔开。接口可以继承接口。

            



















原创粉丝点击