JAVA基础知识导图,介绍了类的设计、面向对象的三大特征
树图思维导图提供 JAVA基础 在线思维导图免费制作,点击“编辑”按钮,可对 JAVA基础 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:67bba16ea88a5134a9fb6aa97c209eb0
JAVA基础思维导图模板大纲
类的成员
属性
静态属性(类变量)
为该类的多个实例对象所共享,不属于具体某个对象,通过类.静态属性名调用
非静态属性(实例变量)
不属于类,具体归某个对象所有(实例变量),通过对象名.属性名调用
与变量作对比的不同点
声明的位置不一样
属性有默认初始值,变量没有
在内存中加载的位置不一样,属性(非静态)加载在堆空间中,变量加载在栈中,随着方法的使用而进栈,方法用完,出栈销毁
属性可以用权限修饰符修饰,变量不行
属性赋值的先后顺序:1.默认赋值,2.显式赋值/代码块赋值,3.构造器赋值,4.对象.属性赋值
方法
方法大体也是分静态方法,非静态方法,理解与属性一致,还有一个抽象方法,放在关键字那里说
一个完整的方法是,权限修饰符,返回值类型,方法名,参数列表,方法体
编译器如何确定调用的是哪一个方法,就是根据方法名和形参列表去确定的
静态方法通过类.方法名去调用,非静态方法通过对象名.方法调用
方法名要达到见名知意
形参列表
如果变量是基本数据类型,此时赋值的是变量所保存的数据值。 如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。
方法的重载:只要求方法名一样,参数列表不一样就是方法的重载了
因为开发中,同样的一个功能需求,需要处理不同的参数,例如println(),你有可能输出的是一个数值,也有一个输出的是一个字符,或者说一个数组,这就造就了方法的重载的存在了
可变形参,底层就是一个数组,只不过他帮你造好了数组而已
return关键字的作用:第一用来返回某个值,第二用来结束方法
构造器
每个类中必须要有构造器
作用:用来加载该类的结构和功能(加载类定义的成员),并对类的信息进行初始化
一个类中可以根据具体需求声明多个构造器(用到了方法重载)
在继承中结合this和super关键字加载本来和父类的结构和功能
构造器不能于static连用,因为他是用来造对象的,归具体某个对象所有,是不可能拿出来共享的。
如果我们不自己定义构造器,系统会自动赠送一个空参构造器,在new对象的时候就会调用了
代码块
作用:初始化类中的信息,一般用于初始化代码较多的情况,不单单初始化属性,构造器中一般是用来初始化属性的
方法体里面能写什么,代码块里面就能写什么,所以说他是初始化有一堆代码需求采用的,开发中较少使用
需要注意的点
代码块和构造器的初始化不同
构造器的初始化只加载不执行,而代码块的初始化是加载并执行
静态代码块是随着类的加载而执行的,类只加载一次,所以静态代码块也只执行一次
非静态代码块是随着对象的加载而执行的,每创建一个对象,非静态代码块就加载并执行一次
不提供外部调用(执行),是随着类或对象的加载去执行的
内部类
内部类的理解及分类
内部类的理解
作为外部类的一个成员去理解
他本身作为一个类去理解,可以定义类中该有的成员
内部类特殊的点
内部类用abstract和static一起修饰,而外部类是不行的,外部类不能用static修饰
作为一个成员,内部类是可以用statci修饰的,相当于一个静态结构的成员
内部类的分类
如何实例化成员内部类
根据类的成员去理解,找到这个成员,创建对应的对象即可。
举例:非静态的成员内部类,先创建外部类的对象,然后用外部类的对象.new 内部类的对象。静态的也类似
成员内部类如何调用外部的结构,外部类如何调用内部的结构
创建相应的对象,通过对象去调用即可
局部类内部类开发的应用场景
一般是用在一个方法中,用来返回一个抽象类的匿名子类的对象。
类的理解
面向对象思想和面向过程思想
面向对象的思想,就是充当指挥者,强调谁来做,具体怎么做不关心
面向过程的思想,就是功能当中的每一个细节都得自己亲历亲为,强调怎么做
是对一类事物的描述,是抽象性的,概念性的描述,重点是一类事物,是一类,例如:是对人的描述,而不是说对姓名为某某某的描述
类里面的结构和功能就对应该事物所拥有的属性(名字,年龄等),方法(能干什么活)
类和对象的关系
对象是类描述的一类事物的具体实例化(具体个体),通过类的实例化也就是对象,去调用具体的功能结构。
万事万物皆对象,就是因为类是描述一类事物的,而对象是类的实例化,是类描述的事物在现实世界中实际存在的个体。
封装性
主要体现在四种权限修饰符的修饰上
具体理解:在调用时类的结构和功能的可见性大小
从上往下依次递增,private,default,protected,public,其中private和public比较常用
private是只能在自己定义的类内部使用,所以提高了两个配套方法供外部访问,setXxx,getXxx
为什么要有封装性,就是把该隐藏的隐藏起来,该暴露的暴露出来,有些东西不希望外部干涉实现细节,就隐藏起来,可以让你干涉就暴露出来
继承性
理解:把各个类通用的属性和功能提取出来,作为一个父类去让这些类继承,提高代码的复用性和拓展性
继承分类与类的继承,接口与接口的继承,java当中类与类是单继承的,接口和接口是多继承的,类可以实现多个接口
this关键字和super关键字
this关键字
用来区分局部变量(形参)和成员变量重名,不重名一般省略不写
用来调用本类中的其他构造器,避免重复编写代码
只能放在方法中的首行,不能自己调自己,因为这是个死循环
只能放在方法首行意味着一个方法中只能有一个this或super调用构造器
用来调用本类中的属性,方法,构造器,一般省略不写,调用构造器不能省略
super关键字
用来调用父类的属性和方法的,还有构造器
区分子父类重名的成员变量,一般省略不写
用来调用父类的构造器,加载父类的信息
这个也必须在首行,this和super都是二者只能存在一个,因为都要在首行
调用方法时主要是用来调用父类被重写的方法
具体怎么拥有父类的结构和功能的,子类中每个构造器会默认赠送一个父类的空参构造器,调用子类构造器时实际上是先通过赠送的父类构造器加载父类的结构和功能先的,直到加载完他的所有父类为止再加载自己的结构和功能的
方法的覆盖重写:当父类的方法不能满足子类的需求时,就需要子类堆父类的方法进行覆盖重写(更新)
Object的理解,Object类作为所有类的默认父类(根类),里面定义了一些通用的方法
包装类的使用,把基本数据类型转换成对应的包装类就是为了能让基本数据类型拥有类的特征,使用面向对象的思想
多态性
树图思维导图提供 Linux 网络基础知识 在线思维导图免费制作,点击“编辑”按钮,可对 Linux 网络基础知识 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:199680f0e48eac8a1aeaadb90447d4f4
树图思维导图提供 思辨阅读表达学习任务群小学语文作业设计理论层面 在线思维导图免费制作,点击“编辑”按钮,可对 思辨阅读表达学习任务群小学语文作业设计理论层面 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:8988e5a05fb69634e53868891d5ee2b1