方法和数组

在类中声明的变量为属性,也可以定义方法,它表示的是这个类中具有的功能。一个公司的存在价值依靠他的功能是什么。
那么如何定义他的方法呢?
访问控制符 [修饰符] 返回值类型 方法名([参数]){
//方法体
}
下面一一解说定义方法这些东西到底是神魔?
访问控制符:提起这个大家肯定不陌生,在声明变量的时候不就也用到它了嘛!既然到这里小编就给大家说说吧~访问意思很简单就是标记该类、变量或者方法能否被同一工程的其他类使用。
public 公用的 在任何类中都能使用
protected 受保护的 除了不同包不继承情况,其他情况都可使用
default 友好的 在本类和同包类中使用(若不明确写出,默认访问控制符为友好的)
private私有的 只能在本类中使用
注:这里的包相当于文件夹,根据要求把文件统一整理到一个文件夹中方便管理和使用。
修饰符:1、用于限定方法的调用方式。
static修饰的方法,在类加载的时候执行,类只加载一次所以被其修饰的方法只执行一次。可以通过类名调用和创建的对象调用
没有static修饰的方法,在创建对象的时候执行,创建一次执行一次(这里的执行是jvm执行,通过调用方法观察执行结果)。只能通过创建的对象调用

2、用于限定方法能否被重写
final修饰的方法,在子类中不能被重写
返回值:
1、无返回值用void表示
2、方法返回基本数据类型的数据,方法中返回数据的类型必须是所属返回值类型或精度更高的数据类型。
  方法返回引用数据类型的数据,方法中返回数据所属的数据类型或其父类。
注意:返回值必须借用return关键字返回数据
      不能返回多个值
方法名:遵循标识符命名规则,首字母必须大写,若多单词,第二个单词首字母大写
参数:若有多个参数,用逗号隔开,在整个方法内有效(相当于局部变量)。我相信肯定有人对重写和参数的作用有疑问,具体内容在下面的学习中会逐步详细说明的。
注意:方法不能套方法,不能在类中直接写程序逻辑代码
下面了解数组。
数组就是相同数据类型的数据按顺序组成的一种引用数据类型。
都知道数据类型包括基本数据类型和引用数据类型,基本数据类型的元素组成的数组也是引用数据类型,这里并不冲突。
比如说int [] a={1,2,3};a数组是引用类型,数组里存的基本类型的数据。而且a中只能存整型数据。
那么声明数组格式为:一维数组 数组元素数据类型 [] 数组名
   二维数组 数组元素数据类型 [][] 数组名
和定义变量一样,要使用数组就必须为其分配内存空间,也叫实例化。
实例化数组:申请一段连续的内存空间存储数组中的元素。
实例化数组有两种情况:
1、为数组分配内存空间时指明数组的长度
一维数组:数组名=new 数组元素数据类型[元素个数];
二维数组:数组名=new 数组元素数据类型[数组个数][每个数组元素个数];
2、穷举法实例化有两种方法
一维数组:数组元素数据类型 [] 数组名={元素1,元素2……};
 数组元素数据类型 []数组名=new 数组元素数据类型[]{元素1,元素2……};
二维数组:数组元素数据类型 [][] 数组名={{数组1中的元素},{数组2中的元素}……};
 数组元素数据类型 [][]数组名=new 数组元素数据类型[][]{{数组1中的元素},{数组2中的元素}……};
数组中的数据是通过数组名和数组下标来操作数据的,下标从0开始,通过下标来为元素赋值,获取元素值。

根据图可以看出,如果想浏览全部元素,挨个使用下标输出很麻烦,运用前面所学的方法对数组进行遍历,有两种方式遍历数组
1、传统for循环遍历数组
一维数组:
public class Text {

public static void main(String[] args) {
int [] a={1,2,3};//实例化数组
for(int i=0;i<a.length;i++){//a.length获取数组长度
System.out.println(a[i]);//输出数组下标表示的数据
}
}
}
二维数组:
public class Text {

public static void main(String[] args) {
int [][] a={{1},{2},{3}};//实例化数组
for(int i=0;i<a.length;i++){//获取二维数组的长度为3
int [] b=a[i];//把遍历出来的数组的地址指向变量名为b的数组
for(int j=0;j<b.length;j++){
//对数组b进行遍历等同于对一维数组的遍历
System.out.println(b[j]);
}
}
}
}
2、加强for循环
一维数组:public class Text {

public static void main(String[] args) {
int [] a={1,2,3};//实例化数组
for(int data:a){
System.out.println(data);
}
}

}


二维数组:public class Text {

public static void main(String[] args) {
int [][] a={{1},{2},{3}};//实例化数组
for(int []b:a){
for(int data:b){
System.out.println(data);
}
}
}

}
下面介绍数组中很重要的知识点,排序。
冒泡排序:通过循环遍历元素并调整相邻元素顺序来实现的一种简单排序方法。
通过数组排序升序例子介绍
package a3;


public class Text {

public static void main(String[] args) {
int [] array={11,42,3,20,15};//实例化数组
for(int loopTime=1;loopTime<array.length;loopTime++){
//设置内部循环的次数
for(int i=0;i<array.length-loopTime;i++){//array.length-loopTime为减少多余循环次数优化了代码
int currentArray=array[i];//遍历当前元素
int nextArray=array[i+1];//遍历当前元素的下一个元素
//冒泡排序是比较相邻两个数的大小
if(currentArray>nextArray){
//判断相邻两个数如果当前数比下一个数大的话,交换这两个数的存储位置
array[i]=nextArray;
array[i+1]=currentArray;
}
}
}
for(int data:array){
System.out.println(data);
}
}

}
插入排序:每循环一次将一个待排序的元素所对应的数据按其顺序插入到前面一排序后的合适的位置,直到全部插入为止。
三步:1、查找待插入数据应该插入的下标位置
      2、元素后置
      3、将待插入数据插入到应该插入的下标位置
package a3;


public class Text {

public static void main(String[] args) {
int [] array={11,42,3,20,15};//实例化数组
for(int i=1;i<array.length;i++){//设第一个元素为有序元素,所以从下标为1开始寻找待插入元素
int willArray=array[i];//定义待插入元素
int j=0;
for(;j<i;j++){//查找待插入数据应该插入的下标位置
if(willArray<array[j]){
break;
}
}
if(i==j){//优化代码,若i=j,不用排序,直接进入下次循环
continue;
}
for(int k=i;k>j;k--){//元素后置
array[k]=array[k-1];
}
array[j]=willArray;//将待插入数据插入到应该插入的下标位置


}
for(int data:array){
System.out.println(data);
}
}

}
还可以使用java中定义好的类中的排序方法,可以直接使用。
Arrays类中sort方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值