java学习_面向对象

面向对象


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


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  是一个规范、标准。(一种特殊类)
       只能包含常量和抽象方法。一个类可实现多个接口,用,隔开。接口可以继承接口。

            



















  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值