7月11日 Java OOP复习笔记

面向对象编程

面向过程与面向对象
类与对象的关系
属性,方法和构造方法
方法的重载
封装

**应用程序?**现实的虚拟
写程序?使用计算机语言去描述现实中的事物

面向过程?
描述一个事物的时候关注的是事情发展的步骤,流程
斗地主:洗牌 发牌 抢地主 出牌 结算
xipai() fapai() qiangdizhu() chupai() jiesuan()
main(){
xipai();
fapai();
qiangdizhu();
chupai();
jiesuan();
}

面向对象?
描述一个事物的时候关注的是事情中相关的人物

斗地主:
荷官 洗牌 发牌 结算
xipai() fapai() jiesuan()
玩家 抢地主 出牌
qiangdizhu() chupai()

main(){
荷官.xipai();
荷官.fapai();
玩家.qiangdizhu();
玩家.chupai();
荷官.jiesuan();
}


对象:做事情的人或者物,是一个具体的个体
类: 表示的是对象共同特征的描述,是一个抽象的概念

类型 对象
学生 朱坤
电脑 某一台电脑
桌子 某一张桌子

类是对象的抽象
对象是类的具体表现


学生类
定义类
创建对象
调用属性和发

构造方法
每个类都默认隐式声明了一个无参数的构造方法

构造方法的特点
a.构造方法的名字必须和类名一致
b.构造方法不需要声明返回值类型
c.构造方法不能被重写[覆盖]
d.构造方法要通过new关键字调用

构造方法的重载
在一个类中可以定义多个构造方法,只要参数列表[类型,个数,顺序]不一样

方法的重载
在同一个类中定义多个同名不同参数列表的方法
方法的重载和返回值没有关系


封装:
使用访问限定符来限定类,属性,方法和构造方法的可访问范围

为什么需要封装??
对于属性的访问,可以有写访问和读访问
通过访问限定符限定属性的可访问访问
再通过setter和getter方法来对外提供访问接口
提高数据的安全性

封装的级别
public 公共的 程序中随处可访问
protected 受保护的 包内和子类中可访问
缺省的 包内可访问
private 本类中可访问

======================================================
Java中的数据类型
基本类型
整型:byte short int long
浮点型:float double
非数字:char boolean

引用类型
数组
类 [抽象类]

接口 [枚举类型 注解类型]

类和抽象类,接口
1.关键字不一样 抽象类abstract class 接口是interface
2.抽象类中的属性可以是成员属性,也可以是类属性
接口中的属性必须是公共的常量
3.抽象类中的方法可以是具体的方法,也可以是抽象方法
接口中的方法只能是抽象方法,或者是default方法[1.8及以上]
4.抽象类有构造方法,接口没有构造方法
5.一个类只能继承一个抽象类
一个类可以实现多个接口

=========================================================
为什么需要接口??

类中的方法全部是具体的方法
抽象类中的方法可以是具体的方法,也可以是抽象方法
接口中的方法全部是抽象方法


Eclipse中的工程结构:
工作空间[WorkSpace]
工程[Project]
src
软件包[package]
类/接口[class/interface]的源代码
bin
软件包[package]
类/接口[class/interface]的字节码

Idea中的工程结构
工程[Project],创建工程的时候指定路径
模块[Module]
src
软件包[package]
类/接口[class/interface]的源代码
模块[Module]
src
软件包[package]
类/接口[class/interface]的源代码

out
production
模块
软件包[package]
类/接口[class/interface]的字节码

模块
软件包[package]
类/接口[class/interface]的字节码

=========================================================
如何继承?
public class A{}
public class B extends A{}

为什么需要继承?
a.子类可以继承到父类中的属性和方法,减少代码的冗余
b.子类可以定义自己特有的属性和方法,实现对父类的扩展
子类特有的方法必须是子类类型的对象才能调用
c.子类还可以修改【覆盖、重写】从父类继承来的属性和方法
对象调用的是不是重写的方法,取决于new的类型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值