学习目标:
- 学习Java
学习内容:
- Java中的内存分布
1.栈(Stack):存放都是方法中的局部变量,所有方法执行都是在栈中执行,例如main()
2.堆(Heap):所有new出来的,都存放在堆中
堆内存中的都有默认值:整数-------0
浮点数-----0.0
字符-------‘\u0000’
布尔-------false
引用类型----null3.方法区:存放class的方法信息
4.本地方法栈:与操作系统有关
5.寄存器:与cpu有关
- 数组元素反转
int[] arrayB = new int[]{1,5,6,78,8,1,2,6,54};
//数组B的反转
for (int i = 0; i < arrayB.length; i++) {
//改变顺序前数组
System.out.print(arrayB[i] + " ");
}
// 第一种写法
// int temp;
// for (int i = 0; i < arrayB.length/2; i++) {
// temp = arrayB[i];
// arrayB[i] = arrayB[arrayB.length-(i+1)];
// arrayB[arrayB.length-(i+1)] = temp;
// }
//第二种写法
int min2, max2, temp2;
//数组为单数,则min2 == max2,数组为偶数,则是min2>max2时交换完毕
for (min2 = 0, max2 = arrayB.length - 1; min2 < max2; min2++, max2--) {
temp2 = arrayB[min2];
arrayB[min2] = arrayB[max2];
arrayB[max2] = temp2;
}
for (int i = 0; i < arrayB.length; i++) {
//改变顺序后数组
System.out.print(arrayB[i] + " ");
}
- 当方法传递参数是数组/对象的时候,传递的其实是数组的地址,同理return返回的也是数字/对象的地址
- 面向对象的基本概念
面向过程:注重的是每一步的具体操作
面向对象:注重的是结果,过程尽量精简
- 类和对象:
类是属性和行为的集合,可以使用属性和行为概括描述该类事物
属性:所描述事物的状态信息
行为:该事物能够做什么
例如: 属性 姓名、身高、年龄…行为:跑、跳、睡觉…
对象:是类的实体表现,例如 人
- 类的代码实现
public class Student {
//成员变量(属性)
String name;//姓名
int age;//年龄
//成员方法
public void study() {
System.out.println("学习");
}
public void eat() {
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}
}
}
注意:类中的方法,无static,有static则为普通方法
- 对象的创建
类名称 对象名 = new 类名称();
- 对象的使用
使用成员变量:对象名.成员变量名;
使用成员方法:对象名.成员方法名();
Student stu = new Student();
stu.name = "张三";
stu.age = 20;
stu.eat();
stu.study();
stu.sleep();
- 使用对象类型作为方法的形参或返回值类型,传递的都是该对象的地址
- 局部变量与成员变量的区别
定义位置不一样
局部变量在方法内,成员变量在类内,方法的外部
作用范围不同
局部变量的范围在当前大括号开始到所属结束,成员变量在类中可以使用
默认值
局部变量没有默认值,使用前需要有初始值,成员变量有默认值
- 面向对象三大特性:封装、继承、多态
封装:
方法是一种封装
private是另一种封装,用户保护输入不合法数据
private String name;
private int age;
public int getAge(){
return age;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public void setName(String name){
this.name = name;
}
- private修饰的变量,只能在本类访问,外部无法访问,this是为了区别private修饰变量和()中形参局部变量重名问题
可以在setXxx中添加一切判断,组织不合法数据的进入
13.构造方法:通过new 类名字();来创建
在类中定义为修饰符 类名(参数列表){}
可以书写多个构造方法,例如无参和全参
方便在初始new时,更轻松的放入private修饰的变量
类名 变量名 = new 类名(参数…);
只能方便首次放入,后续读取需要用getter。后续更改也需要用稿setter方法。
14.继承:为了不同的避免代码存在重复,提取出不同代码相同部分,组成它们的父类,子类继承。
学习时间:
- 上午9:00 — 晚上9:00,观看视频P112