day3练习

复制代码

数组的特点


  • 数组是有序排列的


  • 数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型

  • 创建数组对象会在内存中开辟一整块连续的空间

  • 数组的长度一旦确定,就不能修改。


数组的分类


  • 按照维数:一维数组、二维数组、。。。

  • 按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组


 面向过程编程


面向过程(Procedure Oriented Programming)是一种以过程为中心的编程思想。这些都是以什么正在发生为目标进行编程。


特性:模块化 流程化


优点:性能比面向对象高, 因为类调用时需要实例化,开销比较大,比较消耗资源;单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。


缺点:没有面向对象易维护、易复用、易扩展


面向对象编程


面向对象(Object Oriented Programming )是按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。


特性:抽象 封装 继承 多态


优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。


缺点:性能比面向过程低


关系
  • 类是对一类事物的描述,是抽象的

  • 对象是一类事物的实例,是具体的

  • 类是对象的模板,对象是类的实体


package
Demo1.JavaSe.NeusoftEdu.zuoye; import java.util.Arrays; import java.util.Collections; import java.util.List; /** * @program: FirstDemo * @description: 第三天 * @author: GuoTong * @create: 2020-08-13 10:51 **/ public class day3 { public static void main(String[] args) { int a = 1; int b = 2; System.out.println("基本类型:值传递function数据交换开始"); System.out.println(a); System.out.println(b); change(a, b); System.out.println("基本类型:值传递function数据交换后"); System.out.println(a); System.out.println(b); } private static void change(int a, int b) { int temp = a; b = a; a = temp; } } class ArrayByAdress { public static void main(String[] args) { int[] arr = {1, 3, 5}; /* List ints = Arrays.asList(arr); Collections.reverse(ints);//反转 Object[] array =new Object[3]; ints.toArray(array);*/ System.out.println("数组引用数据类型:地址传递-->前"); System.out.println(arr[0]); change(arr); System.out.println("数组引用数据类型:地址传递-->后"); System.out.println(arr[0]); } public static void change(int[] arr) { arr[0] = 200; } } class TwoArray { public static void main(String[] args) { int[][] twoArr = {{3, 5, 8}, {12, 9}, {7, 10, 6, 4}}; int sum = 0; for (int i = 0; i < twoArr.length; i++) { for (int j = 0; j < twoArr[i].length; j++) { sum += twoArr[i][j]; } } System.out.println(sum); } } class YHSJ_1 { public static void main(String[] args) { int rows = 10; for (int i = 0; i < rows; i++) { int number = 1; // 打印空格字符串 System.out.format("%" + (rows - i) * 2 + "s", ""); for (int j = 0; j <= i; j++) { System.out.format("%4d", number); number = number * (i - j) / (j + 1); } System.out.println(); } } } class YHSJ_2 { public static void main(String[] args) { int[][] arr = new int[10][]; for (int i = 0; i < arr.length; i++) { arr[i] = new int[i + 1]; } for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { if (j == 0 || i == j) { arr[i][j] = 1; } else { arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1]; } } } for (int i = 0; i < arr.length; i++) { int num = (arr.length - i) / 2; for (int k = 0; k <= num; k++) { System.out.print("\t"); } for (int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j] + "\t"); } System.out.println(); } } } class Student { //成员变量 public String name; public int age; public String major;//专业 public String interests;//爱好 //成员方法 public void say() { System.out.println("姓名:" + name + ";"); System.out.println("年龄:" + age + ";"); System.out.println("专业:" + major + ";"); System.out.println("爱好:" + interests + ";"); } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + ", major='" + major + '\'' + ", interests='" + interests + '\'' + '}'; } } class Teacher { //成员变量 public String name; public int age; public int teacherAge; public String course; //成员方法 public void say() { System.out.println("姓名:" + name + ";"); System.out.println("年龄:" + age + ";"); System.out.println("任教年数:" + teacherAge + ";"); System.out.println("科目:" + course + ";"); } @Override public String toString() { return "Teacher{" + "name='" + name + '\'' + ", age=" + age + ", teacherAge=" + teacherAge + ", course='" + course + '\'' + '}'; } } class TestClass { public static void main(String[] args) { Student student = new Student(); student.name = "王尼玛"; student.age = 32; student.major = "土木工程"; student.interests = "打麻将"; student.say(); System.out.println(student.toString()); Teacher teacher = new Teacher(); teacher.name = "王尼玛"; teacher.age = 32; teacher.teacherAge = 10; teacher.course = "数学"; teacher.say(); System.out.println(teacher.toString()); } } class yangHuiSanJiao { public static void main(String[] args) { int row = 10;//行数 int[][] yanghui = new int[row][row];//6行6列数组 for (int i = 0; i < row; i++){// for(int j = 0;j<= i;j++){// if (j==0 || j==i){ yanghui[i][j]=1; }else{ yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j]; } System.out.print(yanghui[i][j]+" "); } System.out.println(); } } }


复制代码

工具类Arrays:

 

二分查找:

 

 

    • 方法的参数为基本类型时,传递的是数据值。

    • 方法的参数为引用类型时,传递的是地址值。

    • 对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组。

  •  

     

  • 数组的元素默认初始化值

    • 数组元素是整型:0

    • 数组元素是浮点型:0.0

    • 数组元素是char型:0'\u0000',而非'0'

    • 数组元素是boolean型:false

    • 数组元素是引用数据类型:null

 

posted on   白嫖老郭  阅读(82)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示