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();
}
} |
|