关于Java面向对象整理的笔记

面向对象的三大基础特征
     封装
    继承
    多态
面向对象的编程思想就是把事物看做一个整体, 从事物的特征(属性)和行为(方法)俩个方面就行描述
面向对象的过程就是找对象、建立对象、使用对象、维护对象关系的过程

目录
    Java面向对象(基础总结)
    面向过程和面向对象
    抽象
    类
    对象
    全局变量(成员变量)
    局部变量
    成员方法
    构造方法
    this关键字
    封装
    继承
    继承中的构造方法
    super关键字
    多态
    对象的内存分析


1.抽象
所谓的抽象,就是把同一类事物中共有的特征(属性)和行为(功能、方法)进行抽取,归纳,总结。

抽象的过程其实就是面向对象编程的核心思想


类:用来描述一类具有相同特征(属性)和相同行为(方法)的对象。(可以比喻为模板)


Java中用class关键字来描述类

成员属性(变量):对应的就是事物的属性
成员方法:对象事物的行为


定义类:就是定义类的成员,包括成员变量和成员方法

类的成员:

成员变量:和之前定义的变量几乎时一样的,只不过位置发生了改变,成员变量位于类中,任何方法之外。
成员方法:和之前定义的方法几乎是一样的,只不过把static关键字去掉
类和对象的关系:

类是对象的抽象
对象是类的实例化
对象
对象(Object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。

它们是有形的,如一个人、一件物品;也可以是无形的,如一个计划、一次交易。(万事万物,皆对象)


        成员变量(属性)都有默认值,所以在声明成员变量时,可以不用初始化(默认值和数据类型有关:)
        byte                0
        short            0
        int                0
        long            0
        float            0.0
        double            0.0
        boolean            false
        char                空字符
        引用类型            null


全局变量(成员变量)
定义在方法的外部,类的内部。使用范围是整个类
不需要初始值
存储在堆内存中(对象存在时才在存在)


局部变量
(方法中的变量)
定义在方法的内部或者某一个语句块的内部,适用范围仅限于方法内或者语句块内
必须有初始值
存储在栈内存中


成员方法
访问修饰符:public

返回值类型由返回值决定

成员变量可以直接在成员方法中使用,但是main方法中如果调用成员变量和方法必须通过对象.属性名\方法名(参数列表)的形式来调用
成员方法之间的调用,直接写方法名(参数列表)即可

构造方法
对象一建立就会调用构造方法,可以创建对象,给成员变量(属性)初始化。

方法名和类名相同
没有返回值和void,没有return

不能被static等关键字修饰

可以方法重载(定义多个参数列表不同的构造方法)

当一个类中没有写构造方法时,系统会默认给该类一个默认的无参构造方法。当自己定义构造方法后默认的构造方法就不存在了。(自己定义有参的构造方法后,如果还想使用无参的构造方法,就要自己再添加一个无参的构造方法

this关键字
this代表它所在方法所属对象的引用。哪个对象调用的this所在的方法,this就代表哪个对象。

在没有static关键字修饰的方法中使用

this关键的字用来区分成员变量和局部变量同名的情况:

this关键字在构造方法中的第一行以 this(参数列表) 的形式出现时,就表示当前构造方法调用了该类中其他的构造方法(于参数列表相匹配的构造方法):


封装
封装是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据都不受外部干扰且不被误用。
封装的目的在于保护信息,保证数据的安全性
封装包括两个方面:属性的封装和方法的封装
Java 提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西,私有的方法数据只能通过该类的成员代码来访问, 封装不是绝对的封装,如果想要访问封装起来的数据,可以通过指定的入口即可
属性和方法的封装两者时相辅相成、密不可分的

继承
程序中的继承性是指子类拥有父类的全部特征和行为,这是类之间的一种关系。
继承的特点:
继承要有一定的层次结构,而且还要具备一定的可传递性
子类继承了父类的所有属性和方法,但是不包括私有属性(private)和构造方法
子类继承父类的属性和方法同时也可以有自己的属性和方法。
Java 只支持单继承。 也就是说一个子类只能有一个父类,父类可以有多个子类
继承可以减少重复代码、提高了复用性和维护性
继承让类与类之间产生了关系,类的耦合性增强了,父类发生变化子类也会跟着改变

继承中的构造方法
创建有继承关系的子类对象时,会先执行父类中默认的构造方法,然后执行子类中相关的构造方法
如果父类中不存在默认的构造方法,那么此时的解决问题,第一种就是手动添加一个默认的构造方法。
super关键字
表示当前类的父类的引用
只能出现在有继承关系的子类中
super两种用法:
super.属性名、super.方法名(参数列表)
表示父类的属性和方法,和子类中的属性或方法重名时使用
super(参数列表)
出现在子类构造方法的第一句代码时
就是通过参数列表匹配父类的构造方法来创建父类对象

多态
多态就是同一函数在不同类中有不同的实现;
面向对象的多态性,即“一个接口,多个方法”。
多态性体现在父类中定义的属性和方法被子类继承后,可以具有不同的属性或表现方式。
多态性允许一个接口被多个同类使用,弥补了单继承的不足。
利用父类类型实例化,子类覆写父类的方法后,运行时,动态的再指向子类的实现,即为多态

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值