JDK是
Java运行环境(Java Runtime Environment,简称JRE)是一个软件,由太阳微系统所研发,JRE可以让
JRE的内部有一个Java虚拟机(Java Virtual Machine,
JVM是Java Virtual Machine(Java
执行速度快、效率高;依靠编译器、跨平台性差些。
执行速度慢、效率低;依靠解释器、跨平台性好。
所有a=5;b=3;c=5
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 全1出1,有0出0 A与B
A|B = 0011 1101 有1出1,全0出0 A或B
A^B = 0011 0001 相同出0,不同出1 异或
~B = 1111 0010 取反
左移 << 相当于*2
右移 >> 相当于/2
加在类上面就是类的注释
加在方法上面就是方法的注释
### 何为方法
Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,- -般情况下,定义 一个方法包含以下语法:
如果方法有static修饰符,就直接通过类名.方法名就可以调用了。在本类就直接方法名即可。
如果方法没有static修饰符,则需要实例化这个类 new,然后在通过对象名.方法
重载就是在一个类中,有相同的函数名称,但形参不同的函数。
方法名称必须相同
参数列表必须不同(个数不同或类型不同、参数排列顺序不同等)。
方法的返回类型可以相同也可以不同
仅仅返回类型不同不足以成为方法的重载。
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
形参:就是定义方法时()里面的参数,
实参:就是调用方法时,所传递过去的参数
比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
每一次比较,都会产生出一个最大的,或者最小的数字;
下一轮则可以少一次排序
依次循环,直到结束!
面向过程思想
步骤清晰简单,第一部做什么,第二步做什么...
面向过程适合处理一些较为简单的问题
面向对象思想
物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程思索。
面向对象适合处理复杂的问题,适合处理需要多人协作的问题!
面向对象编程(Object-Oriented Programming,OOP)
面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装数据)
封装性在java当中的体现:
方法就是一种封装
关键字private也是一种封装 一旦使用private关键字进行修饰,那么本类当中仍然可以随意访问。 但是!超出了本类范围之外就不能在直接访问了 封装就是将一些细节信息隐藏起来,对于外界不可见
继承是多态的前提,如果没有继承,就没有多态
继承主要解决的问题就是:共性抽取。
继承关系当中的特点:
子类可以拥有父类的“内容”
重写:
需要有继承关系,子类重写父类的方法!
方法名必须相同
参数列表必须相同
修饰符:范围可以扩大但不能缩小,static、final、private修饰的方法不能重写
子类的方法和父类的方法务必要一致:方法体不同
为什么要重写:
父类的功能,子类不一定需要,或者不一定满足!
子类还可以拥有自己专有的内容
在父子类的继承关系当中,如果成员变量或方法重名,则创建子类对象时,访问方式有两种:
直接通过子类对象访问成员变量: 等号左边是谁,就优先用谁,没有则向上找
间接通过成员方法访问成员变量: 该方法属于谁,就优先用谁,没有则向上找。 注意事项: 无论是成员方法还是成员变量,如果没有都是向上找父类,绝不会向下找子类的。
一个对象拥有多种形态:这就是对象的多态性
代码当中体现多态性:父类引用指向子类对象 格式:父类名称 对象名 = new 子类名称(); 或者:接口名称 对象名 = new 实现类名称()
对象向上转型其实就是多态写法:父类引用指向子类对象 对象一旦向上转型为父类,那么就无法调用子类原本持有的内容。【解决方案:向下转型】
对象向下转型其实就是一个【还原】的动作:格式 子类名称 对象名 = (子类名称)父类对象 含意:将父类对象,【还原】成本来的子类对象
instanceof: 类型转换,引用类型,判断一个对象是什么类型
特点:
不能new这个抽象类,只能靠子类去实现它
抽象方法必须在抽象类中
抽象类的所有方法,继承了抽象类 它的子类,都必须要实现它的方法,除非它的子类也是抽象类
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。 除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象
接口就是多个类的公共规范。
接口是一种引用类型,最重要的内容就是其中的:抽象方法
接口的使用步骤:
接口不能直接使用,必须有一个“实现类”来“实现”该接口 格式:public class 实现类名称 implement 接口名称{ //...}
接口的实现类必须覆盖重写(实现)接口中所有的抽象方法。 实现:去掉abstract关键字,加上方法体大括号。
创建实现类的对象,进行调用 注意事项:
接口当中的抽象方法,修饰符必须是两个固定的关键字:public abstract
这两个关键字修饰符,可以选择性的省略。
如果实现类并没有覆盖重写接口中所有的抽象方法,那么这个实现类自己就必须是抽象类。
不能通过接口实现类的对象来调用接口当中的静态方法 正确用法:通过接口名称,直接调用其中的静态方法
接口当中也可以定义“成员变量”,但是必须使用 public static final 三个关键字进行修饰。 一旦使用final关键字进行修饰,说明不可改变。
接口是没有静态代码块或构造方法的
一个类的直接父类是唯一的,但是一个类可以同时实现多个接口
如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。
如果实现类实现的多个接口当中,存在重复默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写
一个类如果直接父类当中的方法,和接口当中的默认方法发生了冲突,优先用父类当中的方法。
原文:https://www.cnblogs.com/129chao/p/13426492.html