面向对象的基本概念(前篇)

面向对象的基本概念(中篇)
面向对象的基本概念(后篇)

一、对象(objecrt)

两方面含义:
1、客观世界中的实体
2、可标识的存储区域

二、类(class)
1、类:具有共同属性和行为的对象集合

(1)属性:变量(字段) (姓名、年龄等)
(2)行为:函数(方法)

2、类与对象的关系

(1)类是对象的抽象(模板)
(2)对象是类的实例

三、面向对象的三大特征

封装、继承、多态

1、封装

(1)模块化:将属性和行为都封装在类中
(2)信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类

2、继承

(1)继承性:父类和子类之间共享数据和方法
(2)继承的好处:
a.更好地进行抽象与分类
b.增强代码的重用率
c.提高可维护性
(3)重写:用子类中写的方法替换掉父类的方法
完成重写的条件:方法名称、参数类型、返回值和参数个数相同,权限修饰符不小于父类。
注意:
① 当创建子类对象时,内部会首先创建父类对象,子类对象之所以能引用父类对象,是因为其内部有个super用来存储父类的地址。
② 子类访问父类时,默认通过无参构造方法来访问,如果没有,那么子类在继承时则需要明确地通过super来访问
③ 当super调用构造方法时,必须写在子类构造方法的第一行。
在这里插入图片描述

3、多态

(1)概念:对象的多种表现形式
(2)体现:在类中有子类和父类之分,子类就是父类的一种形态 ,对象多态性就从此而来
(3)方法的重载和重写也是多态的一种,不过是方法的多态(相同方法名的多种形态)。
重载: 一个类中方法的多态性体现
重写: 子父类中方法的多态性体现。
(4)多态的使用:对象类型转换
类似于基本数据类型的转换:
向上转型:将子类实例变为父类实例
格式:父类 父类对象 = 子类实例 ;
向下转型:将父类实例变为子类实例
格式:子类 子类对象 = (子类)父类实例 ;
此图片来自网络,如有侵权,请联系本人删除!
[此图片来自网络,如有侵权,请联系本人删除!]

四、面向对象三大思想

面向对象思想从概念上讲分为以下三种:OOA、OOD、OOP
OOA:面向对象分析(Object Oriented Analysis)
OOD:面向对象设计(Object Oriented Design)
OOP:面向对象程序(Object Oriented Programming

五、对象的创建与使用

一个类要想真正的进行操作,则必须依靠对象,对象的定义格式如下:
类名称 对象名称 = new 类名称() ;
如果要想访问类中的属性或方法(方法的定义),则可以依靠以下的语法形式:
访问类中的属性: 对象.属性 ;
调用类中的方法: 对象.方法(实际参数列表) ;

六、创建对象内存分析
1、栈

特点:先进后出
存储的是: 基本数据类型的数据以及引用数据类型的引用
(栈内存, 通过 ‘栈指针’ 来创建空间与释放空间)

2、堆

存放的是:类的对象
所有类的对象都是通过new关键字创建

垃圾回收器 回收堆内存的规则:
当栈内存中不存在此对象的引用时,则视其为垃圾 , 等待垃圾回收器回收

3、方法区

存放的是

  • 类信息
  • 静态的变量
  • 常量
  • 成员方法
    方法区中包含了一个特殊的区域 ( 常量池 )(存储的是使用static修饰的成员)
4、PC寄存器

PC寄存器保存的是 当前正在执行的 JVM指令的 地址
在Java程序中, 每个线程启动时, 都会创建一个PC寄存器

5、本地方法栈

保存本地(native)方法的地址

七、构造方法(构造器)
1、概述

作用:用于对象初始化。
执行时机:在创建对象时,自动调用
特点:所有的Java类中都会至少存在一个构造方法

(如果一个类中没有明确的编写构造方法, 则编译器会自动生成一个无参的构造方法, 构造方法中没有任何的代码!
如果自行编写了任意一个构造器, 则编译器不会再自动生成无参的构造方法。)

2、定义格式

与普通方法基本相同,区别在于:方法名称必须与类名相同,没有返回值类型的声明

八、方法的重载

方法名称相同, 参数类型或参数个数不同, 可以完成方法的重载,方法的重载与返回值无关

九、构造方法的重载

一个类, 可以存在多个构造方法:参数列表的长度或类型不同即可完成构造方法的重载
构造方法的重载 ,可以让我们在不同的创建对象的需求下, 调用不同的方法来完成对象的初始化

十、匿名对象

没有对象名称的对象 就是匿名对象。
匿名对象只能使用一次,因为没有任何的对象引用,所以将称为垃圾,等待被G·C回收。
只使用一次的对象可以通过匿名对象的方式完成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值