目录
面向对象:封装(私有等级)、继承(父子类、重写)、多态(接口、重载);
输入
Scanner类输入
Scanner reader = new Scanner(System.in);
reader.nextInt() 读入一个整数;
reader.nextIine() 读入一行数据
reader.next() 读入一个单词(以空白符为分界)
reader.nextDouble() 读入一个浮点数
输出
System.out.print()
System.out.println() (自带换行);
数组
声明数组
int[] a,b;
int a[],b[];
int[] a[],b;
数组的初始化
数组名=new 数组类型[元素个数];
a=new int[4];
int [] a=new int[4];(创建数组和初始化化一起完成)
int [] a={1,2,3};
访问数组元素
遍历
for(i=0;i<a.length();i++)
for each语句;
数组常用操作
Arrays.sort(a)
:对数组 a 进行快速排序Arrays.fill(a,v)
:将数组 a 的所有元素值设为 vArrays.equals(a,b)
:如果 a,b 完全一致则返回 true
数组的拷贝
int [] b=a;(数组a和b的首地址相同)
int [] b=Array.copyOf(a,a.length)
分支
多条件多分支语句:
if-else语句、if-else if-else语句;
单条件多分支语句:
switch语句;
循环
for循环、while循环、do-while循环
break跳出循环
cotinue跳出本次循环,进行下一次循环;
面向对象:封装(私有等级)、继承(父子类、重写)、多态(接口、重载);
封装
利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供的接口来访问该对象。
优点:
- 减少耦合: 可以独立地开发、测试、优化、使用、理解和修改
- 减轻维护的负担: 可以更容易被程序员理解,并且在调试的时候可以不影响其他模块
- 有效地调节性能: 可以通过剖析确定哪些模块影响了系统的性能
- 提高软件的可重用性
- 降低了构建大型系统的风险: 即使整个系统不可用,但是这些独立的模块却有可能是可用的
在 Java 中主要依赖私有程度实现封装
继承
继承实现了 IS-A 关系,例如 Cat 和 Animal 就是一种 IS-A 关系,因此 Cat 可以继承自 Animal,从而获得 Animal 非 private 的属性和方法。
继承应该遵循里氏替换原则,子类对象必须能够替换掉所有父类对象。
多态
多态分为编译时多态和运行时多态:
- 编译时多态主要指方法的重载
- 运行时多态指程序中定义的对象引用所指向的具体类型在运行期间才确定
运行时多态有三个条件:
- 继承
- 覆盖(重写)
- 向上转型