JAVA类的基础部分

一、类的基础知识

属性:字段Field 成员变量

默认初始化:

​ 数字:0 0.0

​ char: u0000

​ boolean: false

​ 引用:null

修饰符 属性类型 属性名 = 属性值

方法

  • 静态方法:使用static关键字修饰的方法,属于类的,不属于对象,静态方法可以直接调用,类名调用和对象调用;
  • 非静态方法:不使用static关键字修饰的普通方法,属于对象,不属于类,非静态方法只能通过对象调用。

对象的创建与使用

  • 必须使用new关键字创造对象,使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用
  • 对象的属性 object.property
  • 对象的方法 object.method()

类的存储形式

在这里插入图片描述

四种访问修饰符的访问范围

访问级别访问控制修饰符同类同包子类不同包
公开public
受保护protected×
默认无修饰符××
私有private×××

二、三大特性

面向对象的本质:以类的方式组织代码,以对象的组织(封装)数据。

封装

  • 将成员变量私有(private)
  • 提供set方法设置属性值,get方法获取属性值
  • 将set方法写入构造器

继承

在这里插入图片描述

  • 继承的本质是对某一批类的抽象,子类是父类的扩展
  • 默认先调用父类的无参构造器,然后调用子类本身构造器
  • JAVA中类只有单继承,没有多继承,但接口可以多继承
  • 子类通过this访问自己的属性和方法,super访问父类属性和方法

继承的内存布局

super与this的区别
No.区别点thissuper
1访问属性访问本类中的属性,如果本类没有此属性则从父类中继续查找访问父类中的属性
2调用方法访问本类中的方法,如果本类没有此方法则从父类中继续查找访问父类中的方法
3调用构造器调用本类构造器,必须放在构造器的首行调用父类构造器,必须放在子类构造器的首行
4特殊表示当前对象子类中访问父类对象
方法重载、重写
名称发生范围方法名形参列表返回类型修饰符
重载(overload)本类必须一样类型个数或顺序至少一个不同无要求无要求
重写(override)父子类必须一样相同子类返回类型与父类一致,或是其子类子类不能缩小父类的访问权限

多态

多态:方法或对象具有多种形态,是OOP的第三大特征,建立在封装和继承之上,重载和重写都体现了多态

(1)多态的前提:两个类之间存在继承关系。

(2)属性没有重写之说,属性的值看编译类型。

(3)instanceof比较操作符,用于判断对象的运行类型是否为XX类型或XX类型的子类型

对象的多态

(1)一个对象的编译类型可以和运行类型不一致

(2)编译类型在定义对象时就确定了,不能改变

(3)运行类型是可以变化的

(4)编译类型看定义时 = 号左边,运行类型看 = 号右边

向上转型

(1)本质:父类的引用指向了子类的对象

(2)语法:父类类型 引用名 = new 子类类型()

(3)特点:

  • 编译类型看左边,运行类型看右边
  • 可以调用父类的所有成员(需遵守访问权限)
  • 不能调用子类中特有成员
  • 最终的运行效果看子类的具体实现
向下转型

(1)语法:子类类型 引用名 = (子类类型) 父类引用;

(2)只能强转父类的引用,不能强转父类的对象

(3)要求父类的引用必须指向的是当前目标类型的对象

(4)可以调用子类类型中所有的成员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值