从零开始学java(17)--- 冒泡排序和二维数组

Day7

今天了解了一下冒泡排序和二维数组 ,着重学习了java中类与方法的初步构建。

1.冒泡排序:

从底部找到两个相邻的元素,比较,找到较小的,往上放 经过一次交换,最小的就在最上面
示例:

public class BubbleSort {

	public static void main(String[] args) {
		int[] nums = { 1, 5, 8, 3, 4, 5, 10 };
		for (int i = 0; i < nums.length - 1; i++) {
			for (int j = 0; j < nums.length - i - 1; j++) {
				if (nums[j] > nums[j + 1]) {
					int temp = nums[j];
					nums[j] = nums[j + 1];
					nums[j + 1] = temp;
				}
			}
		}
		for (int num : nums) {
			System.out.print(num + " ");
		}
	}
}

2.二维数组

二维数组本质上是以数组作为数组元素的数组。
二维数组的元素是一维数组。

语法:

两种初始化形式

格式1:

数据类型 数组名 [ ][ ] = new 数据类型[m][n]
数据类型 [ ][ ] 数组名 = new 数据类型[m][n]:

举例:

int [ ][ ]  arr=new  int [5][3];  //也可以理解为“5行3例”

格式2:
数据类型 [ ][ ] 数组名 = {{元素1,元素2…},{元素1,元素2…},{元素1,元素2…}…};
举例:

int [ ][ ]  arr={{22,15,32,20,18},{12,21,25,19,33},{14,58,34,24,66},};

格式3:
数据类型 [ ][ ] 数组名 = new 数据类型[m][ ]:

举例:

int[][] nums3 = new int[4][];//二维数组中定义四个一维数组,每个一维数组长度没有指定
nums3[0] = new int[] { 1, 2, 3, 4, 5, 6 };//必须要new
nums3[1] = new int[] {  2, 3, 4 };
.......

遍历:两个for循环
外循环可以使用索引,内循环使用foreach较为方便

3Java面向对象

1. 类与对象:

类是具有相同特点(属性和行为)的抽象模板,通过模板可以创建若干的对象

Java中,程序以类为单位。

先有类—》对象

创建对象的语法之一:
声明:声明一个对象,包括对象名称和对象类型
实例化:使用关键字new来创建一个对象
初始化:使用new创建对象时,会调用构造方法初始化对象
如:
Student stu=new Student();
new关键字用于创建对象,分配内存空间
Student():构造方法

类的组成:属性与方法

2.属性

如:

public class Student {
String name;
int age;
}

通过成员变量定义name 和age就是属性
在主函数中可以被调用:

public class StudentTest {
	public static void main(String[] args) {
		Student s1 = new Student();//实例化
		Student s2 = new Student();
		s1.name = "张三";
		s1.age = 12;
		s2.name = "李四";
		s2.age = 13;
		System.out.println(s1.name + s1.age);
		System.out.println(s2.name + s2.age);
	}
}

注意:
在静态方法中,不能直接访问非静态成员(包括方法和变量)。因为,非静态的变量是依赖于对象存在的,对象必须实例化之后,它的变量才会在内存中存在。例如一个类 Student 表示学生,它有一个变量String name。如果这个类没有被实例化,则它的 name 变量也就不存在。而非静态方法需要访问非静态变量,所以对非静态方法的访问也是针对某一个具体的对象的方法进行的。对它的访问一般通过 objectName.methodName(args……) 的方式进行。而静态成员不依赖于对象存在,即使是类所属的对象不存在,也可以被访问,它对整个进程而言是全局的。因此,在静态方法内部是不可以直接访问非静态成员的。

3.方法:封装可重复使用的代码

方法也放在对应的类中

声明语法:
返回值类型 方法名(参数列表){
方法体
}

形式1:无参无返回值
无返回值的情况下 返回值类型是void

形式2:有参无返回值
参数数量任意,多个参数以逗号分隔,声明时与变量声明类似;该参数也称为形式参数(形参)

形式3:无参有返回值
返回值类型不是void 应该是与方法体中return返回的数据保持兼容

形式4:有参有返回值

有参时参数一定要对应着传入,这种参数称为实际参数(实参)

4.考虑参数的有效性

Java语言与其他编程语言不同,它有严格的异常处理机制,如果需要抛出异常的代码块中没有捕获异常,程序将不会成功编译,换言之:未使用异常捕获、异常捕获方式不正确等,都将导致代码不能被jvm编译。

所以,在方法中就要对传入参数的各种情况进行考虑比如null。
根据场景可以返回合理的值或抛出异常。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值