通过对Java的初步学习,我总结出了一部分知识点,内容比较粗略,仅为笔记之类的东西,之后的日子里会通过对Java的不断学习,不断总结新的知识点,欢迎各路大佬们来点拨。(๑¯∀¯๑)
十五、数组
1.数组的定义
数组是相同类型数据的有序集合,描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个下标来访问它们。数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
注:
(1)长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
(2)其元素必须是相同类型,不允许出现混合类型。
(3)数组类型可以是任何数据类型,包括基本类型和引用类型。
2.数组的声明
格式(四种):
int[] arr = new int[5];
int arr[] = new int[5];
int[] arr = new int[]{3,1,2,5,6}
int[] arr = {3,1,2,5,6}
注:构造一个数组时,必须指定长度。
3.数组的初始化
(1)静态初始化
用new关键字来定义数组,还可以直接在定义数组的同时就为数组元素赋值。
例:
int[] arr = { 1, 2, 3 };
(2)动态初始化
定义数组和为数组元素赋值分开进行。
例:
int[] arr = new int[2];
arr[0] = 1;
arr[1] = 2;
(3)数组的默认初始化
数组属于引用类型,它的元素相当于类的实例变量,当数组被分配空间时,其中的每个元素也被按照实例变量同样的方式被初始化。
例:
int arr[] = new int[2];
boolean[] b = new boolean[2];
String[] c = new String[2];
4.多维数组
多维数组可以看成以数组为元素的数组。
(1)二维数组的声明
例:
int[][] a = new int[3][];
a[0] = new int[2];
a[1] = new int[4];
a[2] = new int[3];
(2)二维数组的静态初始化
例:
int[][] a = { { 1, 2, 3 }, { 3, 4 }, { 3, 5, 6, 7 } };
System.out.println(a[2][3]);
5.冒泡排序
原理:
(1)比较相邻的元素,如果第一个比第二个大,就交换他们两个。
(2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,最后的元素应该会是最大的数。
(3)除了最后一个,针对所有的元素重复以上的步骤,直到没有任何一对数字需要比较。
十六、面向对象
1.面向对象和面向过程的联系
面向过程和面向对象都是对软件分析、设计和开发的一种思想,它指导着人们以不同的方式去分析、设计和开发软件。早期先有面向过程思想,随着软件规模的扩大,问题复杂性的提高,面向过程的弊端越来越明显的显示出来,出现了面向对象思想并成为目前主流的方式。两者都贯穿于软件分析、设计和开发各个阶段,对应面向对象就分别称为面向对象分析、面向对象设计和面向对象编程。C语言是一种典型的面向过程语言,Java是一种典型的面向对象语言。
面向对象具有三大特征:封装性、继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能。所以面向对象优势更明显。
面向对象可以帮助我们从宏观上把握、从整体上分析整个系统。 但是,具体到实现部分的微观操作(就是一个个方法),仍然需要面向过程的思路去处理。我们不能把面向过程和面向对象对立起来,他们是相辅相成的,面向对象离不开面向过程。
注:
(1)都是解决问题的思维方式,都是代码组织的方式。
(2)解决简单问题可以使用面向过程
(3)解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程。
2.类和对象的关系
(1)对象是具体的事物;类是对对象的抽象。
(2)类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
(3)类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。
3.类的定义
例:
public class student {
int id;
String name;
int age;
void study(){
System.out.println("好好学习,天天向上!");
}
student(){
}
}
注:每一个源文件只能有一个public class,并且类名和文件名保持一致!
4.属性(成员变量)
属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。
在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。
5.方法
方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象,类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。
格式:
[修饰符] 方法返回值类型 方法名(形参列表) {
Java语句;
}