Java中的数组的应用,高级排序冒泡 以及面向对之封装
一 、数组
1、什么是数组?
- 用来存储一个或多个同一种类型的元素的容器。如下图,数组中的元素可以通过数组名加下标访问,例如:scores[2]=92;,scores[0]=76;
2、数组的定义
- 数组的申明,语法有两种形式:数据类型[] 数组名;或 数据类型 数组名[];
- 初始化方式,分为静态初始化和动态初始化:
1、静态初始化:数组名=new 数组类型{元素1,元素2,元素3…};一般可以简写为:数组名={元素1,元素2,元素3…}
2、动态初始化:数组名=new 数据类型[数组长度];
3、数组的遍历
数组的遍历方式有两种:for遍历和foreach遍历
接下来用两种遍历方式分别演示遍历数组名为arr的数组
- 用for语句遍历名为arr的数组:
int[] arr=new int[4];
for(int i;i<arr.length;i++){
System.out.println(arr[i]);
}
- 用foreach遍历名为arr的数组:
int[] arr=new int[4];
for(int a:arr){
System.out.println(a);
}
二、冒泡排序
下面演示用Java语言实现对数组,{10,87,65,34,57} 进行冒泡排序,并将排好序的数组输出到控制台
class Draft1{
public static void main(String[] args){
Sort bubble=new Sort(); //创建对象bubble
int[] arr={10,87,65,34,57}; //初始化数组
bubble.bubbleSort(arr); //使用bubble对象调用Sort类中的冒泡排序方法
}
}
class Sort{
//构造冒泡排序方法
public void bubbleSort(int[] arr){
//依次拿出数组中的一个数遍历数组中的其他数进行比较
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1;j++){
if(arr[j]>arr[j+1]){ //拿前一个数和后一个数两两比较
int z=arr[j];
arr[j]=arr[j+1]; //数值小的数往前放
arr[j+1]=z; //数值大的数往后继续比较
}
}
}
//将冒泡排序的结果以“{元素1,元素2,元素3...}”的形式打印出来
System.out.print("{");
for(int x = 0 ; x < arr.length ; x ++){
if(x== arr.length-1){
System.out.println(arr[x]+"}") ;
}else{
System.out.print(arr[x]+", ") ;
}
}
}
}
三、封装
1、什么是封装
封装指隐藏对象的属性和实现细节,仅对外提供公共访问方式.
2、使用封装的优点
- 隐藏实现细节,提供公共的访问方式
- 提高代码的复用性
- 提高安全性
3、封装原则
- 将不需要对外提供的内容都隐藏起来
- 把属性隐藏,提供公共方法对其访问
4、private关键字
- 是一个权限修饰符,可以修饰成员(成员变量和成员方法),被private修饰的成员只在本类中才能访问
- 常见应用:把成员变量用private修饰,提供对应的getXxx() / setXxx()方法,一个标准的面向对象案例的使用。
注意:
1:这个时候写例子,局部变量名称不要和成员变量名称一致
2:private仅仅是封装的一种体现,类和方法其实也是封装体