学习数组心得以及初识对象

本文深入探讨了Java编程中的多个实战案例,包括解决36人搬36石头问题的算法,冒泡排序的实现,以及杨辉三角的生成。通过这些实例,详细讲解了循环、数组、对象等核心概念的应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在调用函数阶段学习后,发现很多算式都是几个条件就能完成的,然后嵌套一下,达到目的,比如36人搬36石头的案例

public class HomeWork7{
 public static void main(String[] args){
  int a , b, c;
  for(a = 1 ; a <= 9;a++){
   for(b = 1 ; b <= 12;b++){
    c = 36 - a - b;//小孩的数量就是剩下的减去男人跟女人的数量
    if(c%2 == 0){
     if(4*a + 3*b + c/2 == 36){
      //列出方程式
      System.out.println("男:" + a);
      System.out.println("女:" + b);
      System.out.println("小孩:" + c);
     }
    }
   }
  }
 }
}

在对数组的实现熟悉后,就是一个个的循环,难点在于嵌套循环的次数,要尽量在脑子里演练,每次循环,函数做出的事情,以及循环次数的减少和增加,很容易绕进去,如果没有讲师的带领下,很难实践这个环节,讲的确实够仔细,尤其是在排序的时候,要自己亲自去实践一下。每一次循环的过程:

冒泡排序案例:

public class TestBubble{
 public static void main(String[] args){
  int[] nums = {1,3,2,7,5};
  
  //冒泡排序:相邻的两个数值比较大小,互换位置
  
  
  //轮次:数组长度-1
  //单论次数:逐级递减    (数组的长度-1)在这个基础上再逐级递减
  
  for(int i = 0;i < nums.length - 1;i++){
   //外层循环,控制比较轮次
   for(int j = 0;j < nums.length - 1 - i ; j++){
    //外层4次,内层的循环次数逐级递减
    //第一轮    i = 0   5-1-0   循环4次
    //第二轮    i = 1   5-1-1   循环3次
    //第三轮    i = 2   5-1-2   循环2次
    //第四轮    i = 3   5-1-3   循环1次
    if(nums[j] > nums[j+1]){ 
     int temp = nums[j];
     nums[j] = nums[j+1];
     nums[j+1] = temp;
    } 
   }
   
  }
  
  
  
  
  /*for(int j = 0;j < nums.length - 1 ; j++){
   if(nums[j] > nums[j+1]){ 
    int temp = nums[j];
    nums[j] = nums[j+1];
    nums[j+1] = temp;
   }
  }
  for(int j = 0;j < nums.length - 1 ; j++){
   if(nums[j] > nums[j+1]){
    int temp = nums[j];
    nums[j] = nums[j+1];
    nums[j+1] = temp;
   }
  }
  for(int j = 0;j < nums.length -1 ; j++){
   if(nums[j] > nums[j+1]){
    int temp = nums[j];
    nums[j] = nums[j+1];
    nums[j+1] = temp;
   }
  }
  for(int j = 0;j < nums.length - 1 ; j++){
   if(nums[j] > nums[j+1]){
    int temp = nums[j];
    nums[j] = nums[j+1];
    nums[j+1] = temp;
   }
  }
  */
  for(int i = 0;i < nums.length;i++){
   System.out.print(nums[i] + "\t");
  }
  System.out.println();
 }
}

杨辉三角这个案例,是在二维数组的基础上完成的,我做的方法简单,我是认为第n+1行的第i个数字等于第n行的i-1个数字加上第n行的i个数字。在满足这个条件的环节,注意第一列的数字都是1。
杨辉三角案例

public class Yang{
 public static void main(String[] args){
  int[][] array = new int[10][10];
  for(int i = 0;i < array.length;i++){
   for(int j = 0;j < i;j++){
    //每一行的开始和结尾数字都为1. 
    if(i == j || j == 0){
     array[i][j] = 1;
     
    }else{
     //第n+1行的第i个数字等于第n行的i-1个数字加上第n行的i个数字。
     array[i][j] = array[i-1][j-1] + array[i-1][j];
    }
    System.out.print(array[i][j]+"\t");
   }
   System.out.println();
  }
  
  
 }
}

初识对象之后,我学到了一句话,“在程序员眼中,万物都是对象”,也正式开始使用开发工具来编写代码,感觉方便了特别多,更想多了解有哪些快捷键,这是一个创建Student类的一个案例。

public class Student{
public static void main(String[] args){
//创建Xuesheng类型的对象,并保存在xue1变量当中
Xuesheng xue1 = new Xusheng();
//访问属性:为各个属性赋值
xue1.name = "Tom";
xue1.age = 20;
xue1.sex = "男";
xue1.score = 10.0;
//调用对象的方法
xue1.sayHi();
//创建Xuesheng类型的对象,并保存在xue2变量当中
xue2.name = "Anna";
xue2.age = 23;
xue2.sex = "女";
xue2.score = 100.0;
//调用对象的方法
xue2.sayHi();


}
}
Xuesheng{
String name;//名字
int age;//年龄
String sex;//性别
double score;//分数
//创建Xuesheng类里的sayHi方法
public void sayHi(){
System.out.println("你们好,我是"+ name + ",我今年"+ age+ "岁,我是一个温柔可爱无比善良的" + sex + "生,我的考试分数是:" + score)}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值