1.数组的语法
int [] array;
//初始化
int [] array={…}//一旦确定数组,不支持修改数组
int [] array=new int []{…}//构造匿名数组
int [] array=new int [数组大小];//动态构造数组
int [] array=null;//并没有定义一个数组,只是定义了一个变量
数据依据下标访问 [0,array.length)
array.length是指数组元素的个数
2.数组是我们遇到的第一个引用类型
数据类型包括 (1.)数据的基本类型 (2)引用类型(包括 数组类型,对象类型,接口类型)
3.内存模型
java将内存看成3个区域(也可简单的看成两个区域)
(1)栈区(保存局部变量和形参)
(2)方法区 (类的信息,以及方法)
(3)堆区(对象的属性)
4.方法传递
1.无论是基本类型还是引用类型,都是简单的值传递(拷贝传递)形参改变不影响实参
2.引用传递时,如果通过形参引用,修改了真实对象(存在堆)的值(array[0])实参可以感受到 变化
3.元素类型+变量名称定义一个数组
元素类型也可为int[]
int [ ] [ ] array=new int [] [10]
5.提供一些数组 相关的遍历操作
import java.util.Arrays;
Arrays.binarySearch;
6.引用的说明
int a=100; 通俗来讲 100是个值而 a是个空间 存放的是100
int [] a={1,2,3} a是个空间 空间里存放的并不是1,2,3而村的是一个引用 引用指向的是1,2,3
可以理解为 a为大盒子 大盒子里面存了小盒子 小盒子里面存的是1,2,3
二,类
1.如何定义一个类
(限定词)+class+类名称+[继承定义]+[接口实现]{类题}
例如
public class ClassName extends BaseClass implements Interface{
extends BaseClass 是继承定义
implements Interface 是接口实现
2.类名称每个单词首字母大写
class A{
1.属性
2.方法
}
3.定义属性 限定符 数据类型 属性名称
4.构造方法
限定符 方法名称(必须和类名一致)(参数列表)[异常]{ }
5.定义方法
限定符 返回值 方法名称(参数列表)[异常]{
//方法实现}
重点
1.利用类构造对象的语法
1.类类型的变量
class A{}
A 变量名;//没有初始化
A 变量名=null;//初始化,但没有构造对象
2. A 变量名 = new 构造方法(实参列表)
3. 如何使用对象(对象.属性,对象.方法(实参列表)
4. 使用匿名对象 new 构造方法().属性 new 构造方法().方法(实参列表)
规则
一个Java源文件只能有一个public的外部类,类名称和文件名一样
当对象没有引用指向它时 这个对象被称为垃圾对象,随后会被垃圾回收器回收
GC
关键字 this
1.通过this全名称访问属性,方法
2.通过this调用其他的构造方法
3.this代表的就是这个对象本身
static 关键字的用法
1.修饰属性 静态属性
2.修饰方法 静态方法
3.修饰内部类
4.静态代码块
最核心的是static和对象进行解绑
静态属性 存放在类(方法区)
属性 存放在对象(堆区)
如何访问静态属性
1 在类内部 以名称直接访问
2 在类外部,(类名)Person.属性名称
静态方法 vs 方法(隐式对象)
没有这个隐士对象
因为没有对象(隐式)
静态方法不能用this关键字 对象的普通属性不能访问
无法调用普通方法
调用静态方法
1.内部 直接调用
2.外部/内部 类名称.方法()//最推荐的做法
3.外部/内部 对象名称.方法()