【JavaSE】2.面向对象、接口
—title: JavaSE_2.数组、字符串、集合类、异常机制date: 2020-10-12 20:01:08tags: JavaSE—面向对象是一种代码编程思维,天天都在使用。必须灵活掌握标准类、类和对象三大特性:封装、继承、多态类,面向对象OOP三大特性:封装性、继承性:类的共同点成员变量、成员方法接口内部类...
·
面向对象是一种代码编程思维,天天都在使用。必须灵活掌握
标准类、类和对象
标准类/Java bean:成员变量、方法、
JavaBean的四个组成部分:
- 所有的成员变量都要使用private关键字修饰
- 为每一个成员变量编写Getter/Setter方法
- 编写一个无参数的构造函数
- 编写一个全参数的构造函数
成员变量和局部变量的区别:
- 我是谁?(我有默认值)我在哪?(Heap)我要到哪去?(随对象而去)
- 成员变量在堆内存里(new 在堆里),生命周期:随对象而消失,有默认初值
- 局部变量在方法区(Stack栈里),随方法调用完毕就消失,无初值必须赋值之后才能使用
类,面向对象OOP
什么是面向对象编程?
“面向对象编程”(Object Oriented Programming,缩写为OOP)是目前主流的编程范式。其核心思想是将真实世界中各种复杂的关系,抽象为一个个对象,然后由对象之间的分工与合作,完成对真实世界的模拟。
什么是类?
类就是群体(模板),具备实例对象的向上抽象涵义。例如人类就是类,每个人向上所属都是属于一个共同的类——人类;实例是具体的对象,人就是人类的实例化/对象
类变量:
- 类变量定义count可以给实例对象编号,因为类变量是共享的。
- 类变量不可以保存全部实例的个数(实例可能会在程序执行的过程中被销毁)
三大特性:封装、继承、多态
封装性
方法是种封装,类也是一种封装
-
- 成员变量都是隐藏在内部的,外界无法直接操作(Private)
- 外部程序不能直接访问变量,只能由类提供给外部的公开方法去访问。访问器【setXxx && getXxx】保护成员变量,方法内设置赋值条件以保证参数的合理性
- 多次使用:我们在使用封装性的时候,要清楚自己封装的东西作用是什么,将方法封装好了之后可以在同一个类不同方法中多次使用,真正才能利用好方法的封装性。
构造方法:
- 构造方法:构造方法是一种特殊的方法,主要是完成对象的创建和对象数据的初始化。使类具有更好的封装性。(如果不写的话,new了新对象需要单独一行代码给某个属性赋值。)
- 构造方法:减少代码量,使类具有更好的封装性。
- 方法名和类名一样;
- 权限修饰符可以是private、public
- 没有返回值类型,但是可以返回实例化对象
- 先调用超类构造函数👉类初始化器在构造方法的前面执行(实例初始化器在)👉本方法
toString方法:
- “类的自我介绍”
- 因为在很多直接print类的时候,我们会直接调用类中的toString方法,在类里面重写这个方法可以让外界了解类里面有什么东西。如果没有重写,那么print的时候会调用父类Object中的toString方法,输出的是这个类的哈希码。
继承性:类的共同点
使得子类具有父类的属性和方法,还可以在子类中重新定义,以及追加属性和方法
方法重写
- 参数所有的东西都要一样
- 子类不满意合同,所以要重写写一份合同
Tips:
- 每一个子类构造方法的第一条语句默认都是:super()“父类的无参构造”
- 父类的私有变量、方法是不可继承的
多态性
三大特性的个人理解:
- 封装性:类包含了对象的属性和行为/方法:人都有年龄、性别、名字、以及一些隐藏属性:思维高度、金钱、社会关系,(可以看作在类里面用private修饰的成员变量);人可以吃饭、看电视、玩游戏、睡觉、学习,都是人的行为(也就是人类的方法)。将各种人类属性抽象到人类类中,就是类的封装性;
- 继承性:例如我继承了父类有的功能,他的煮饭方法是公开的,那么我也会。我也可以增加新的方法——打王者荣耀,但是我的父亲不会,没有这个技能;(回顾过去,展望未来,对子类的拓展);
- 多态性:同样的方法,在不同对象中执行得不一样。(前提:需要有继承、重写、引父new子)
权限修饰符
- Static修饰的类变量和方法:共享
- 静态成员方法只能访问静态成员
接口
内部类
- 一个Java文件有且仅有一个public修饰的类
- 在包中通用的内部类
更多推荐
已为社区贡献2条内容
所有评论(0)