冒泡排序
外层循环:i(0~length-1)
数组的长度是多少,外层就循环多少次
内层循环:j(0~j-i-1)
执行范围
当前元素:0~数组长度-i-1(减 i 是因为外层每执行一次,最后一个元素就不用考虑了;减1是为了避免j+1造成数组下标越界)
下一个元素:1~数组长度-i
拿当前元素和下一个元素进行比较
如果当前元素比下一个元素要大,那就两个元素交换位置
内层循环执行完能够把最大的元素移动到数组的末尾
方法的重载
同一个类中
同名的方法
没有重载不方便:让方法调用者,在调用方法的时候,不必为了相似的功能而查阅文档,查找各种不同的方法名,降低学习成本,提高开发效率。
有了重置很方便:在调用一系列重载的方法时,感觉上就像是在调用同一个方法。对使用者来说,只需要知道一个方法名就能够应对各种不同情况。
限制
限制的来源:本质上只要让系统能够区分清楚我们具体要调用哪一个方法。在同一个类中,如果两个方法的方法名一致,那么参数列表必须不同。
参数列表区分
要么是参数个数不同 要么是参数类型不同。
方法可变参数
在实际开发过程中,确实有一些情况不确定在调用方法时传入几个参数。所以为了让调用方法时能够弹性传参,JavaSE5.0标准增加了可变参数功能。
声明和调用
// 能够计算任意个数整数之和的加法
// 使用String ... args来声明可变参数
public String add(String ... args) {
?System.out.println("暗号:可变参数");
?String sum = "";
?// 在方法体内,可变参数按照数组形式来处理for (int i = 0; i < args.length; i++) {
sum = sum + args[i];}
?return sum;
}
递归
方法自己调用自己。使用递归想要达到的目的是让方法中的代码重复执行,而且往往是在上一次执行的结果的基础上,再进一步执行。
例子:
// 计算1~N之间的总和:使用递归
public int sumOperationRecursion(int number) {
?if (number == 1) {
?return 1;
?}else{
?return number + sumOperationRecursion(number - 1);
?}
}
封装
将对象中数据或代码逻辑隐藏起来。对数据的操作在类的内部完成,对外界隐藏实现的细节。
好处!
对象(或组件)内部代码实现的细节可以对外隐藏。 简化外部使用对象时的操作难度。外部使用对象时,调用对象暴露出来的方法即可。
让整个系统的开发组件化、模块化程度更高,更有利于实现:高内聚、低耦合。
示例(如何隐藏自个儿年龄)
public class MarryObject {
?// 将属性的权限修饰符设置为私有,不允许外部直接访问private int age;
?// 对外暴露的获取数据的getXxx()方法public int getAge() {
return age;}
?// 对外暴露的设置数据的setXxx()方法public void setAge(int ageOutter) {
?// 在方法内部,根据内部的逻辑,对外界数据进行修正if (ageOutter < 20) {
?age = 20;
?} else if (ageOutter > 60) {
?age = 60;
?} else {
?age = ageOutter;
?}
?}
?
}
PS:对class的权限修饰符只有public和缺省两种
… public:表示这个类可以在工程中任意位置访问(开发中实际使用的方式)
… 缺省:表示这个类只能在同一个包内访问(实际开发不会使用这种方式)
构造器
如果我们没有明确声明构造器,那么系统回给类分配一个隐式的构造器。
构造器的作用
**作用1:**创建对象。
**作用2:**在创建对象的过程中,对类进行初始化操作。这些操作写在构造器的大括号中。
初始化操作放到构造器里面,由构造器自动完成,程序员就不必在创建对象后还想着对这对象做初始化操作。
组成部分
例子
public class Soldier {
?private String soldierName;
?public Soldier(String soldierName) {
this.soldierName = soldierName;}
?
}
构造器重载
构造器也可以在同一个类中有多个,是重载关系,与方法重载一致。
构造器相关语法规则
Java语言中,每个类都至少有一个构造器
默认构造器的修饰符与所属类的修饰符一致
一旦显式定义了构造器,则系统不再提供默认构造器
一个类可以创建多个重载的构造器
父类的构造器不可被子类继承
快捷键
唤出快捷菜单
Alt+Insert
有的电脑需要按住Fn键,再按Insert才能生效
声明无参构造器
当快捷菜单中选中的是Constructor时,回车,弹出下面窗口:
声明全部参数构造器: