二维数组
在数组中定义数组,第二维数组是第一维数组的每一个数据。
定义:
动态:
数据类型[][] 数组名 =new 数据类型[外层一维的长度][内层二维的长度]
数据类型 数组名[][] = new 数据类型[外层一维的长度][];
静态:
数据类型[] 数组名[] = new 数据类型[][]{{1,2,3},{4,5}…};
数据类型[] 数组名[] ={{1,2,3},{4,5}…};
二维数组的使用方式:
数组名[一维][二维]
遍历:
循环嵌套
普通循环和增强for相互嵌套
定义和遍历
普通的for循环遍历:
public static void test() {
int[][] arr=new int[2][3];
arr[0][0]=1;
arr[0][1]=2;
arr[0][2]=3;
arr[1][0]=4;
arr[1][1]=6;
for (int i = 0; i < arr.length; i++) {
for (int ch:arr[i]) {
System.out.println(ch);
}
}
}
Arrays :封装了一些用来操作数组的常用功能
1.导包 java.util包下的Arrays,需要导包
2.Arrays.功能名字()
类外要导包
import java.util.Arrays;
public static void test1() {
int[] arr1=new int[]{1,5,5,6,4,8};
int[] arr2=new int[]{1,3,2,5,8,4,6,7};
//需求:想要在打印数组名的时候,可以给打印数组中的所有内容
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));
//比较两个数组中所有的数据是否相同
System.out.println(Arrays.equals(arr1, arr2));
//排序: static void sort(int[] a) 对指定的 int 型数组按数字升序进行排序
System.out.println(Arrays.toString(arr1));
Arrays.sort(arr1);
System.out.println(Arrays.toString(arr1));
}
还有很多其他的功能,感兴趣可以了解
Java中的面向对象
一.面向对象,面向过程的区别?
面向对象,面向过程是一种思想,思维方式
面向过程: 关注"者这件事情的实现步骤?|应该如何实现?"然后一步一步实现就可以了
面向对象:关注"我应该找谁来完成这件事情?"他如何实现,我们不关注,只关注这个对象
列如:老师教一个同学扫地,打扫卫生。那么老师就是只关注学生这个对象,而学生只关注怎么去扫地,只关注过程。
二,面向对象的优点:
1.将复杂的问题简单化
2.面向对象更符合现实生活中的管理者的角度,面向过程更符合执行者
3.面向对象更贴近于生活
面向对象依托面向过程
三.如何使用面向对象的思维方式进行编程:
类:一系列事物的共性|模板|图纸 对象:描述表示生活中的具体事物,根据类去创建对象
四.如何自定义类
定义类:考虑2个问题
1.这个自定义类有什么功能|这个自定义类能做什么?
动词|功能—成员方法定义功能
2.你要定义的类有什么属性|特点|特征?
名词|属性—成员变量
使用自定义的类:
1.导包
lang包下的内容不用导包
同包下的内容不需要导包
2.创建类型的引用|变量–创建对象 new关键字创建对象
数据类型 对象名|引用 = new 数据类型();
3.使用功能|属性
引用.功能名字();
引用.属性名
//创建以个自定以的手机类
public class Phone{
//手机的属性
public String color;
public String name;
public double money;
//方法
public void test01() {
System.out.println("打电话。。。。。");
}
}
手机类的测试类
//手机类的测试
public class Test02 {
public static void main(String[] args) {
//创建一个手机对象,new就是创建一个对象。
Phone ch=new Phone();
ch.color="白色";
ch.money=10000;
ch.name="小米";
System.out.println(ch.name);
System.out.println(ch.color);
System.out.println(ch.money);
ch.test01();
}
}
new 做的3件事情:
1.堆为对象开辟空间,成员变量会跟随对象进入到堆内存中
2.调用类型的构造器,为对象初始化信息
3.将地址返回给引用
构造器|构造函数|构造方法:特殊的方法
作用:为对象初始化信息 (对象的成员属性赋值)
定义:
修饰符 类名(参数列表){
…
}
注意:
1.构造器没有返回值类型,没有void
2.构造器的名字要与类名保持一致
3.可以有return,不写return,但是不能返回数据,只能提前结束方法的作用
4.没有显示定义构造器,编译器会默认提供一个空构造
5.如果有显示定义任何构造器,编译器就不会为你提供任何构造器
6.构造器无法通过其他方式调用,只能跟随new一起使用
7.构造器不能和abstract,final,static一起使用
以后在写自定义模板类时候,一般都存在空构造,按需添加带参构造和使用