目录
1.java中的方法
main方法==c语言main函数 都是用来启动程序的,一个程序就只需要一个main方法
在c语言中称为函数,在面向对象的语言中称为方法
方法: 用来解决某一个问题的代码集合,可以被多次调用.
定义方法的语法:
[访问权限修饰符 public, 修饰符static] [方法返回值] 方法名([参数列表 参数类型 参数名]){
方法体
[return 值]
修饰符:这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
形式参数: 在方法被调用时用于接收外界输入的数据。
实参:调用方法时实际传给方法的数据。
返回值:方法在执行完毕后返还给调用它的环境的数据。
返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型
void
/*
定义一个无参,无返回值的方法
public static是固定写法
void表示此方法没有返回值
hello方法名
()参数列表 可以为空
{
System.out.println("你好"); 方法做的事情
}
方法定义好之后,不会自己执行,需要通过方法名进行调用
问好的方法
*/
public static void hello(){
System.out.println("你好");
}
public static void main(String[] args) {
//"张三" 称为实际的参数-->实参
Method2.hello("张三",20);
String n = "李四";
Method2.hello(n,30);
}
/*
(String 数据类型 name参数的名字,可以自定义,本质就是一个变量)
*/
public static void hello(String name,int age){
System.out.println("你好"+name+" 年龄:"+age);
}
/*
有参数,有返回值的方法
int -->定义的是方法的返回值类型
通过return关键字返回方法处理后的结果. 一个是终止方法,一个是返回结果
*/
public static void main(String[] args){
int m=max(10,5);
System.out.println(m);
}
public static int max(int a,int b){
int max = (a>b)?a:b;
return max;
}
2.数组
1.一维数组
1.一维数组的声明与创建
数组是相同数据类型元素的集合。
数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,也可以存储引用数据类
数组的声明的两种方式:
1. 数据类型 [] 数组名字 例如:int [] a;
2. 数据类型 数组的名字 [] 例如: int a [];
数组创建的三种方式:
1. 声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认
的初始化值
int[] ary0 = new int[10];
2.声明数组并分配内存,同时将其初始化
int[] ary1 = new int[]{1, 2, 3, 4, 5};
3. 与前一种方式相同,仅仅只是语法相对简略
int[] ary2 = {1, 2, 3, 4, 5};
从另一个角度,数组创建可以分为动态和静态两种
•
动态创建数组(没有为元素赋值,可以结合
for
循环进行赋值)
char[] chAry = new char[10];
•
静态创建数组,在创建的时候,即为每个元素赋初值
int[] ary1 = new int[]{1, 2, 3, 4, 5};
2.数组的访问与迭代
数组中元素的访问 (1.给每个位置上的元素进行赋值,2.获取某个位置上的值)
a[0]: [0]数组元素的索引, 数组中有length个空间,每个空间都有一个编号,通过编号,就可以访问对应位置的元素.
索引(下标), 每个空间的编号
编号始终是从0开始,最大编号是长度-1,是int类型(数组长度是有限的);
public static void main(String[] args) {
int[] a = new int[]{1,2,3,4,5}; //[0,0,0,0,0]
// 0 1 2 3 4
a[0] = 10; //对数组中的某个位置进行赋值
System.out.println( a[0] ); //获取数组中的某个位置的值
System.out.println( a[1] );
System.out.println( a[4] );
//System.out.println( a[6] );//数组索引不能超出正常的一个范围 0---数组长度-1,超出范围就会报错
/*
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at day1.Demo2.main(Demo2.java:20)
*/
System.out.println("数组的长度"+a.length);
}
数组迭代的两种方式:
第一种:for循环
int [] b1 = new int []{1,2,3,4,5,6,7};
数组的迭代
for(int i =0;i<b1.length;i++){
System.out.println(b1[i]);
}
第二种:增强for循环
int [] b1 = new int []{1,2,3,4,5,6,7};
for(数组元素的类型 临时变量名字 :数组的名字){
System.out.println(临时变量名字 );
}
即:
for(int x:b1){
System.out.println(x);
}
public static void main(String[] args) {
/*
数组元素遍历,迭代
取出数组中每个空间中的元素. 找出数组中有没有某个元素,最大值,最小值. 排序
方式1: 使用for循环
索引: 0 -- 数组长度-1 数组名.length
通过for循环生成有效的数组索引
*/
int[] a = {1,2,3,4,5,6,7};
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
/*
方式2: 增强for循环
简化了for循环的语句
for(int t(声明一个变量,变量类型与数组中数据类型一致) : a (需要遍历的数组名)){
输出t 每次循环时,从数组中取出一个元素,赋给变量t, t就是每次获取到元素
}
主要用于对数组中所有的元素进行遍历,不是用来替代for循环
*/
int[] a = {1,2,3,4,5,6,7};
for(int t : a){
System.out.println(t);
}
//找出数组中的最大值.
int max = 0;
for (int i = 0; i < a.length; i++) {
if(a[i]>max){
max = a[i];
}
}
System.out.println(max);
}
3.数组的排序
1.冒泡排序
*
冒泡排序:
每次取出相邻的两个元素进行比较,将较大的向后移动,
每一趟找到了一个最大值放到最后
int t = 5
int[] a = {5,4,3,2,1}
4 3 2 1 5 第一趟 最大值 5 移动到最右边
3 2 1 4 5 第二趟
2 1 3 4 5 第三趟
1 2 3 4 5 第四趟
比较4趟 每一趟取出相邻的两个元素进行比较
*/
public static void main(String[] args){
int [] a={5,4,3,2,1};
for(int i=0;i<length-1;i++){
for(int j=0;j<length-1-i;j++){
if(a[j]>a[j+1]){
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(int x:a){
System.out.println(x);
}
}
2.选择排序
/*
选择排序
假设从第一个元素开始 与 后面的每一个元素进行比较,
如果后面的元素大于第一个元素,交换两者的位置
3 1 2 5 4
1 3 2 5 4
1 2 3 5 4
1 2 3 5 4
1 2 3 4 5
*/
public static void main(String[] args) {
int[] a = {3,1,2,4,5};
for (int i = 0; i < a.length-1; i++) {
for(int j=i+1;j<a.length;j++){
if(a[i]>a[j]){
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
System.out.println(Arrays.toString(a));
}
2.二维数组
1.二维数组的声明和创建
二维数组的定义:
数组的数组---二维数组的每一个元素是一个一维数组
例如:
int [][]a = {{1,2,3},{1,2,3},{1,2,3}};
数组创建
int [][]a = new int[][]{{1,2,3},{1,2,3},{1,2,3}};
int [] [] b = {{1,2,3},{1,2,3},{1,2,3}};
int [][] c = new int[3][5];
int[][] arr = new int[3][5];---定义了一个整型的二维数组 ,这个二维数组有3
个一维数组,每一个一维数组包含5个元素
2,二维数组的迭代
public static void main(String[] args) {
int[][] a = new int[][]{{1,2,3,4},
{1,2,3,4},
{1,2,3,4}};
/*
二维数组遍历
使用双层循环
*/
for (int i = 0; i < a.length ; i++) {//遍历二维数组
for (int j = 0; j <a[i].length ; j++) {//遍历一维数组
System.out.print(a[i][j]+" ");//取出一维数组中的每一个元素
}
System.out.println();
}
}