------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、二维数组。
其内存结构就在堆中建立a[]存储a[0][0]的首地址。
定义:格式1: int[][] arr= new int[3][2];
格式2: int[][] arr= new int[3][]; 默认初始化值null。
格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};
获取长度:arr.length arr[i].length
二、面向对象:找对象,建立对象,使用对象
三个特性:封装(encapsulation) 继承(inheritance) 多态(polymorphism)
类与对象的关系:类是对现实生活中事物的描述,对象是这类事物,实实在在存在的个体。存放多个对象,称为实体
类型 类类型变量 = New car();
定义类{ 调用格式:对象.属性名=修改值;对象.行为;
属性 →变量
行为→方法、函数
}
成员变量作用整个类中→堆。局部变量作用于函数,for语句→栈(后进先出)
三、匿名对象: ①new car().num = 5;无意义
②new car.run(); 匿名调用方法 ③shou(new car()) 匿名对象可以作为实际参数进行传递;
四、封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式。
作用:1.将变化隔开 2.便于使用 3.提高重用性 4. 提高安全性
public 公共 private私有 (权限修饰符;用于修饰类中的成员变量,成员函数,只有本类有效)
之所以对外提供访问方式,就是因为在访问方式中加入逻辑判断语句,对访问的数据进行操作,提高代码的健壮性。
五、构造函数:函数名与类名相同,不用定义返回值类型,不可以写return语句。
注:void是没有具体结果返回的返回值类型。
对象建立,调用与之对应的构造函数,进行对象初始化
当一个类没有定义构造函数时,系统会默认给该类加入空参数的构造函数,只有有函数就删除空参数的构造函数。
构造函数可以重载。
构造函数与一般函数写法不同,直接构建调用,运行方式不同,构造函数一次并初始化,一般函数可以多次使用。
使用的时候:当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。
构建代码块:{
},初始化优先于构建函数执行。
多个class......包名须和主函数名相同执行。
六、this:就代表本类的对象。 this.name=name。建立对象,将name赋值给本类的name,
用于构造函数间调用:this();这语句须放在构建函数第一句,初始化原理,对于初始化,即使主函数赋值,在初始构建块的时候,也不会赋予。
七、static;是一个修饰符,被修饰者可以被类名调用。存储方式在共享区(方法区或者说数据区),
1.随着类的加载而加载。
2.优生与对象存在。 注:不可以定义this、super等关键字
3.被所有对象共享。 注:静态方法只能访问静态成员
4.可以直接被类名调用。
优点:节省空间,可以直接被类名调用。
缺点:生命周期过长,方法访问出现局限性,主函数是静态的。
八、主函数内容
public:读函数访问权限最大。 static:函数随类的加载存在。
void: 没有具体的返回值 。 main:不是关键字,能被JVM识别。
{String[] args} : 函数参数,参数类型是一个字符型数组 args可以被修改。
建立一个null的数组。JVM,在调用主函数时,传入的是New String [0];
主函数可以被重载
九、调用类。
set class path =. 工具路径。
在工具类中把构建函数私有化,使用此工具不能创建对象,只能类名调用。
将不能给用户使用的功能(将工具的功能分多个方法使用)私有化,静态才能类名调用。
十、静态块及单例设计模式
类下的static{}该块为静态快,为类进行初始化,优先于构建代码块给对象初始化,优先于构建函数给对应对象初始化;
设计模式:单例设计,类中只能建立一个对象。
单例①饿汉式:将对象私有化,然后私有构建函数就不能new,建立返回对象的方法
单例②懒汉式:在方法区建立s=null;然后调用方法时才建立对象,属于延时加载。