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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

12.16

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 12.16 初级黑马   /  2018-4-3 22:21  /  1073 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

day04:
随机数(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....){
        方法体;

        reture 返回值;

    }

import java.util.Scanner;
public class Demo01 {
     public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          System.out.println("请输入第一个数据");
          int x = sc.nextInt();
          System.out.println("请输入第二个数据");
          int y = sc.nextInt();
          int a = sum(x,y);
          System.out.println(a);            
     }
     public static int sum(int a,int b){
          int max;
          if(a > b){
              max = a;
          }else{
              max =b;
          }
          return max;
     }
}


void修饰的方法只能单独调用

当方法中没有任何内容需要返还给调用者时,用void修饰返还值类型
方法重载:在同一个类中,参数列表不同,于返回值无关


参数类别不同:  
    参数个数不同

    参数对于的数据类型不同

注意:
    在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法



day06


面向对象的编程

    面向过程:  

        强调的是每一步功能的步骤

    面向对象:

        强调的是对象,然后由对象去调用功能


面对对象的思想特点
    A: 是一种更符合我们思考习惯的思想

    B: 可以将复杂的事情简单化

    C: 将我们从执行者变成了指挥者



Java语言最基本的单位是类,所以,我们在后面的学习过程中,是通过类来体现现实世界事物


事物: 包含 属性 和 行为
属性:
        事物的描述信息(事物身上的名词)

        汽车: 轮胎数量,颜色

行为:
        事物能够做什么(事物身上的动词)

        汽车: 跑


类:
        成员变量

        成员方法



成语变量: 和我们前面学习过的变量的定义是一样的
        位置不同: 类中,方法外

        初始化值: 不需要给初始化值



public class Student{
     String name;
     int age;
     public void study(){
          System.out.println("好好学习,天天向上");
     }
     
     public void eat(){
          System.out.println("学习饿了要吃饭");
     }
}



public class Demo {
     public static void main(String[] args) {
          Student s = new Student();
          s.name = "林青霞";
          s.age = 23;
          System.out.println(s.name);
          System.out.println(s.age);
          s.eat();
          s.study();
     }
}

1 个回复

倒序浏览

越努力越幸运
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马