A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

zhuxiaofei

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© zhuxiaofei 初级黑马   /  2018-4-3 11:13  /  683 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

da'y04
随机数(random):用于产生随机数的
使用步骤:
  A.导包
   import java.util.Random;
  B.创建对象
   Random r = new Random();
  C.获取随机数
   int number = r.nextInt(10);
   获取数据的范围:[0,10) 包括0,不包括10
--->其实Random跟Scanner用法是一样的

return:跳出方法
break:跳出这个循环


数组是存储同一种数据类型的多个元素的容器

定义格式:
A.数据类型[] 数据名;--->推荐这个
B.数据类型 数组名[];

举例:
  int[] arr;定义了一个int类型的数组,数组名是arr
  int arr[];定义了一个int类型的变量,变量名是arr数组
  
  
数组的初始化:
A.所谓的初始化,就是为数组开辟内存空间,并为数组中的每个元素赋予初始值
B.我们有2种方式可以实现数组的初始化
  a:动态初始化  只给出长度,由系统给出初始化值
  b:静态初始化  给出初始化值,由系统决定长度

动态初始化:
数据类型[] 数组名 = new 数据类型[数组长度];  //数组长度就是数组中元素的个数

静态初始化的格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
举例:
  int[] arr = new int[]{1,2,3};
简化格式:
  数据类型[] 数组名 = {元素1,元素2,元素3...};
  int[] arr = {1,2,3};
  注意:简写形式有局限性
   局限性:数组的声明与赋值分开写的时候,简写形式行不通了
   举例:
    int[] arr;
    arr ={10,20,30}; //这里编译失败
   
2个常见小问题:
  ArrayIndexOutOfBoundsException:数组索引越界异常
    产生的原因:我们访问了数组中不存在的索引对应的元素造成的
  NullPointerException :空指针异常
    产生的原因:由于数组的引用不再指向原来堆里面所对应的实体了,而是被重新赋值为null,如果再用这个引用去访问实体中的元素时,就会发生该异常.
   
数组的遍历(获取数组的元素) :
int[] arr = new int[5];
for(int i = 0; i < arr.length; i++) {  //i表示数组的索引,而索引是从0开始计算的,并且索引最大值是arr.length
  System.out.println(arr);  //arr表示数组中的每一个元素
}
  

java内存分配:
   栈: 存储的是局部变量(局部变量就是定义在方法中的变量)
    使用完毕立即回收
   
   堆:存储的是new出来的东西,实体,对象
    A:每一个对象都有地址值
    B:每一个对象的数据都有默认值
      byte,short,int,long 默认值是0
      float,double 默认值是 0.0
      char 默认值是'\u0000'
      boolean默认值是false
      引用类型 默认值是 null
    C:使用完毕后,会在垃圾回收器空闲的时候被回收
   
   
   
二维数组:一个元素为一维数组的数组
****二维数组配合索引可以获取到每一个一维数组
****每一个一维数组配合索引名可以获取到组中的元素
****举例:arr[索引][索引]  ---->可以拿到二维数组中的元素

定义格式:数据类型[][] 数组名
初始化:
  A:动态初始化
   数据类型[][] 数组名 = new 数据类型[m][n];
   m表示的是二维数组中一维数组的个数
   n表示的是一维数组中的元素个数
  B:静态初始化
   数据类型[][] 数组名 = new 数据类型[][]{{元素...},{元素...},{元素...}...};
   简化格式:
   数据类型[][] 数组名 = {{元素...},{元素...},{元素...}...};
   
如何获取二维数组中的元素呢?
  int[][] arr = {{1,2,3},{4,5,6},{7,8,9}}
  System.out.println(arr[0][0]);  //1
  
  
二维数组的遍历
  依次获取二维数组中的每一个元素



day05
方法(函数):完成某种特定功能的代码
方法定义分为两部分: 声明  ,实现
  声明:大括号前边的内容全部叫做声明
  修饰符 返回值类型 方法名(参数类型 参数1,参数类型 参数2...)
   小括号的内容又被称之为形式参数,小括号的内容可以简单理解在声明某个变量,如 int a
方法的定义位置:
   类中,任何方法的外部

定义格式:
  修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2...) {
   方法体;
   return 返回值;
  }
  格式解释:
   A:修饰符  目前记住public static
   B:返回值类型 根据返回值而定
   C:方法名  为了方便我们调用方法的名字(见名知意)
   D:参数类型  用于限定调用方法时传入的数据类型
   F:方法体  完成功能的代码
   G:return 结束方法,并且把返回值带给调用者
  

编写方法有2个明确:
  A:明确返回值类型 (根绝返回值的具体类型而定)
  B:明确参数列表  明确有几个 参数,以及参数的数据类型
案例:
  写一个方法用于求和


*****方法的调用:(有明确返回值的方法调用)
    A:单独调用是没有意义的
    B:输出调用,有意义,但是不够好,因为我可能需要拿结果进行进一步的操作
    C:赋值调用
   
   
void:
当方法中没有任何内容需要返还给调用者时,那么该方法的返回值类型就应该用void
方法返回值如果是void类型时,如果方法体内部没有书写return,系统会为我们默认添加一个return,表示结束该方法
   
   
   
方法重载: 在同一个类中,出现了方法名相同的情况.---->不能出现方法名相同,并且参数列表也相同
  特点:
   方法名相同,参数列表不同
   参数列表不同:
     参数的个数不同
     参数对应的数据类型不同
注意:
  在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法
     
     
如果方法的参数是基本数据类型
  形式参数的改变不影响实际参数
  
如果参数是引用数据类型:
形式参数的改变直接影响实际参数

形参:方法声明上定义的变量(int a,int b)
实参:
实参是基本数据类型的值时,形参的改变无法影响实参的值
实参是引用数据类型的值时,形参的改变可以影响实参的值

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马