- break 和 continue关键字的使用
- break:适用范围:switch-case结构和循环结构
- 结束当前循环
- continue:适用于循环结构
- 结束当次循环
- 标签版break和continue
-
label:for(int i=1;i<=4;i++){ for(int j=1;j<=10;j++){ if(j%4==0){ break label;//结束指定标识的一层循环 } System.out.print(j); } System.out.println(); }
-
- break:适用范围:switch-case结构和循环结构
-
数组
-
定义:是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理
-
数组的常见概念
-
数组名
-
下标
-
元素
-
数组的长度
-
-
特点:数组是有序的
-
数组属于引用数据类型的变量,数组中的元素可以是基本数据类型,也可以是引用数据类型
-
创建数组对象会在内存中开辟一整块连续的空间
-
数组的长度一旦确定,不能修改
-
数组的分类
-
按照维数:一维数组、二维数组
-
按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组
-
-
一维数组的使用
-
一维数组的声明和初始化
-
int[] num; num=new int[3]; or num=new int[]{1,2,34}; or int[] num=new int[]{123,2,3};
-
-
如何调用数组的指定位置的元素
-
如何获取数组的长度
-
属性:length
-
System.out.println(XXX.length);
-
XXX为数组名
-
-
-
如何遍历数组
-
数组元素的默认初始化值
-
数组元素是整型:0
-
数组元素是浮点型:0.0
-
数组元素是char类型:空字符(0)
-
数组元素是boolean型:false
-
数组元素是String类型:null
-
-
数组的内存解析
-
栈:存放局部变量
-
堆:存放new出来的结构:对象、数组
-
方法区
-
常量池
-
静态域
-
-
-
-
-
多维数组的使用
-
对于二维数组的理解:我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在
-
二维数组的声明和初始化
-
静态初始化
-
int[][] arr=new int[][]{{1,2,3},{2,3},{1,2,3}};
-
-
动态初始化1
-
int[][] arr1; arr1=new int[3][2];
-
-
动态初始化2
-
int[][] arr2; arr2=new int[3][];
动态初始化的行数必须写清楚但是列数可以不用写
-
-
-
调用二维数组指定位置上的元素
-
二维数组的长度和遍历
-
获取数组的长度
-
System.out.println(arr4.length);//会输出行数 System.out.prinln(arr4[0].length);//输出对应行的列数
1
-
-
-
二维数组的元素初始化
-
规定:二维数组分为外层数组的元素,内层数组的元素
- 当数组没有进行初始化值的时候,System.out.println(arr[0]);的话会输出数组的首地址
-
int[][] arr1=new int[4][]; System.out.prinln(arr1[0]); //这种情况输出值为null,因为arr1只表明了有多少行,没有表明对应行有多少列,属于指针缺失的情况,即arr1[]里面的值是内层数据保存的地址,因为内层数据并没有定义,所以输出null
-
外层元素的初始化值:地址值
-
内层元素的初始化值:与一维数组初始化情况相同
-
-
二维数组的内存结构
-
-
数组中涉及到的常见算法
-
数组元素的赋值
-
求数值型数组中元素的最大值、最小值、平均数、总和等
-
数组的复制、反转、查找(线性查找、二分法查找)
-
数组元素的排序算法
-
-
面向对象
- 面向过程与面向对象
- 面向过程:强调的是行为功能,以函数为最小单元,考虑怎么做
- 面向对象:将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做
- 类(Class):类是对一类事物的描述,是抽象的、概念上的定义
- 面向对象程序设计的重点是类的设计
- 类的设计,其实就是类的成员的设计
- 对象(Object):对象是实际存在的该类事物的每个个体,因而也称为实例(instance)
- 类和对象的使用
- 创建类,设计类的成员(属性)
- 创建类的对象(在main方法中)--对象可以创建多个
- 通过“对象.属性“或”对象.方法“调用对象的结构
- 如果创建了一个类的多个对象,则每个对象都独立的拥有一套类的属性:如果我们修改一个对象的属性a,则不影响另一个对象的属性a。但是如果指定一个新的对象=一个旧的对象(即将旧对象的地址赋值给新对象,导致两个对象指向了堆空间中的同一个对象实体),则这两个对象完全合成微一个对象,改变新对象的属性a同时也会改变旧对象的属性a
- 对象的内存解析
- 堆:此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。(横着的、new的都在堆里)
- 栈:是指虚拟机栈。用于存储局部变量等。(竖着的)
- 方法区:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据
- 类(Class):类是对一类事物的描述,是抽象的、概念上的定义
-
JAVA类及类的成员
-
属性
-
对应类中的成员变量
-
属性和局部变量的区别
-
相同点:
-
定义变量的格式:数据类型 变量名=变量值
-
先声明,后使用
-
变量都有其对应的作用域
-
-
不同点:
-
在类中声明的位置的不同
-
属性:直接定义在类的一对{}中
-
局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
-
public class UserTest{ } class User{ //下面三种为属性 int num; String name; boolean gender; public void talk(String language){ //下面的language为局部变量 System.out.prinln("we use "+language); } }
1
-
-
关于权限修饰符的不同
-
属性:可以在声明属性时,指明其权限,使用权限修饰符。常用的权限修饰符:private/public/缺省/protected。-->封装性
-
局部变量:不可以使用权限修饰符
-
-
默认初始化值
-
属性:根据其数据类型都有默认初始化值
-
局部变量:没有默认初始化值,一定要事先初始化
-
-
在内存中加载的位置
-
属性:加载到堆空间中
-
局部变量:加载到栈空间
-
-
-
-
-
方法
-
对应类中的成员方法(函数)
-
用来描述类应该具有的功能
-
方法的建立
-
方法的声明
-
权限修饰符 返回值类型 方法名(形参列表){方法体}
-
-
说明
-
关于权限修饰符:private\public\缺省\protected
-
返回值类型:有返回值 vs 无返回值
-
如果方法有返回值,则必须在方法声明时,指定返回值的类型,同时方法中需要使用return关键字来返回指定类型的变量或者常量
-
如果方法没有返回值,则方法声明时,使用void来表示
-
-
方法名:属于标识符,遵循标识符的规则和规范,xxxYyy
-
形参列表:方法可以声明一个或者多个形参
格式:数据类型1 形参1,数据类型2 形参2,
-
- 注意
- 可以调用当前类中的方法和属性
- 方法里面不可以定义新的方法
-
-
-
构造器
-
代码块
-
内部类
-
-
面向对象的特征
-
封装性
-
继承性
-
多态性
-
抽象性
-
-
其他关键字
- 面向过程与面向对象
Java Day05
最新推荐文章于 2024-06-14 15:02:13 发布